ClickHouse/tests/queries
Robert Schulze 81bb2242fd
Fix countSubstrings() & position() on patterns with 0-bytes
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
2022-06-29 21:41:18 +00:00
..
0_stateless Fix countSubstrings() & position() on patterns with 0-bytes 2022-06-29 21:41:18 +00:00
1_stateful Merge branch 'master' into deprecate_ordinary_database 2022-06-27 14:46:59 +02:00
bugs
shell_config.sh Merge branch 'master' into cleanup_garbage_in_store_dir 2022-06-23 21:43:28 +02:00