should be it
This commit is contained in:
37
external/duckdb/test/sql/storage/read_duckdb/concurrent_duckdb_read.test_slow
vendored
Normal file
37
external/duckdb/test/sql/storage/read_duckdb/concurrent_duckdb_read.test_slow
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
# name: test/sql/storage/read_duckdb/concurrent_duckdb_read.test_slow
|
||||
# description: Test concurrent read of a DuckDB file
|
||||
# group: [read_duckdb]
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_concurrent.db'
|
||||
|
||||
statement ok
|
||||
CREATE TABLE read_duckdb_concurrent.my_tbl AS SELECT * FROM range(1000000) t(i)
|
||||
|
||||
statement ok
|
||||
DETACH read_duckdb_concurrent
|
||||
|
||||
concurrentloop i 0 10
|
||||
|
||||
loop x 0 100
|
||||
|
||||
onlyif i=0
|
||||
query I
|
||||
SHOW DATABASES
|
||||
----
|
||||
memory
|
||||
|
||||
onlyif i=0
|
||||
query I
|
||||
SHOW TABLES
|
||||
----
|
||||
|
||||
endloop
|
||||
|
||||
onlyif i>0
|
||||
query II
|
||||
SELECT COUNT(*), SUM(i) FROM read_duckdb('__TEST_DIR__/read_duckdb_concurrent.db')
|
||||
----
|
||||
1000000 499999500000
|
||||
|
||||
endloop
|
||||
91
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_basic.test
vendored
Normal file
91
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_basic.test
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
# name: test/sql/storage/read_duckdb/read_duckdb_basic.test
|
||||
# description: Test basic usage of read_duckdb
|
||||
# group: [read_duckdb]
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_test.db'
|
||||
|
||||
statement ok
|
||||
CREATE TABLE read_duckdb_test.my_tbl AS SELECT 42 i
|
||||
|
||||
# we cannot read a database that is already attached
|
||||
statement error
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_test.db')
|
||||
----
|
||||
already attached by database
|
||||
|
||||
statement ok
|
||||
DETACH read_duckdb_test
|
||||
|
||||
query I
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_test.db')
|
||||
----
|
||||
42
|
||||
|
||||
query I
|
||||
SELECT COUNT(*) FROM duckdb_databases
|
||||
----
|
||||
1
|
||||
|
||||
# globbing
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_test2.db'
|
||||
|
||||
statement ok
|
||||
CREATE TABLE read_duckdb_test2.other_tbl AS SELECT 100 i
|
||||
|
||||
statement ok
|
||||
DETACH read_duckdb_test2
|
||||
|
||||
query I
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_test*.db')
|
||||
----
|
||||
42
|
||||
100
|
||||
|
||||
# replacement scan
|
||||
query I
|
||||
SELECT * FROM '__TEST_DIR__/read_duckdb_test*.db'
|
||||
----
|
||||
42
|
||||
100
|
||||
|
||||
# prepared statement
|
||||
statement ok
|
||||
PREPARE v1 AS FROM read_duckdb('__TEST_DIR__/read_duckdb_test*.db')
|
||||
|
||||
query I
|
||||
EXECUTE v1
|
||||
----
|
||||
42
|
||||
100
|
||||
|
||||
# multi-table
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_test.db'
|
||||
|
||||
statement ok
|
||||
CREATE TABLE read_duckdb_test.my_tbl2 AS SELECT 84 j
|
||||
|
||||
statement ok
|
||||
DETACH read_duckdb_test
|
||||
|
||||
statement error
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_test.db')
|
||||
----
|
||||
multiple tables
|
||||
|
||||
query I
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_test.db', table_name='my_tbl')
|
||||
----
|
||||
42
|
||||
|
||||
query I
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_test.db', table_name='my_tbl2')
|
||||
----
|
||||
84
|
||||
|
||||
statement error
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_test.db', table_name='my_tblx')
|
||||
----
|
||||
my_tbl2
|
||||
30
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_generated.test
vendored
Normal file
30
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_generated.test
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
# name: test/sql/storage/read_duckdb/read_duckdb_generated.test
|
||||
# description: Test read_duckdb with generated columns
|
||||
# group: [read_duckdb]
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_generated.db' AS rd
|
||||
|
||||
statement ok
|
||||
CREATE TABLE rd.tbl (
|
||||
price INTEGER,
|
||||
amount_sold INTEGER,
|
||||
total_profit AS (price * amount_sold),
|
||||
non_generated INTEGER
|
||||
);
|
||||
|
||||
statement ok
|
||||
INSERT INTO rd.tbl VALUES (5,4, 100);
|
||||
|
||||
statement ok
|
||||
DETACH rd
|
||||
|
||||
statement error
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_generated.db')
|
||||
----
|
||||
total_profit
|
||||
|
||||
query III
|
||||
SELECT non_generated + 42, price, amount_sold FROM read_duckdb('__TEST_DIR__/read_duckdb_generated.db')
|
||||
----
|
||||
142 5 4
|
||||
28
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_index.test
vendored
Normal file
28
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_index.test
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
# name: test/sql/storage/read_duckdb/read_duckdb_index.test
|
||||
# description: Test read_duckdb with an index
|
||||
# group: [read_duckdb]
|
||||
|
||||
# FIXME: bug in WAL replay with read-only mode attach
|
||||
require no_alternative_verify
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_index.db'
|
||||
|
||||
statement ok
|
||||
CREATE TABLE read_duckdb_index.my_tbl(i INTEGER PRIMARY KEY);
|
||||
|
||||
statement ok
|
||||
INSERT INTO read_duckdb_index.my_tbl SELECT i + 1 FROM range(1000000) t(i);
|
||||
|
||||
statement ok
|
||||
DETACH read_duckdb_index
|
||||
|
||||
query I
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_index.db') WHERE i=42873
|
||||
----
|
||||
42873
|
||||
|
||||
query II
|
||||
SELECT *, rowid FROM read_duckdb('__TEST_DIR__/read_duckdb_index.db') WHERE i=42873
|
||||
----
|
||||
42873 42872
|
||||
42
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_schema.test
vendored
Normal file
42
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_schema.test
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
# name: test/sql/storage/read_duckdb/read_duckdb_schema.test
|
||||
# description: Test basic usage of read_duckdb
|
||||
# group: [read_duckdb]
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_schema.db' AS rd
|
||||
|
||||
statement ok
|
||||
CREATE SCHEMA rd.s1;
|
||||
|
||||
|
||||
statement ok
|
||||
CREATE SCHEMA rd.s2;
|
||||
|
||||
statement ok
|
||||
CREATE TABLE rd.s1.my_tbl AS SELECT 42 i
|
||||
|
||||
statement ok
|
||||
CREATE TABLE rd.s2.my_tbl AS SELECT 84 i
|
||||
|
||||
statement ok
|
||||
DETACH rd
|
||||
|
||||
statement error
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_schema.db')
|
||||
----
|
||||
s1.my_tbl
|
||||
|
||||
query I
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_schema.db', schema_name='s1', table_name='my_tbl')
|
||||
----
|
||||
42
|
||||
|
||||
query I
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_schema.db', schema_name='s2', table_name='my_tbl')
|
||||
----
|
||||
84
|
||||
|
||||
statement error
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_schema.db', schema_name='s3', table_name='my_tbl')
|
||||
----
|
||||
schema_name="s3", table_name="my_tbl"
|
||||
26
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_suggested.test
vendored
Normal file
26
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_suggested.test
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
# name: test/sql/storage/read_duckdb/read_duckdb_suggested.test
|
||||
# description: Test suggestions
|
||||
# group: [read_duckdb]
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_suggested.db' AS suggested
|
||||
|
||||
foreach table_name aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk lll mmm nnn ooo ppp qqq rrr sss ttt uuu vvv
|
||||
|
||||
statement ok
|
||||
CREATE TABLE suggested.${table_name} AS SELECT 42 i
|
||||
|
||||
endloop
|
||||
|
||||
statement ok
|
||||
DETACH suggested
|
||||
|
||||
statement error
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_suggested.db', table_name='ffg')
|
||||
----
|
||||
fff
|
||||
|
||||
statement error
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_suggested.db', table_name='vvx')
|
||||
----
|
||||
vvv
|
||||
54
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_top_n.test
vendored
Normal file
54
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_top_n.test
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
# name: test/sql/storage/read_duckdb/read_duckdb_top_n.test
|
||||
# group: [read_duckdb]
|
||||
|
||||
# create a bunch of tables
|
||||
loop i 0 5
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_top_n${i}.db' AS rd
|
||||
|
||||
statement ok
|
||||
CREATE TABLE rd.tbl AS SELECT ${i} grp, i val FROM range(${i} * 1000, ${i} * 1000 + 1000) t(i)
|
||||
|
||||
statement ok
|
||||
DETACH rd
|
||||
|
||||
endloop
|
||||
|
||||
query II
|
||||
FROM '__TEST_DIR__/read_duckdb_top_n*.db' ORDER BY val DESC LIMIT 5
|
||||
----
|
||||
4 4999
|
||||
4 4998
|
||||
4 4997
|
||||
4 4996
|
||||
4 4995
|
||||
|
||||
|
||||
query II
|
||||
FROM '__TEST_DIR__/read_duckdb_top_n*.db' WHERE grp<=2 ORDER BY val DESC LIMIT 5
|
||||
----
|
||||
2 2999
|
||||
2 2998
|
||||
2 2997
|
||||
2 2996
|
||||
2 2995
|
||||
|
||||
query I
|
||||
SELECT val FROM '__TEST_DIR__/read_duckdb_top_n*.db' WHERE grp<=2 ORDER BY val DESC LIMIT 5
|
||||
----
|
||||
2999
|
||||
2998
|
||||
2997
|
||||
2996
|
||||
2995
|
||||
|
||||
query I
|
||||
SELECT SUM(val) FROM '__TEST_DIR__/read_duckdb_top_n*.db' WHERE grp%2=0
|
||||
----
|
||||
7498500
|
||||
|
||||
query I
|
||||
SELECT SUM(val) FROM '__TEST_DIR__/read_duckdb_top_n*.db' WHERE grp::VARCHAR = '2'
|
||||
----
|
||||
2499500
|
||||
78
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_tpch.test_slow
vendored
Normal file
78
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_tpch.test_slow
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
# name: test/sql/storage/read_duckdb/read_duckdb_tpch.test_slow
|
||||
# group: [read_duckdb]
|
||||
|
||||
require tpch
|
||||
|
||||
statement ok
|
||||
CALL dbgen(sf=1, suffix='_original');
|
||||
|
||||
foreach tbl lineitem nation orders supplier part partsupp region customer
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/${tbl}_sf1.db' AS ${tbl}
|
||||
|
||||
statement ok
|
||||
CREATE TABLE ${tbl}.${tbl} AS FROM ${tbl}_original
|
||||
|
||||
statement ok
|
||||
DETACH ${tbl}
|
||||
|
||||
statement ok
|
||||
CREATE VIEW ${tbl} AS FROM read_duckdb('__TEST_DIR__/${tbl}_sf1.db')
|
||||
|
||||
endloop
|
||||
|
||||
loop i 1 9
|
||||
|
||||
query I
|
||||
PRAGMA tpch(${i})
|
||||
----
|
||||
<FILE>:extension/tpch/dbgen/answers/sf1/q0${i}.csv
|
||||
|
||||
endloop
|
||||
|
||||
loop i 10 23
|
||||
|
||||
query I
|
||||
PRAGMA tpch(${i})
|
||||
----
|
||||
<FILE>:extension/tpch/dbgen/answers/sf1/q${i}.csv
|
||||
|
||||
endloop
|
||||
|
||||
# top-n
|
||||
query IIIIIIII
|
||||
SELECT o_orderkey, o_custkey, o_orderstatus, o_totalprice, o_orderdate, o_orderpriority, o_clerk, o_shippriority FROM orders ORDER BY o_orderkey LIMIT 5;
|
||||
----
|
||||
1 36901 O 173665.47 1996-01-02 5-LOW Clerk#000000951 0
|
||||
2 78002 O 46929.18 1996-12-01 1-URGENT Clerk#000000880 0
|
||||
3 123314 F 193846.25 1993-10-14 5-LOW Clerk#000000955 0
|
||||
4 136777 O 32151.78 1995-10-11 5-LOW Clerk#000000124 0
|
||||
5 44485 F 144659.20 1994-07-30 5-LOW Clerk#000000925 0
|
||||
|
||||
query IIIIIIII
|
||||
SELECT o_orderkey, o_custkey, o_orderstatus, o_totalprice, o_orderdate, o_orderpriority, o_clerk, o_shippriority FROM orders ORDER BY o_orderkey DESC LIMIT 5;
|
||||
----
|
||||
6000000 110063 O 37625.29 1996-08-31 2-HIGH Clerk#000000411 0
|
||||
5999975 113398 F 63216.65 1993-07-25 1-URGENT Clerk#000000813 0
|
||||
5999974 55448 F 92750.90 1993-07-28 3-MEDIUM Clerk#000000776 0
|
||||
5999973 32071 O 68906.56 1997-07-13 4-NOT SPECIFIED Clerk#000000130 0
|
||||
5999972 143594 O 114856.68 1996-05-02 3-MEDIUM Clerk#000000536 0
|
||||
|
||||
query IIIIIIIIIIIIIII
|
||||
SELECT l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode FROM lineitem ORDER BY l_shipdate, l_orderkey LIMIT 5;
|
||||
----
|
||||
721220 177803 5355 2 19 35735.20 0.08 0.03 R F 1992-01-02 1992-02-04 1992-01-09 TAKE BACK RETURN SHIP
|
||||
842980 188156 5711 4 5 6220.75 0.01 0.03 A F 1992-01-02 1992-03-20 1992-01-20 COLLECT COD REG AIR
|
||||
904677 56678 1689 1 43 70290.81 0.08 0.01 R F 1992-01-02 1992-03-22 1992-01-14 COLLECT COD AIR
|
||||
990147 154290 4291 1 6 8065.74 0.10 0.01 R F 1992-01-02 1992-03-01 1992-01-15 NONE REG AIR
|
||||
1054181 16217 6218 1 45 50994.45 0.03 0.08 R F 1992-01-02 1992-02-05 1992-01-15 NONE MAIL
|
||||
|
||||
query IIIIIIIIIIIIIII
|
||||
SELECT l_orderkey,l_partkey,l_suppkey,l_linenumber,l_quantity,l_extendedprice,l_discount,l_tax,l_returnflag,l_linestatus,l_shipdate,l_commitdate,l_receiptdate,l_shipinstruct,l_shipmode FROM lineitem ORDER BY l_orderkey DESC, l_shipdate DESC LIMIT 5;
|
||||
----
|
||||
6000000 32255 2256 1 5 5936.25 0.04 0.03 N O 1996-11-02 1996-11-19 1996-12-01 TAKE BACK RETURN MAIL
|
||||
6000000 96127 6128 2 28 31447.36 0.01 0.02 N O 1996-09-22 1996-10-01 1996-10-21 NONE AIR
|
||||
5999975 37131 2138 3 18 19226.34 0.04 0.01 A F 1993-11-17 1993-08-28 1993-12-08 DELIVER IN PERSON FOB
|
||||
5999975 6452 1453 2 7 9509.15 0.04 0.00 A F 1993-11-02 1993-09-23 1993-11-19 DELIVER IN PERSON SHIP
|
||||
5999975 7272 2273 1 32 37736.64 0.07 0.01 R F 1993-10-07 1993-09-30 1993-10-21 COLLECT COD REG AIR
|
||||
28
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_transaction.test
vendored
Normal file
28
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_transaction.test
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
# name: test/sql/storage/read_duckdb/read_duckdb_transaction.test
|
||||
# description: Test using read_duckdb in a transaction
|
||||
# group: [read_duckdb]
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_transaction.db' AS rd
|
||||
|
||||
statement ok
|
||||
CREATE TABLE rd.my_tbl AS SELECT 42 i
|
||||
|
||||
statement ok
|
||||
DETACH rd
|
||||
|
||||
statement ok
|
||||
BEGIN
|
||||
|
||||
query I
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_transaction.db')
|
||||
----
|
||||
42
|
||||
|
||||
query I
|
||||
SELECT * FROM read_duckdb('__TEST_DIR__/read_duckdb_transaction.db')
|
||||
----
|
||||
42
|
||||
|
||||
statement ok
|
||||
COMMIT
|
||||
32
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_union_by_name.test
vendored
Normal file
32
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_union_by_name.test
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
# name: test/sql/storage/read_duckdb/read_duckdb_union_by_name.test
|
||||
# description: Test read_duckdb with union by name
|
||||
# group: [read_duckdb]
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_unionbyname1.db' AS rd
|
||||
|
||||
statement ok
|
||||
CREATE TABLE rd.my_tbl AS SELECT 100 i, 84 col1
|
||||
|
||||
statement ok
|
||||
DETACH rd
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_unionbyname2.db' AS rd
|
||||
|
||||
statement ok
|
||||
CREATE TABLE rd.my_tbl AS SELECT 200 i, 84 col2
|
||||
|
||||
statement ok
|
||||
DETACH rd
|
||||
|
||||
query III
|
||||
SELECT * FROM read_duckdb(['__TEST_DIR__/read_duckdb_unionbyname1.db', '__TEST_DIR__/read_duckdb_unionbyname2.db'], union_by_name=true);
|
||||
----
|
||||
100 84 NULL
|
||||
200 NULL 84
|
||||
|
||||
statement error
|
||||
SELECT * FROM read_duckdb(['__TEST_DIR__/read_duckdb_unionbyname1.db', '__TEST_DIR__/read_duckdb_unionbyname2.db']);
|
||||
----
|
||||
could not be found in file
|
||||
23
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_virtual_columns.test
vendored
Normal file
23
external/duckdb/test/sql/storage/read_duckdb/read_duckdb_virtual_columns.test
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# name: test/sql/storage/read_duckdb/read_duckdb_virtual_columns.test
|
||||
# description: Test basic usage of read_duckdb
|
||||
# group: [read_duckdb]
|
||||
|
||||
foreach dbindex 1 2
|
||||
|
||||
statement ok
|
||||
ATTACH '__TEST_DIR__/read_duckdb_virt${dbindex}.db' AS rd
|
||||
|
||||
statement ok
|
||||
CREATE TABLE rd.my_tbl AS SELECT 42 + i AS v FROM range(0, ${dbindex}) t(i)
|
||||
|
||||
statement ok
|
||||
DETACH rd
|
||||
|
||||
endloop
|
||||
|
||||
query III
|
||||
SELECT rowid, (filename.replace('\', '/').split('/'))[3], * FROM read_duckdb('__TEST_DIR__/read_duckdb_virt[1-2].db') ORDER BY filename, rowid
|
||||
----
|
||||
0 read_duckdb_virt1.db 42
|
||||
0 read_duckdb_virt2.db 42
|
||||
1 read_duckdb_virt2.db 43
|
||||
Reference in New Issue
Block a user