Files
email-tracker/external/duckdb/test/sql/function/string/test_mismatches.test
2025-10-24 19:21:19 -05:00

193 lines
2.4 KiB
SQL

# name: test/sql/function/string/test_mismatches.test
# description: Test mismatches function
# group: [string]
statement ok
SET default_null_order='nulls_first';
statement ok
PRAGMA enable_verification
query I
SELECT mismatches('hallo', 'hallo')
----
0
query I
SELECT mismatches('hello', 'hallo')
----
1
query I
SELECT mismatches('hallo', 'hello')
----
1
query I
SELECT mismatches('aloha', 'hallo')
----
5
query I
SELECT mismatches('hallo', 'aloha')
----
5
query I
SELECT mismatches(NULL, 'hallo')
----
NULL
query I
SELECT mismatches('hello', NULL)
----
NULL
query I
SELECT mismatches(NULL, NULL)
----
NULL
statement ok
CREATE TABLE strings(s VARCHAR)
statement ok
INSERT INTO strings VALUES ('hello'), ('hallo'), ('aloha'), ('world'), (NULL)
# normal counts
query I
SELECT mismatches(s, 'hallo') FROM strings ORDER BY s
----
NULL
5
0
1
4
query I
SELECT mismatches('hallo', s) FROM strings ORDER BY s
----
NULL
5
0
1
4
# special cases
statement error
SELECT mismatches('', '')
----
query I
SELECT mismatches(NULL, s) FROM strings ORDER BY s
----
NULL
NULL
NULL
NULL
NULL
query I
SELECT mismatches(s, NULL) FROM strings ORDER BY s
----
NULL
NULL
NULL
NULL
NULL
# incorrect usages
statement error
SELECT mismatches('hoi', 'hallo')
----
statement error
SELECT mismatches('hallo', 'hoi')
----
statement error
SELECT mismatches('', 'hallo')
----
statement error
SELECT mismatches('hi', '')
----
statement error
SELECT mismatches('', s) FROM strings ORDER BY s
----
statement error
SELECT mismatches(s, '') FROM strings ORDER BY s
----
statement ok
DROP TABLE strings
statement ok
CREATE TABLE strings(s VARCHAR)
statement ok
INSERT INTO strings VALUES ('hello'), ('halo'), (NULL)
# incorrect usage
statement error
SELECT mismatches(s, 'hallo') FROM strings
----
statement error
SELECT mismatches('hallo', s) FROM strings
----
query I
SELECT hamming('hallo', 'hallo')
----
0
query I
SELECT hamming('hello', 'hallo')
----
1
query I
SELECT hamming(s, 'hallo') FROM strings WHERE s = 'hello'
----
1
# Comparing fields from two columns row wise
statement ok
DROP TABLE strings;
statement ok
CREATE TABLE strings(s VARCHAR, t VARCHAR)
statement ok
INSERT INTO strings VALUES ('hello', 'world'), ('hallo', 'ola'), ('hello', ''), (NULL, NULL), ('', ''), ('bora', 'bora')
statement error
SELECT s, t, hamming(s, t) hd FROM strings WHERE length(s) = length(t)
----
statement error
SELECT hamming(s, t) FROM strings
----