This commit is contained in:
flynn 2023-09-23 04:11:20 +00:00
parent 0ed66a6611
commit c264bb5fad
2 changed files with 13 additions and 12 deletions

View File

@ -682,26 +682,26 @@ Like [hasSubsequence](#hasSubsequence) but assumes `haystack` and `needle` are U
Like [hasSubsequenceUTF8](#hasSubsequenceUTF8) but searches case-insensitively.
## hammingDistance
## byteHammingDistance
Calculates the hamming distance between two strings.
Calculates the hamming distance between two byte strings.
**Syntax**
```sql
hammingDistance(haystack, needle)
byteHammingDistance(haystack, needle)
```
**Examples**
``` sql
SELECT hammingDistance('abc', 'ab') ;
SELECT byteHammingDistance('abc', 'ab') ;
```
Result:
``` text
┌─hammingDistance('abc', 'ab')─┐
│ 1 │
└──────────────────────────────┘
┌─byteHammingDistance('abc', 'ab')─┐
1 │
└──────────────────────────────────
```

View File

@ -11,7 +11,7 @@
namespace DB
{
struct StringHammingDistanceImpl
struct ByteHammingDistanceImpl
{
using ResultType = UInt64;
@ -92,15 +92,16 @@ private:
}
};
struct NameStringHammingDistance
struct NameByteHammingDistance
{
static constexpr auto name = "hammingDistance";
static constexpr auto name = "byteHammingDistance";
};
using FunctionStringHammingDistance = FunctionsStringSimilarity<StringHammingDistanceImpl, NameStringHammingDistance>;
using FunctionByteHammingDistance = FunctionsStringSimilarity<ByteHammingDistanceImpl, NameByteHammingDistance>;
REGISTER_FUNCTION(StringHammingDistance)
{
factory.registerFunction<FunctionStringHammingDistance>();
factory.registerFunction<FunctionByteHammingDistance>(
FunctionDocumentation{.description = R"(Calculates the hamming distance between two bytes strings.)"});
}
}