mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-03 04:52:10 +00:00
838596c7a4
Function to count number of substring occurrences in the string: - in case of needle is multi char - counts non-intersecting substrings - the code is based on position helpers. The following new functions is available: - countSubstrings() - countSubstringsCaseInsensitive() - countSubstringsCaseInsensitiveUTF8() v0: substringCount() v2: - add substringCountCaseInsensitiveUTF8 - improve tests - fix coding style issues - fix multichar needle v3: rename to countSubstrings (by analogy with countEqual())
25 lines
500 B
C++
25 lines
500 B
C++
#include "FunctionsStringSearch.h"
|
|
#include "FunctionFactory.h"
|
|
#include "CountSubstringsImpl.h"
|
|
|
|
|
|
namespace DB
|
|
{
|
|
namespace
|
|
{
|
|
|
|
struct NameCountSubstrings
|
|
{
|
|
static constexpr auto name = "countSubstrings";
|
|
};
|
|
|
|
using FunctionCountSubstrings = FunctionsStringSearch<CountSubstringsImpl<PositionCaseSensitiveASCII>, NameCountSubstrings>;
|
|
|
|
}
|
|
|
|
void registerFunctionCountSubstrings(FunctionFactory & factory)
|
|
{
|
|
factory.registerFunction<FunctionCountSubstrings>(FunctionFactory::CaseInsensitive);
|
|
}
|
|
}
|