should be it
This commit is contained in:
107
external/duckdb/test/sql/projection/select_star_like.test
vendored
Normal file
107
external/duckdb/test/sql/projection/select_star_like.test
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user