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

151 lines
2.4 KiB
SQL

# name: test/sql/projection/select_star_exclude.test
# description: SELECT * EXCLUDE
# group: [projection]
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE integers(i INTEGER, j INTEGER, k INTEGER)
statement ok
INSERT INTO integers VALUES (1, 2, 3)
query II
SELECT * EXCLUDE i FROM integers
----
2 3
query I
SELECT * EXCLUDE (i, j) FROM integers
----
3
query II
SELECT * EXCLUDE (j) FROM integers
----
1 3
query II
SELECT * EXCLUDE (j) FROM integers
----
1 3
# case insensitive exclude
query II
SELECT * EXCLUDE ("J") FROM integers
----
1 3
# no columns remaining...
statement error
SELECT * EXCLUDE (i, j, k) FROM integers
----
# same but with integers.*
query II
SELECT integers.* EXCLUDE (i) FROM integers
----
2 3
query II
SELECT integers.* EXCLUDE ('i') FROM integers
----
2 3
query I
SELECT integers.* EXCLUDE (i, j) FROM integers
----
3
query II
SELECT integers.* EXCLUDE (j) FROM integers
----
1 3
query III
SELECT integers.* EXCLUDE (i, j), * EXCLUDE (i, j), * EXCLUDE (i, k) FROM integers
----
3 3 2
statement error
SELECT integers.* EXCLUDE (i, j, k) FROM integers
----
# exclude but with multiple tables
query II
SELECT * EXCLUDE (i, j) FROM integers i1, integers i2
----
3 3
query I
SELECT i1.* EXCLUDE (i, j), i2.* EXCLUDE (i, j, k) FROM integers i1, integers i2
----
3
query III
SELECT i1.* EXCLUDE (i, j), i2.* EXCLUDE (k) FROM integers i1, integers i2
----
3 1 2
query IIII
SELECT * EXCLUDE (i) FROM integers i1 JOIN integers i2 USING (i)
----
2 3 2 3
# qualified exclude entries
query II
SELECT * EXCLUDE integers.i FROM integers
----
2 3
query I
SELECT * EXCLUDE (integers.i, integers.j) FROM integers
----
3
query I
SELECT integers.* EXCLUDE (integers.i, integers.j) FROM integers
----
3
query I
SELECT * EXCLUDE (INTEGERS.i, integers.J) FROM integers
----
3
statement error
SELECT * EXCLUDE (integers.i, integers.j, integers2.i) FROM integers
----
not found in FROM clause
statement error
SELECT * EXCLUDE (integers2.i) FROM integers
----
not found in FROM clause
query IIII
SELECT * EXCLUDE (i1.i, i2.i) FROM integers i1 JOIN integers i2 USING (i)
----
2 3 2 3
# duplicate entry in exclude list
statement error
SELECT * EXCLUDE (i, i) FROM integers
----
Duplicate entry
statement error
SELECT * EXCLUDE (integers.i, i) FROM integers
----
Duplicate entry
# column name that does not exist
statement error
SELECT * EXCLUDE (blabla) FROM integers
----
statement error
SELECT integers.* EXCLUDE (blabla) FROM integers
----