151 lines
2.4 KiB
SQL
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
|
|
----
|