Files
email-tracker/external/duckdb/test/sql/projection/select_star_like.test
2025-10-24 19:21:19 -05:00

108 lines
1.9 KiB
SQL

# name: test/sql/projection/select_star_like.test
# description: SELECT * LIKE
# group: [projection]
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE integers(col1 INTEGER, col2 INTEGER, k INTEGER)
statement ok
INSERT INTO integers VALUES (1, 2, 3)
query II
SELECT COLUMNS(lambda x: x LIKE 'col%') FROM integers
----
1 2
query II
SELECT * LIKE 'col%' FROM integers
----
1 2
# not like
query I
SELECT * NOT LIKE 'col%' FROM integers
----
3
# ilike
query II
SELECT * ILIKE 'COL%' FROM integers
----
1 2
# regex
query II
SELECT * SIMILAR TO '.*col.*' FROM integers
----
1 2
# exclude
query I
SELECT * EXCLUDE (col1) SIMILAR TO '.*col.*' FROM integers
----
2
# SIMILAR TO alias can use regex groups
query II
SELECT c2, c1 FROM (
SELECT * SIMILAR TO 'number(\d+)' AS 'c\1' FROM (SELECT 1 AS number1, 2 AS number2, 3 AS end)
)
----
2 1
# LIKE
query I
SELECT val FROM (
SELECT * NOT LIKE '%number%' AS val FROM (SELECT 1 AS number1, 2 AS number2, 3 AS end)
)
----
3
# ESCAPE
query I
SELECT * LIKE '\_%' ESCAPE '\' AS val FROM (SELECT 1 AS number1, 2 AS _number2)
----
2
query I
SELECT * NOT LIKE '\_%' ESCAPE '\' AS val FROM (SELECT 1 AS number1, 2 AS _number2)
----
1
query I
SELECT * ILIKE '\_NUM%' ESCAPE '\' AS val FROM (SELECT 1 AS number1, 2 AS _number2)
----
2
query I
SELECT * NOT ILIKE '\_NUM%' ESCAPE '\' AS val FROM (SELECT 1 AS number1, 2 AS _number2)
----
1
# non-constant pattern
statement error
SELECT * SIMILAR TO pattern FROM integers, (SELECT '.*col.*') t(pattern)
----
must be a constant
# unsupported function
statement error
SELECT * + 42 FROM integers
----
cannot be applied to a star expression
# replace
statement error
SELECT * REPLACE (col1 + 42 AS col1) SIMILAR TO '.*col.*' FROM integers
----
Replace list cannot be combined with a filtering operation
# rename
statement error
SELECT * RENAME (col1 AS other_) SIMILAR TO '.*col.*' FROM integers
----
Rename list cannot be combined with a filtering operation