should be it
This commit is contained in:
26
external/duckdb/test/sql/show_select/describe_rowid.test
vendored
Normal file
26
external/duckdb/test/sql/show_select/describe_rowid.test
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
# name: test/sql/show_select/describe_rowid.test
|
||||
# group: [show_select]
|
||||
|
||||
statement ok
|
||||
create table sometable (
|
||||
column1 varchar
|
||||
);
|
||||
|
||||
statement ok
|
||||
insert into sometable values
|
||||
('abc');
|
||||
|
||||
statement ok
|
||||
create view someview as select
|
||||
rowid as table_rowid,
|
||||
*
|
||||
from sometable;
|
||||
|
||||
statement ok
|
||||
select * from someview;
|
||||
|
||||
query II
|
||||
select column_name, column_type from (describe someview);
|
||||
----
|
||||
table_rowid BIGINT
|
||||
column1 VARCHAR
|
||||
43
external/duckdb/test/sql/show_select/describe_subquery.test
vendored
Normal file
43
external/duckdb/test/sql/show_select/describe_subquery.test
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
# name: test/sql/show_select/describe_subquery.test
|
||||
# description: Test describe in subquery
|
||||
# group: [show_select]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
query I
|
||||
SELECT column_name FROM (DESCRIBE SELECT 42 AS a)
|
||||
----
|
||||
a
|
||||
|
||||
query I
|
||||
SELECT t.column_name FROM (DESCRIBE SELECT 42 AS a) t
|
||||
----
|
||||
a
|
||||
|
||||
statement ok
|
||||
(DESCRIBE SELECT 42 AS a)
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t AS SELECT 42 AS a
|
||||
|
||||
query I
|
||||
SELECT t.column_name FROM (DESCRIBE t) t
|
||||
----
|
||||
a
|
||||
|
||||
statement ok
|
||||
FROM (SHOW databases) t
|
||||
|
||||
query I
|
||||
SELECT column_name FROM (DESCRIBE ( DESCRIBE SELECT * FROM (SELECT 32 as a)));
|
||||
----
|
||||
column_name
|
||||
column_type
|
||||
null
|
||||
key
|
||||
default
|
||||
extra
|
||||
|
||||
statement ok
|
||||
(DESCRIBE (values(42))) UNION ALL (DESCRIBE (values(42)));
|
||||
14
external/duckdb/test/sql/show_select/show_quote_identifier.test
vendored
Normal file
14
external/duckdb/test/sql/show_select/show_quote_identifier.test
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
# name: test/sql/show_select/show_quote_identifier.test
|
||||
# description: Test show with a quote in an identifier
|
||||
# group: [show_select]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE "s1"".tbl"(i INT);
|
||||
|
||||
query II
|
||||
SELECT column_name, column_type FROM (DESCRIBE "s1"".tbl")
|
||||
----
|
||||
i INTEGER
|
||||
123
external/duckdb/test/sql/show_select/show_select_constraints.test
vendored
Normal file
123
external/duckdb/test/sql/show_select/show_select_constraints.test
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
# name: test/sql/show_select/show_select_constraints.test
|
||||
# description: Test show select constraints
|
||||
# group: [show_select]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers(c1 INTEGER PRIMARY KEY, c2 INT NOT NULL, c3 INT DEFAULT 42, c4 INT UNIQUE, c5 INT);
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (42, 42, 42, 42, 42)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (84, 84, 84, 84, 84)
|
||||
|
||||
# show on the table directly vs show is identical
|
||||
query IIIIII nosort describe_result
|
||||
DESCRIBE SELECT * FROM integers
|
||||
----
|
||||
|
||||
query IIIIII nosort describe_result
|
||||
DESCRIBE integers
|
||||
----
|
||||
|
||||
# projection
|
||||
query II
|
||||
SELECT column_name, key FROM (DESCRIBE SELECT c4, c1 FROM integers)
|
||||
----
|
||||
c4 UNI
|
||||
c1 PRI
|
||||
|
||||
# filter
|
||||
query II
|
||||
SELECT column_name, key FROM (DESCRIBE SELECT c4 FROM integers WHERE c1=42)
|
||||
----
|
||||
c4 UNI
|
||||
|
||||
# limit
|
||||
query II
|
||||
SELECT column_name, key FROM (DESCRIBE SELECT c4 FROM integers LIMIT 5)
|
||||
----
|
||||
c4 UNI
|
||||
|
||||
# top n
|
||||
query II
|
||||
SELECT column_name, key FROM (DESCRIBE SELECT c4 FROM integers ORDER BY c1 LIMIT 5)
|
||||
----
|
||||
c4 UNI
|
||||
|
||||
# sample
|
||||
query II
|
||||
SELECT column_name, key FROM (DESCRIBE SELECT c4 FROM integers USING SAMPLE 5)
|
||||
----
|
||||
c4 UNI
|
||||
|
||||
# cross product
|
||||
query II
|
||||
SELECT column_name, key FROM (DESCRIBE SELECT c4 FROM integers, (SELECT 84))
|
||||
----
|
||||
c4 UNI
|
||||
|
||||
# join
|
||||
query II
|
||||
SELECT column_name, key FROM (DESCRIBE SELECT t.c1, integers.c1 FROM integers JOIN (SELECT 84 c1) t USING (c1))
|
||||
----
|
||||
c1 NULL
|
||||
c1 PRI
|
||||
|
||||
# views
|
||||
statement ok
|
||||
CREATE VIEW my_view AS SELECT * FROM integers
|
||||
|
||||
query II
|
||||
SELECT column_name, key FROM (DESCRIBE SELECT c4, c1 FROM my_view)
|
||||
----
|
||||
c4 UNI
|
||||
c1 PRI
|
||||
|
||||
# constraint information does not persist through expressions
|
||||
query II
|
||||
SELECT column_name, key FROM (DESCRIBE SELECT c4 + 1 AS expr FROM integers LIMIT 5)
|
||||
----
|
||||
expr NULL
|
||||
|
||||
# Alias and Actual column name
|
||||
statement ok
|
||||
CREATE TABLE base_table(base_name int);
|
||||
|
||||
# base without alias
|
||||
# column_name | column_type | null | key | default | extra
|
||||
query TTTITI
|
||||
DESCRIBE base_table
|
||||
----
|
||||
base_name INTEGER YES NULL NULL NULL
|
||||
|
||||
# With Alias
|
||||
# column_name | column_type | null | key | default | extra
|
||||
query TTTITI
|
||||
DESCRIBE SELECT base_name AS alias_name FROM base_table
|
||||
----
|
||||
alias_name INTEGER YES NULL NULL NULL
|
||||
|
||||
# With Alias 2 Deep
|
||||
# column_name | column_type | null | key | default | extra
|
||||
query TTTITI
|
||||
DESCRIBE SELECT alias_name as alias_alias_name FROM (SELECT base_name AS alias_name FROM base_table)
|
||||
----
|
||||
alias_alias_name INTEGER YES NULL NULL NULL
|
||||
|
||||
# Alias inline
|
||||
# column_name | column_type | null | key | default | extra
|
||||
query TTTITI
|
||||
DESCRIBE SELECT base_name AS alias_name FROM VALUES (1) AS base_table(base_name)
|
||||
----
|
||||
alias_name INTEGER YES NULL NULL NULL
|
||||
|
||||
# Alias CTE
|
||||
# column_name | column_type | null | key | default | extra
|
||||
query TTTITI
|
||||
DESCRIBE WITH cte_rel AS (SELECT 1 as base_name) SELECT base_name as alias_name FROM cte_rel;
|
||||
----
|
||||
alias_name INTEGER YES NULL NULL NULL
|
||||
18
external/duckdb/test/sql/show_select/summarize_subquery.test
vendored
Normal file
18
external/duckdb/test/sql/show_select/summarize_subquery.test
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
# name: test/sql/show_select/summarize_subquery.test
|
||||
# group: [show_select]
|
||||
|
||||
statement ok
|
||||
pragma enable_verification;
|
||||
|
||||
query II
|
||||
SELECT column_name, min FROM (SUMMARIZE SELECT 42 AS a);
|
||||
----
|
||||
a 42
|
||||
|
||||
statement ok
|
||||
CREATE TABLE tbl AS SELECT 42 AS a
|
||||
|
||||
query II
|
||||
SELECT column_name, min FROM (SUMMARIZE tbl);
|
||||
----
|
||||
a 42
|
||||
30
external/duckdb/test/sql/show_select/test_describe_all.test
vendored
Normal file
30
external/duckdb/test/sql/show_select/test_describe_all.test
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
# name: test/sql/show_select/test_describe_all.test
|
||||
# description: Test describe all
|
||||
# group: [show_select]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers(i INTEGER, j INTEGER, a INTEGER);
|
||||
|
||||
statement ok
|
||||
DESCRIBE;
|
||||
|
||||
query TTTTTT
|
||||
DESCRIBE
|
||||
----
|
||||
memory main integers [i, j, a] [INTEGER, INTEGER, INTEGER] false
|
||||
|
||||
# Issue 6393
|
||||
|
||||
statement ok
|
||||
DROP TABLE integers
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(plant TEXT, dt DATE, mwh BIGINT);
|
||||
|
||||
query TTTTTT
|
||||
DESCRIBE;
|
||||
----
|
||||
memory main t [plant, dt, mwh] [VARCHAR, DATE, BIGINT] false
|
||||
71
external/duckdb/test/sql/show_select/test_describe_quoted.test
vendored
Normal file
71
external/duckdb/test/sql/show_select/test_describe_quoted.test
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
# name: test/sql/show_select/test_describe_quoted.test
|
||||
# group: [show_select]
|
||||
|
||||
statement ok
|
||||
pragma enable_verification;
|
||||
|
||||
# Quoted table name, no schema name
|
||||
statement ok
|
||||
create table "a.b.c" (x int);
|
||||
|
||||
query IIIIII
|
||||
describe "a.b.c";
|
||||
----
|
||||
x INTEGER YES NULL NULL NULL
|
||||
|
||||
statement ok
|
||||
create schema defg;
|
||||
|
||||
statement ok
|
||||
drop table "a.b.c";
|
||||
|
||||
statement ok
|
||||
create table defg."a.b.c" (x int);
|
||||
|
||||
# Non-quoted schema name, quoted table name
|
||||
query IIIIII
|
||||
describe defg."a.b.c";
|
||||
----
|
||||
x INTEGER YES NULL NULL NULL
|
||||
|
||||
statement ok
|
||||
drop table defg."a.b.c";
|
||||
|
||||
statement ok
|
||||
create table defg.abc (x int);
|
||||
|
||||
# Non-quoted schema name, non-quoted table name
|
||||
query IIIIII
|
||||
describe defg.abc;
|
||||
----
|
||||
x INTEGER YES NULL NULL NULL
|
||||
|
||||
statement ok
|
||||
drop table defg.abc;
|
||||
|
||||
statement ok
|
||||
drop schema defg;
|
||||
|
||||
statement ok
|
||||
create schema "d.e.f.g";
|
||||
|
||||
statement ok
|
||||
create table "d.e.f.g"."a.b.c" (x int);
|
||||
|
||||
# Quoted schema name, quoted table name
|
||||
query IIIIII
|
||||
describe "d.e.f.g"."a.b.c";
|
||||
----
|
||||
x INTEGER YES NULL NULL NULL
|
||||
|
||||
statement ok
|
||||
drop table "d.e.f.g"."a.b.c"
|
||||
|
||||
statement ok
|
||||
create table "d.e.f.g".abc (x int);
|
||||
|
||||
# Quoted schema name, non-quoted table name
|
||||
query IIIIII
|
||||
describe "d.e.f.g".abc;
|
||||
----
|
||||
x INTEGER YES NULL NULL NULL
|
||||
53
external/duckdb/test/sql/show_select/test_show_select.test
vendored
Normal file
53
external/duckdb/test/sql/show_select/test_show_select.test
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
# name: test/sql/show_select/test_show_select.test
|
||||
# description: Test show select
|
||||
# group: [show_select]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers2 (i INTEGER, j INTEGER, st VARCHAR, d DATE)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (1, 1), (2, 2), (3, 3), (NULL, NULL)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers2 VALUES (1, 30, 'a', '1992-01-01'), (8, 12, 'b', '1992-01-01'), (3, 24, 'c', '1992-01-01'), (9, 16, 'd', '1992-01-01'), (10, NULL, 'e', '1992-01-01')
|
||||
|
||||
# column_name | column_type | null | key | default | extra
|
||||
query TTTTTT
|
||||
SHOW SELECT * FROM integers
|
||||
----
|
||||
i INTEGER YES NULL NULL NULL
|
||||
j INTEGER YES NULL NULL NULL
|
||||
|
||||
# column_name | column_type | null | key | default | extra
|
||||
query TTTTTT
|
||||
DESCRIBE SELECT * FROM integers
|
||||
----
|
||||
i INTEGER YES NULL NULL NULL
|
||||
j INTEGER YES NULL NULL NULL
|
||||
|
||||
# column_name | column_type | null | key | default | extra
|
||||
query TTTTTT
|
||||
SHOW SELECT i FROM integers
|
||||
----
|
||||
i INTEGER YES NULL NULL NULL
|
||||
|
||||
# column_name | column_type | null | key | default | extra
|
||||
query TTTTTT
|
||||
SHOW SELECT integers.i, integers2.st, integers2.d FROM integers, integers2 WHERE integers.i=integers2.i
|
||||
----
|
||||
i INTEGER YES NULL NULL NULL
|
||||
st VARCHAR YES NULL NULL NULL
|
||||
d DATE YES NULL NULL NULL
|
||||
|
||||
# column_name | column_type | null | key | default | extra
|
||||
query TTTTTT
|
||||
SHOW SELECT SUM(i) AS sum1, j FROM integers GROUP BY j HAVING j < 10
|
||||
----
|
||||
sum1 HUGEINT YES NULL NULL NULL
|
||||
j INTEGER YES NULL NULL NULL
|
||||
85
external/duckdb/test/sql/show_select/test_summarize.test
vendored
Normal file
85
external/duckdb/test/sql/show_select/test_summarize.test
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
# name: test/sql/show_select/test_summarize.test
|
||||
# description: Test summarize command
|
||||
# group: [show_select]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE types(i INTEGER, j VARCHAR, k HUGEINT, d DOUBLE, e BLOB);
|
||||
|
||||
statement ok
|
||||
INSERT INTO types VALUES
|
||||
(1, 'hello', 12, 0.5, BLOB 'a\x00b\x00c'),
|
||||
(2, 'world', -12, -0.5, BLOB ''),
|
||||
(3, NULL, NULL, NULL, NULL);
|
||||
|
||||
query IIII
|
||||
SELECT UNNEST(['i', 'j', 'k', 'd', 'e']) column_names,
|
||||
UNNEST(['INTEGER', 'VARCHAR', 'HUGEINT', 'DOUBLE', 'BLOB']) column_types,
|
||||
UNNEST([MIN(i)::VARCHAR, MIN(j)::VARCHAR, MIN(k)::VARCHAR, MIN(d)::VARCHAR, MIN(e)::VARCHAR]) min,
|
||||
UNNEST([MAX(i)::VARCHAR, MAX(j)::VARCHAR, MAX(k)::VARCHAR, MAX(d)::VARCHAR, MAX(e)::VARCHAR]) max
|
||||
FROM (SELECT * FROM types) tbl
|
||||
----
|
||||
i INTEGER 1 3
|
||||
j VARCHAR hello world
|
||||
k HUGEINT -12 12
|
||||
d DOUBLE -0.5 0.5
|
||||
e BLOB (empty) a\x00b\x00c
|
||||
|
||||
query IIIIIIIIIIII
|
||||
SUMMARIZE types;
|
||||
----
|
||||
i INTEGER 1 3 3 2.0 1.0 1 2 3 3 0.0
|
||||
j VARCHAR hello world 2 NULL NULL NULL NULL NULL 3 33.33
|
||||
k HUGEINT -12 12 2 0.0 16.97056274847714 -12 0 12 3 33.33
|
||||
d DOUBLE -0.5 0.5 2 0.0 0.7071067811865476 -0.5 0.0 0.5 3 33.33
|
||||
e BLOB (empty) a\x00b\x00c 2 NULL NULL NULL NULL NULL 3 33.33
|
||||
|
||||
query IIIIIIIIIIII
|
||||
SUMMARIZE SELECT * FROM types;
|
||||
----
|
||||
i INTEGER 1 3 3 2.0 1.0 1 2 3 3 0.0
|
||||
j VARCHAR hello world 2 NULL NULL NULL NULL NULL 3 33.33
|
||||
k HUGEINT -12 12 2 0.0 16.97056274847714 -12 0 12 3 33.33
|
||||
d DOUBLE -0.5 0.5 2 0.0 0.7071067811865476 -0.5 0.0 0.5 3 33.33
|
||||
e BLOB (empty) a\x00b\x00c 2 NULL NULL NULL NULL NULL 3 33.33
|
||||
|
||||
# Temporal types
|
||||
query IIIIIIIIIIII
|
||||
summarize
|
||||
from range('2024-01-01'::TIMESTAMP, '2024-04-10'::TIMESTAMP, INTERVAL 1 DAY);
|
||||
----
|
||||
range TIMESTAMP 2024-01-01 00:00:00 2024-04-09 00:00:00 99 2024-02-19 12:00:00 NULL 2024-01-25 12:00:00 2024-02-19 12:00:00 2024-03-15 12:00:00 100 0.00
|
||||
|
||||
query IIIIIIIIIIII
|
||||
summarize
|
||||
SELECT range::DATE AS range from range('2024-01-01'::DATE, '2024-04-10'::DATE, INTERVAL 1 DAY);
|
||||
----
|
||||
range DATE 2024-01-01 2024-04-09 98 2024-02-19 12:00:00 NULL 2024-01-26 2024-02-19 2024-03-16 100 0.00
|
||||
|
||||
query IIIIIIIIIIII
|
||||
summarize
|
||||
SELECT range::TIME AS range from range('2024-01-01'::DATE, '2024-04-10'::DATE, INTERVAL 1 HOUR);
|
||||
----
|
||||
range TIME 00:00:00 23:00:00 28 11:30:00 NULL 05:24:35.480769 11:28:55.400975 17:30:41.666667 2400 0.00
|
||||
|
||||
# TIMETZ quantiles. Note these are fuzzy because we use DOUBLEs in the sketch.
|
||||
query IIIIIIIIIIII
|
||||
SUMMARIZE (SELECT '1:02:03.000000+05:30'::TIMETZ AS ttz);
|
||||
----
|
||||
ttz TIME WITH TIME ZONE 01:02:03+05:30 01:02:03+05:30 1 19:32:03+00 NULL 01:02:42+05:30:39 01:02:42+05:30:39 01:02:42+05:30:39 1 0.00
|
||||
|
||||
statement ok
|
||||
SUMMARIZE VALUES (1.0),(6754950520);
|
||||
|
||||
# Various overflows
|
||||
statement ok
|
||||
SUMMARIZE SELECT 9223372036854775296;
|
||||
|
||||
statement ok
|
||||
summarize select bigint from test_all_types();
|
||||
|
||||
statement ok
|
||||
summarize select 9223372036854775295;
|
||||
|
||||
71
external/duckdb/test/sql/show_select/test_summarize_quoted.test
vendored
Normal file
71
external/duckdb/test/sql/show_select/test_summarize_quoted.test
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
# name: test/sql/show_select/test_summarize_quoted.test
|
||||
# group: [show_select]
|
||||
|
||||
statement ok
|
||||
pragma enable_verification;
|
||||
|
||||
# Quoted table name, no schema name
|
||||
statement ok
|
||||
create table "a.b.c" (x int);
|
||||
|
||||
query IIIIIIIIIIII
|
||||
summarize "a.b.c";
|
||||
----
|
||||
x INTEGER NULL NULL 0 NULL NULL NULL NULL NULL 0 NULL
|
||||
|
||||
statement ok
|
||||
create schema defg;
|
||||
|
||||
statement ok
|
||||
drop table "a.b.c";
|
||||
|
||||
statement ok
|
||||
create table defg."a.b.c" (x int);
|
||||
|
||||
# Non-quoted schema name, quoted table name
|
||||
query IIIIIIIIIIII
|
||||
summarize defg."a.b.c";
|
||||
----
|
||||
x INTEGER NULL NULL 0 NULL NULL NULL NULL NULL 0 NULL
|
||||
|
||||
statement ok
|
||||
drop table defg."a.b.c";
|
||||
|
||||
statement ok
|
||||
create table defg.abc (x int);
|
||||
|
||||
# Non-quoted schema name, non-quoted table name
|
||||
query IIIIIIIIIIII
|
||||
summarize defg.abc;
|
||||
----
|
||||
x INTEGER NULL NULL 0 NULL NULL NULL NULL NULL 0 NULL
|
||||
|
||||
statement ok
|
||||
drop table defg.abc;
|
||||
|
||||
statement ok
|
||||
drop schema defg;
|
||||
|
||||
statement ok
|
||||
create schema "d.e.f.g";
|
||||
|
||||
statement ok
|
||||
create table "d.e.f.g"."a.b.c" (x int);
|
||||
|
||||
# Quoted schema name, quoted table name
|
||||
query IIIIIIIIIIII
|
||||
summarize "d.e.f.g"."a.b.c";
|
||||
----
|
||||
x INTEGER NULL NULL 0 NULL NULL NULL NULL NULL 0 NULL
|
||||
|
||||
statement ok
|
||||
drop table "d.e.f.g"."a.b.c"
|
||||
|
||||
statement ok
|
||||
create table "d.e.f.g".abc (x int);
|
||||
|
||||
# Quoted schema name, non-quoted table name
|
||||
query IIIIIIIIIIII
|
||||
summarize "d.e.f.g".abc;
|
||||
----
|
||||
x INTEGER NULL NULL 0 NULL NULL NULL NULL NULL 0 NULL
|
||||
Reference in New Issue
Block a user