mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
81bb2242fd
SQL functions countSubstrings(), countSubstringsCaseInsensitive(), countSubstringsUTF8(), position(), positionCaseInsensitive(), positionUTF8() with non-const pattern argument use fallback sorters LibCASCIICaseSensitiveStringSearcher and LibCASCIICaseInsensitiveStringSearcher which call ::strstr(), resp. ::strcasestr(). These functions assume that the haystack is 0-terminated and they even document that. However, the callers did not check if the haystack contains 0-byte (perhaps because its sort of expensive). As a consequence, if the haystack contained a zero byte in it's payload, matches behind this zero byte were ignored. create table t (id UInt32, pattern String) engine = MergeTree() order by id; insert into t values (1, 'x'); select countSubstrings('aaaxxxaa\0xxx', pattern) from t; We returned 3 before this commit, now we return 6 |
||
---|---|---|
.. | ||
ci | ||
config | ||
fuzz | ||
instructions | ||
integration | ||
jepsen.clickhouse-keeper | ||
perf_drafts | ||
performance | ||
queries | ||
.gitignore | ||
clickhouse-test | ||
CMakeLists.txt | ||
msan_suppressions.txt | ||
stress | ||
tsan_suppressions.txt | ||
ubsan_suppressions.txt |