aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov333 <ivanmorozov@ydb.tech>2025-04-15 10:44:23 +0300
committerGitHub <noreply@github.com>2025-04-15 10:44:23 +0300
commitd5ee2b61f8517b2d5ff507287683199ed48a09f4 (patch)
tree9629356ba074b0a2e0133beee49f476cd2f108c6
parente7171b21ba170f38805ec3adc54323a104dac568 (diff)
downloadydb-d5ee2b61f8517b2d5ff507287683199ed48a09f4.tar.gz
speedup lower case construction (#17196)
Co-authored-by: ivanmorozov333 <imorozov333@ya.ru>
-rw-r--r--ydb/core/tx/columnshard/engines/storage/indexes/bloom_ngramm/meta.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/ydb/core/tx/columnshard/engines/storage/indexes/bloom_ngramm/meta.cpp b/ydb/core/tx/columnshard/engines/storage/indexes/bloom_ngramm/meta.cpp
index f0d5443b89d..e13c1086c54 100644
--- a/ydb/core/tx/columnshard/engines/storage/indexes/bloom_ngramm/meta.cpp
+++ b/ydb/core/tx/columnshard/engines/storage/indexes/bloom_ngramm/meta.cpp
@@ -10,6 +10,7 @@
#include <contrib/libs/apache/arrow/cpp/src/arrow/array/builder_primitive.h>
#include <library/cpp/deprecated/atomic/atomic.h>
#include <util/generic/bitmap.h>
+#include <util/string/ascii.h>
namespace NKikimr::NOlap::NIndexes::NBloomNGramm {
@@ -150,9 +151,9 @@ public:
(const ui8*)data, dataSize, HashesCount, nGrammSize, op, pred);
} else {
LowerStringBuffer.Clear();
- LowerStringBuffer.Reserve(dataSize);
+ LowerStringBuffer.Resize(dataSize);
for (ui32 i = 0; i < dataSize; ++i) {
- LowerStringBuffer.Append(std::tolower(data[i]));
+ LowerStringBuffer.Data()[i] = AsciiToLower(data[i]);
}
THashesSelector<TConstants::MaxHashesCount, TConstants::MaxNGrammSize>::BuildHashes(
(const ui8*)LowerStringBuffer.Data(), dataSize, HashesCount, nGrammSize, op, pred);
@@ -184,8 +185,7 @@ public:
}
template <class TFiller>
- void FillNGrammHashes(
- const ui32 nGrammSize, const NRequest::TLikePart::EOperation op, const TString& userReq, TFiller& fillData) {
+ void FillNGrammHashes(const ui32 nGrammSize, const NRequest::TLikePart::EOperation op, const TString& userReq, TFiller& fillData) {
if (CaseSensitive) {
BuildNGramms(userReq.data(), userReq.size(), op, nGrammSize, fillData);
} else {