should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View File

@@ -0,0 +1,14 @@
# name: test/sql/catalog/table/create_table_as_abort.test
# description: Test correct early abort of CREATE TABLE AS query when table already exists (#1891)
# group: [table]
statement ok
CREATE TABLE integers(i INTEGER)
statement ok
CREATE TABLE IF NOT EXISTS integers AS SELECT i1.i FROM range(10000000000000000) i1(i);
statement error
CREATE TABLE integers AS SELECT i1.i FROM range(10000000000000000) i1(i);
----
<REGEX>:.*Catalog Error.*already exists.*

View File

@@ -0,0 +1,14 @@
# name: test/sql/catalog/table/create_table_parameters.test
# description: Issue #10008 - DuckDB SIGSEGV when creating table with DEFAULT ?
# group: [table]
statement error
CREATE TABLE t0 ( c1 INT DEFAULT ? );
----
<REGEX>:.*Binder Error.*cannot contain parameters.*
# error messages for `enable_verification`=(false|true)
statement error
CREATE TABLE t0 ( c1 INT CHECK (?) );
----
<REGEX>:(.*Invalid Input Error: Expected 2 parameters.*|.*Binder Error.*Unexpected prepared parameter.*)

View File

@@ -0,0 +1,22 @@
# name: test/sql/catalog/table/long_identifier.test
# description: Test long identifiers (>= 64 bytes)
# group: [table]
statement ok
create table integers("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" integer);
statement ok
select "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" from integers
statement ok
create table integers2("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" integer);
statement ok
select "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" from integers2
statement ok
create table integers3("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec et laoreet lacus, sollicitudin cursus metus. Pellentesque quis magna magna. Ut viverra erat vulputate, euismod sapien id, mollis odio. Vestibulum accumsan orci ac diam accumsan efficitur. Sed vel maximus leo, vel tempus metus. Fusce urna dolor, lacinia ac scelerisque hendrerit, semper eu nisl. Vivamus pellentesque sapien id sapien finibus porttitor. Cras congue libero quis nunc pretium efficitur. Praesent vitae urna non elit luctus posuere mattis ac eros. Nunc tincidunt quam vel sem ullamcorper semper. Donec eget gravida justo. Duis vel mollis felis.
Duis scelerisque risus in sem molestie, nec egestas odio vestibulum. Nunc in dui eu dui fringilla dignissim vitae id felis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Phasellus a tempus sapien. Cras vehicula maximus laoreet. In hac habitasse platea dictumst. In fermentum orci id libero congue dignissim. Aenean tristique porta arcu a varius. Cras vitae leo gravida, eleifend dolor et, porttitor arcu.
Pellentesque et fringilla tortor. Sed sodales nulla lacus, eget feugiat dolor mattis tincidunt. Morbi ut finibus odio. Mauris felis diam, ornare ac diam mattis, suscipit laoreet turpis. Duis vulputate mi in orci pretium, vitae varius turpis facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Maecenas gravida libero at ligula pretium, quis gravida libero tempus. Aenean eu condimentum libero. Duis sagittis augue mi. Cras vel ante a ipsum consequat interdum. Aliquam venenatis metus sed ligula consequat congue. Fusce ut rutrum urna. Integer auctor purus nulla, eget lacinia dolor sollicitudin et. Vestibulum lacinia lectus nec mauris iaculis, eget cursus mauris semper. Donec ut lacinia felis. Quisque vitae risus sit amet erat semper suscipit.
Duis pulvinar ipsum purus, vitae placerat lectus commodo ut. Nullam viverra arcu vitae ipsum faucibus, at aliquet massa vehicula. Nunc eget felis sed quam sollicitudin tempus. Quisque lobortis id nisi id dictum. Phasellus id elementum purus. Duis diam purus, egestas ac quam et, porta fringilla velit. Nulla a turpis bibendum, eleifend eros eget, efficitur nibh. Pellentesque consectetur porttitor lacinia. Aliquam blandit eros eu metus ultrices, ut dignissim nunc lacinia. Mauris placerat volutpat odio, dictum dapibus dolor egestas sed. Nam consequat odio quis urna lobortis viverra. Phasellus facilisis elit nec neque rutrum laoreet. Etiam non maximus magna. Pellentesque pellentesque laoreet orci, vel sollicitudin urna sollicitudin a. Nunc id iaculis enim, quis pharetra mauris. Nullam sit amet diam eu massa dictum vehicula.
Vestibulum sed congue urna. Praesent iaculis massa viverra ex congue, nec euismod leo scelerisque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis aliquet ut augue non interdum. Quisque tempor blandit mi non dignissim. Integer hendrerit, elit id posuere facilisis, libero purus dignissim ipsum, nec tincidunt metus lectus elementum magna. Cras turpis dolor, gravida et ipsum non, vestibulum sagittis sapien. Maecenas varius lacus mi, at porta purus cursus eget. Nunc feugiat congue augue id mollis. Praesent sed erat non leo varius varius. Sed sodales justo sollicitudin ex faucibus euismod. Aenean gravida nec diam vel vestibulum. Donec feugiat risus velit, quis fringilla libero vulputate nec. Curabitur pulvinar, tellus in eleifend varius, orci ex hendrerit sem, at laoreet diam ante id nibh." integer);

View File

@@ -0,0 +1,15 @@
# name: test/sql/catalog/table/test_concurrent_constraints.test_slow
# group: [table]
statement ok
CREATE TABLE tbl_constraints(pk INT PRIMARY KEY, u INT UNIQUE, s INT CHECK (s > 42), d INT CHECK (d + 1 < 42));
concurrentloop threadid 0 100
statement ok
SELECT c.oid,c.*,t.relname as tabrelname, case when c.contype='c' then substring(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
FROM pg_catalog.pg_constraint c
INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid limit 5;
endloop

View File

@@ -0,0 +1,31 @@
# name: test/sql/catalog/table/test_create_table_parallelism.test
# description: Test parallel table creation
# group: [table]
statement ok
PRAGMA enable_verification
statement ok
PRAGMA threads=4
statement ok
PRAGMA verify_parallelism
statement ok
CREATE TABLE test AS (SELECT string_agg(range::VARCHAR, '🦆 ') AS s, mod(range, 10000) xx FROM range(50000) GROUP BY xx)
statement ok
CREATE TABLE test2 AS (SELECT unnest(string_split(s, ' ')) FROM test)
query T
SELECT count(*) FROM test2
----
50000
statement ok
CREATE TABLE test3 AS (SELECT * FROM test ORDER BY xx)
query T
SELECT count(*) FROM test3
----
10000

View File

@@ -0,0 +1,174 @@
# name: test/sql/catalog/table/test_default.test
# description: Test DEFAULT in tables
# group: [table]
require skip_reload
statement ok
PRAGMA enable_verification
# no default specified: write NULL value
statement ok
CREATE TABLE test (a INTEGER, b INTEGER);
statement ok
INSERT INTO test (b) VALUES (3);
statement ok
INSERT INTO test VALUES (DEFAULT, DEFAULT);
query II
SELECT * FROM test
----
NULL 3
NULL NULL
statement ok
DROP TABLE test
# no default specified: default is NULL value
# but we set column to NOT NULL
# now insert should fail
statement ok
CREATE TABLE test (a INTEGER NOT NULL, b INTEGER);
statement error
INSERT INTO test (b) VALUES (3);
----
statement ok
DROP TABLE test
# simple default: constant value
statement ok
CREATE TABLE test (a INTEGER DEFAULT 1, b INTEGER);
statement ok
INSERT INTO test (b) VALUES (3);
query II
SELECT * FROM test
----
1 3
statement ok
DROP TABLE test
# default as expression
statement ok
CREATE TABLE test (a INTEGER DEFAULT 1+1, b INTEGER);
statement ok
INSERT INTO test (b) VALUES (3);
query II
SELECT * FROM test
----
2 3
statement ok
DROP TABLE test
# default with insert from query
statement ok
CREATE TABLE test (a INTEGER DEFAULT 1+1, b INTEGER);
statement ok
INSERT INTO test (b) SELECT 3
query II
SELECT * FROM test
----
2 3
statement ok
DROP TABLE test
# default from sequence
statement ok
CREATE SEQUENCE seq;
statement ok
CREATE TABLE test (a INTEGER DEFAULT nextval('seq'), b INTEGER);
statement ok
INSERT INTO test (b) VALUES (2), (4), (6), (2), (4);
query II
SELECT * FROM test ORDER BY 1
----
1 2
2 4
3 6
4 2
5 4
# cannot drop sequence now
statement error
DROP SEQUENCE seq
----
statement ok
DROP TABLE test
# after dropping table we can drop seq
statement ok
DROP SEQUENCE seq
# test default with update
statement ok
CREATE SEQUENCE seq;
statement ok
CREATE TABLE test (a INTEGER DEFAULT nextval('seq'), b INTEGER);
statement ok
INSERT INTO test (b) VALUES (1);
statement ok
UPDATE test SET a=DEFAULT
query II
SELECT * FROM test ORDER BY 1
----
2 1
# cannot use subquery in DEFAULT expression
statement error
CREATE TABLE test (a INTEGER DEFAULT (SELECT 42), b INTEGER);
----
# aggregate functions are not allowed in DEFAULT expressions
statement error
CREATE TABLE test (a INTEGER DEFAULT SUM(42), b INTEGER);
----
# window functions are not allowed in DEFAULT expressions
statement error
CREATE TABLE test (a INTEGER DEFAULT row_number() OVER (), b INTEGER);
----
# default value must be scalar expression
statement error
CREATE TABLE test (a INTEGER DEFAULT b+1, b INTEGER);
----
# test default with random
statement ok
DROP TABLE test
statement ok
CREATE TABLE test (a DOUBLE DEFAULT random(), b INTEGER);
statement ok
INSERT INTO test (b) VALUES (1);
statement ok
INSERT INTO test (b) VALUES (2);
query R
SELECT COUNT(DISTINCT a) FROM test;
----
2

View File

@@ -0,0 +1,51 @@
# name: test/sql/catalog/table/test_default_values.test
# description: Test DEFAULT VALUES insert
# group: [table]
statement ok
PRAGMA enable_verification
statement ok
create table x (i int default 1, j int default 2)
statement ok
insert into x default values;
query II
SELECT * FROM x
----
1 2
# returning
query I
insert into x default values returning (i);
----
1
query I
insert into x default values returning (j);
----
2
statement error
insert into x(i) default values;
----
Parser Error
# on conflict
statement ok
drop table x;
statement ok
create table x (i int primary key default 1, j int default 2)
statement ok
insert into x default values;
statement error
insert into x default values;
----
violates primary key constraint
statement ok
insert into x default values on conflict do nothing;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,17 @@
# name: test/sql/catalog/table/test_table_drop_concurrent.test_slow
# group: [table]
require 64bit
# Create 4000 threads that all run the contents of this loop
concurrentloop threadid 0 300
# Create a table
statement ok
CREATE OR REPLACE TABLE df${threadid} as select i,i,i from range(100) tbl(i)
# Drop the table
statement ok
DROP TABLE df${threadid};
endloop