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,30 @@
# name: test/sql/tpcds/dsdgen_readonly.test
# description: Test that dsdgen respects read-only mode
# group: [tpcds]
require tpcds
load __TEST_DIR__/test_dsdgen_ro.db
statement ok
CREATE TABLE tbl (i INTEGER);
load __TEST_DIR__/test_dsdgen_ro.db readonly
statement error
CALL dsdgen(sf=0);
----
read-only
load
statement ok
ATTACH '__TEST_DIR__/test_dsdgen_ro.db' AS dsdgentest (READ_ONLY)
statement error
CALL dsdgen(sf=0, catalog='dsdgentest');
----
read-only
statement ok
CALL dsdgen(sf=0);

View File

@@ -0,0 +1,45 @@
# name: test/sql/tpcds/tpcds_datagen.test_slow
# description: Verify correct data is generated by TPC-DS data gen
# group: [tpcds]
require tpcds
statement ok
CALL dsdgen(sf=1);
# Issue #7225 - TPC-DS extension has incorrect name for s_tax_percentage column in store table
statement ok
SELECT s_tax_percentage FROM store
# Issue #7223 - TPC-DS extension writes null foreign key values incorrectly
query I
select count(*) from store_sales where ss_addr_sk is null;
----
129663
query I
select count(*) from store_sales where ss_store_sk is null;
----
129461
query I
select count(*) from web_sales where ws_ship_customer_sk is null;
----
170
# Issue #7222 - TPC-DS extension writes GMT Offset values incorrectly
query I
select ca_gmt_offset from customer_address group by 1 order by 1 desc;
----
-5
-6
-7
-8
-9
-10
NULL
query I
select s_gmt_offset from store group by 1
----
-5

View File

@@ -0,0 +1,66 @@
# name: test/sql/tpcds/tpcds_options.test_slow
# description: Test TPC-DS data generation options
# group: [tpcds]
require tpcds
statement ok
CALL dsdgen(sf=0)
# tables already exist
statement error
CALL dsdgen(sf=0)
----
# overwrite should work
statement ok
CALL dsdgen(sf=0, overwrite=true)
# suffix
statement ok
CALL dsdgen(sf=0.01, suffix='_bla')
statement ok
SELECT COUNT(*) FROM call_center_bla
statement ok
create schema tpcds
statement ok
CALL dsdgen(sf=0.01, schema='tpcds')
statement ok
SELECT COUNT(*) FROM tpcds.call_center
statement ok
ATTACH DATABASE ':memory:' AS db1;
statement ok
CALL dsdgen(sf=0.01, catalog='db1');
statement ok
SELECT COUNT(*) FROM db1.call_center
statement ok
CREATE SCHEMA db1.test_schema
statement ok
CALL dsdgen(sf=0.01, catalog='db1', schema='test_schema');
statement ok
SELECT COUNT(*) FROM db1.test_schema.call_center
statement error
Call dsdgen(sf=NULL);
----
<REGEX>:.*Cannot use NULL.*
statement error
Call dsdgen(catalog=NULL);
----
<REGEX>:.*Cannot use NULL.*
statement error
Call dsdgen(sf=1, suffix=NULL);
----
<REGEX>:.*Cannot use NULL.*

View File

@@ -0,0 +1,350 @@
# name: test/sql/tpcds/tpcds_reentrant.test_slow
# description: Test that TPC-DS is re-entrant
# group: [tpcds]
require tpcds
statement ok
CALL dsdgen(sf=0.01);
query I nosort call_center_sf0001
SELECT * FROM call_center
----
query I nosort catalog_page_sf0001
SELECT * FROM catalog_page
----
query I nosort catalog_returns_sf0001
SELECT * FROM catalog_returns
----
query I nosort catalog_sales_sf0001
SELECT * FROM catalog_sales
----
query I nosort customer_sf0001
SELECT * FROM customer
----
query I nosort customer_address_sf0001
SELECT * FROM customer_address
----
query I nosort customer_demographics_sf0001
SELECT * FROM customer_demographics
----
query I nosort date_dim_sf0001
SELECT * FROM date_dim
----
query I nosort household_demographics_sf0001
SELECT * FROM household_demographics
----
query I nosort income_band_sf0001
SELECT * FROM income_band
----
query I nosort inventory_sf0001
SELECT * FROM inventory
----
query I nosort item_sf0001
SELECT * FROM item
----
query I nosort promotion_sf0001
SELECT * FROM promotion
----
query I nosort reason_sf0001
SELECT * FROM reason
----
query I nosort ship_mode_sf0001
SELECT * FROM ship_mode
----
query I nosort store_sf0001
SELECT * FROM store
----
query I nosort store_returns_sf0001
SELECT * FROM store_returns
----
query I nosort store_sales_sf0001
SELECT * FROM store_sales
----
query I nosort time_dim_sf0001
SELECT * FROM time_dim
----
query I nosort warehouse_sf0001
SELECT * FROM warehouse
----
query I nosort web_page_sf0001
SELECT * FROM web_page
----
query I nosort web_returns_sf0001
SELECT * FROM web_returns
----
query I nosort web_sales_sf0001
SELECT * FROM web_sales
----
query I nosort web_site_sf0001
SELECT * FROM web_site
----
statement ok
DROP TABLE call_center;
statement ok
DROP TABLE catalog_page;
statement ok
DROP TABLE catalog_returns;
statement ok
DROP TABLE catalog_sales;
statement ok
DROP TABLE customer;
statement ok
DROP TABLE customer_address;
statement ok
DROP TABLE customer_demographics;
statement ok
DROP TABLE date_dim;
statement ok
DROP TABLE household_demographics;
statement ok
DROP TABLE income_band;
statement ok
DROP TABLE inventory;
statement ok
DROP TABLE item;
statement ok
DROP TABLE promotion;
statement ok
DROP TABLE reason;
statement ok
DROP TABLE ship_mode;
statement ok
DROP TABLE store;
statement ok
DROP TABLE store_returns;
statement ok
DROP TABLE store_sales;
statement ok
DROP TABLE time_dim;
statement ok
DROP TABLE warehouse;
statement ok
DROP TABLE web_page;
statement ok
DROP TABLE web_returns;
statement ok
DROP TABLE web_sales;
statement ok
DROP TABLE web_site;
statement ok
CALL dsdgen(sf=0.1);
statement ok
DROP TABLE call_center;
statement ok
DROP TABLE catalog_page;
statement ok
DROP TABLE catalog_returns;
statement ok
DROP TABLE catalog_sales;
statement ok
DROP TABLE customer;
statement ok
DROP TABLE customer_address;
statement ok
DROP TABLE customer_demographics;
statement ok
DROP TABLE date_dim;
statement ok
DROP TABLE household_demographics;
statement ok
DROP TABLE income_band;
statement ok
DROP TABLE inventory;
statement ok
DROP TABLE item;
statement ok
DROP TABLE promotion;
statement ok
DROP TABLE reason;
statement ok
DROP TABLE ship_mode;
statement ok
DROP TABLE store;
statement ok
DROP TABLE store_returns;
statement ok
DROP TABLE store_sales;
statement ok
DROP TABLE time_dim;
statement ok
DROP TABLE warehouse;
statement ok
DROP TABLE web_page;
statement ok
DROP TABLE web_returns;
statement ok
DROP TABLE web_sales;
statement ok
DROP TABLE web_site;
statement ok
CALL dsdgen(sf=0.01);
query I nosort call_center_sf0001
SELECT * FROM call_center
----
query I nosort catalog_page_sf0001
SELECT * FROM catalog_page
----
query I nosort catalog_returns_sf0001
SELECT * FROM catalog_returns
----
query I nosort catalog_sales_sf0001
SELECT * FROM catalog_sales
----
query I nosort customer_sf0001
SELECT * FROM customer
----
query I nosort customer_address_sf0001
SELECT * FROM customer_address
----
query I nosort customer_demographics_sf0001
SELECT * FROM customer_demographics
----
query I nosort date_dim_sf0001
SELECT * FROM date_dim
----
query I nosort household_demographics_sf0001
SELECT * FROM household_demographics
----
query I nosort income_band_sf0001
SELECT * FROM income_band
----
query I nosort inventory_sf0001
SELECT * FROM inventory
----
query I nosort item_sf0001
SELECT * FROM item
----
query I nosort promotion_sf0001
SELECT * FROM promotion
----
query I nosort reason_sf0001
SELECT * FROM reason
----
query I nosort ship_mode_sf0001
SELECT * FROM ship_mode
----
query I nosort store_sf0001
SELECT * FROM store
----
query I nosort store_returns_sf0001
SELECT * FROM store_returns
----
query I nosort store_sales_sf0001
SELECT * FROM store_sales
----
query I nosort time_dim_sf0001
SELECT * FROM time_dim
----
query I nosort warehouse_sf0001
SELECT * FROM warehouse
----
query I nosort web_page_sf0001
SELECT * FROM web_page
----
query I nosort web_returns_sf0001
SELECT * FROM web_returns
----
query I nosort web_sales_sf0001
SELECT * FROM web_sales
----
query I nosort web_site_sf0001
SELECT * FROM web_site
----

View File

@@ -0,0 +1,36 @@
# name: test/sql/tpcds/tpcds_sf0.test
# description: Test TPC-DS SF0
# group: [tpcds]
require tpcds
statement ok
CALL dsdgen(sf=0)
loop i 1 100
statement ok
PRAGMA tpcds(${i})
endloop
# out of range
statement error
PRAGMA tpcds(-1)
----
statement error
PRAGMA tpcds(3290819023812038903)
----
statement error
PRAGMA tpcds(32908301298)
----
statement error
PRAGMA tpcds(1.1)
----
# queries
statement ok
SELECT * FROM tpcds_queries()

View File

@@ -0,0 +1,159 @@
# name: test/sql/tpcds/tpcds_sf001.test_slow
# description: Test TPC-DS SF0.001
# group: [tpcds]
require tpcds
statement ok
PRAGMA verify_serializer
# answers are generated from postgres
# hence check with NULLS LAST flag
statement ok
PRAGMA default_null_order='postgres'
statement ok
CALL dsdgen(sf=0.01)
query T
SELECT COUNT(*) FROM call_center
----
1
query T
SELECT COUNT(*) FROM catalog_page
----
11718
query T
SELECT COUNT(*) FROM catalog_returns
----
1358
query T
SELECT COUNT(*) FROM catalog_sales
----
14313
query T
SELECT COUNT(*) FROM customer
----
1000
query T
SELECT COUNT(*) FROM customer_demographics
----
19208
query T
SELECT COUNT(*) FROM customer_address
----
500
query T
SELECT COUNT(*) FROM date_dim
----
73049
query T
SELECT COUNT(*) FROM household_demographics
----
7200
query T
SELECT COUNT(*) FROM inventory
----
23490
query T
SELECT COUNT(*) FROM income_band
----
20
query T
SELECT COUNT(*) FROM item
----
180
query T
SELECT COUNT(*) FROM promotion
----
3
query T
SELECT COUNT(*) FROM reason
----
1
query T
SELECT COUNT(*) FROM ship_mode
----
20
query T
SELECT COUNT(*) FROM store
----
1
query T
SELECT COUNT(*) FROM store_returns
----
2810
query T
SELECT COUNT(*) FROM store_sales
----
28810
query T
SELECT COUNT(*) FROM time_dim
----
86400
query T
SELECT COUNT(*) FROM warehouse
----
1
query T
SELECT COUNT(*) FROM web_page
----
1
query T
SELECT COUNT(*) FROM web_returns
----
679
query T
SELECT COUNT(*) FROM web_sales
----
7212
query T
SELECT COUNT(*) FROM web_site
----
1
loop i 1 9
query I
PRAGMA tpcds(${i})
----
<FILE>:extension/tpcds/dsdgen/answers/sf0.01/0${i}.csv
endloop
loop i 10 100
query I
PRAGMA tpcds(${i})
----
<FILE>:extension/tpcds/dsdgen/answers/sf0.01/${i}.csv
endloop
query II
explain select * from (pivot store_sales on ss_store_sk in (1,2,4,7,8,10) using sum(ss_ext_list_price) group by ss_item_sk) where ss_item_sk<100;
----
physical_plan <REGEX>:.*SEQ_SCAN.*Filters.*

View File

@@ -0,0 +1,152 @@
# name: test/sql/tpcds/tpcds_sf001_keys.test_slow
# description: Test TPC-DS SF0.001
# group: [tpcds]
require tpcds
# answers are generated from postgres
# hence check with NULLS LAST flag
statement ok
PRAGMA default_null_order='NULLS LAST'
statement ok
CALL dsdgen(sf=0.01, keys=true)
query T
SELECT COUNT(*) FROM call_center
----
1
query T
SELECT COUNT(*) FROM catalog_page
----
11718
query T
SELECT COUNT(*) FROM catalog_returns
----
1358
query T
SELECT COUNT(*) FROM catalog_sales
----
14313
query T
SELECT COUNT(*) FROM customer
----
1000
query T
SELECT COUNT(*) FROM customer_demographics
----
19208
query T
SELECT COUNT(*) FROM customer_address
----
500
query T
SELECT COUNT(*) FROM date_dim
----
73049
query T
SELECT COUNT(*) FROM household_demographics
----
7200
query T
SELECT COUNT(*) FROM inventory
----
23490
query T
SELECT COUNT(*) FROM income_band
----
20
query T
SELECT COUNT(*) FROM item
----
180
query T
SELECT COUNT(*) FROM promotion
----
3
query T
SELECT COUNT(*) FROM reason
----
1
query T
SELECT COUNT(*) FROM ship_mode
----
20
query T
SELECT COUNT(*) FROM store
----
1
query T
SELECT COUNT(*) FROM store_returns
----
2810
query T
SELECT COUNT(*) FROM store_sales
----
28810
query T
SELECT COUNT(*) FROM time_dim
----
86400
query T
SELECT COUNT(*) FROM warehouse
----
1
query T
SELECT COUNT(*) FROM web_page
----
1
query T
SELECT COUNT(*) FROM web_returns
----
679
query T
SELECT COUNT(*) FROM web_sales
----
7212
query T
SELECT COUNT(*) FROM web_site
----
1
loop i 1 9
query I
PRAGMA tpcds(${i})
----
<FILE>:extension/tpcds/dsdgen/answers/sf0.01/0${i}.csv
endloop
loop i 10 100
query I
PRAGMA tpcds(${i})
----
<FILE>:extension/tpcds/dsdgen/answers/sf0.01/${i}.csv
endloop

View File

@@ -0,0 +1,150 @@
# name: test/sql/tpcds/tpcds_sf1.test_slow
# description: Test TPC-DS SF1
# group: [tpcds]
require tpcds
statement ok
CALL dsdgen(sf=1)
statement ok
PRAGMA default_null_order='postgres'
# check table counts
query T
SELECT COUNT(*) FROM call_center
----
6
query T
SELECT COUNT(*) FROM catalog_page
----
11718
query T
SELECT COUNT(*) FROM catalog_returns
----
144067
query T
SELECT COUNT(*) FROM catalog_sales
----
1441548
query T
SELECT COUNT(*) FROM customer
----
100000
query T
SELECT COUNT(*) FROM customer_demographics
----
1920800
query T
SELECT COUNT(*) FROM customer_address
----
50000
query T
SELECT COUNT(*) FROM date_dim
----
73049
query T
SELECT COUNT(*) FROM household_demographics
----
7200
query T
SELECT COUNT(*) FROM inventory
----
11745000
query T
SELECT COUNT(*) FROM income_band
----
20
query T
SELECT COUNT(*) FROM item
----
18000
query T
SELECT COUNT(*) FROM promotion
----
300
query T
SELECT COUNT(*) FROM reason
----
35
query T
SELECT COUNT(*) FROM ship_mode
----
20
query T
SELECT COUNT(*) FROM store
----
12
query T
SELECT COUNT(*) FROM store_returns
----
287867
query T
SELECT COUNT(*) FROM store_sales
----
2880404
query T
SELECT COUNT(*) FROM time_dim
----
86400
query T
SELECT COUNT(*) FROM warehouse
----
5
query T
SELECT COUNT(*) FROM web_page
----
60
query T
SELECT COUNT(*) FROM web_returns
----
71654
query T
SELECT COUNT(*) FROM web_sales
----
719384
query T
SELECT COUNT(*) FROM web_site
----
30
loop i 1 9
query I
PRAGMA tpcds(${i})
----
<FILE>:extension/tpcds/dsdgen/answers/sf1/0${i}.csv
endloop
loop i 10 100
query I
PRAGMA tpcds(${i})
----
<FILE>:extension/tpcds/dsdgen/answers/sf1/${i}.csv
endloop

View File

@@ -0,0 +1,39 @@
# name: test/sql/tpcds/tpcds_sf1_no_order.test_slow
# description: Test TPC-DS SF1 with unpreserved insertion order
# group: [tpcds]
require tpcds
statement ok
CALL dsdgen(sf=1, suffix='_original')
statement ok
PRAGMA default_null_order='NULLS LAST'
statement ok
SET preserve_insertion_order=false;
foreach tbl web_site web_sales web_returns web_page warehouse time_dim store_sales store_returns store ship_mode reason promotion item inventory income_band household_demographics date_dim customer_demographics customer_address customer catalog_sales catalog_returns catalog_page call_center
statement ok
CREATE TABLE ${tbl} AS SELECT * FROM ${tbl}_original
endloop
loop i 1 9
query I
PRAGMA tpcds(${i})
----
<FILE>:extension/tpcds/dsdgen/answers/sf1/0${i}.csv
endloop
loop i 10 100
query I
PRAGMA tpcds(${i})
----
<FILE>:extension/tpcds/dsdgen/answers/sf1/${i}.csv
endloop

View File

@@ -0,0 +1,38 @@
# name: test/sql/tpcds/tpcds_topn.test_slow
# description: Test top-n queries on TPC-DS
# group: [tpcds]
require tpcds
statement ok
PRAGMA enable_verification
statement ok
CALL dsdgen(sf=1);
query IIIIIIIIIIIIIIIIII
SELECT * FROM customer ORDER BY c_customer_sk DESC, c_customer_id DESC LIMIT 5;
----
100000 AAAAAAAAAKGIBAAA 441077 4582 8487 2449763 2449733 Mrs. Erica Parrott N 16 7 1939 BELGIUM (empty) Erica.Parrott@9pnE.com 2452621
99999 AAAAAAAAPJGIBAAA 1641963 292 15421 2452000 2451970 Mr. Rex Reyes Y 9 7 1981 GREECE (empty) Rex.Reyes@saLGsYab.org 2452297
99998 AAAAAAAAOJGIBAAA 1030893 4338 46583 2452285 2452255 Dr. Helen Bateman N 8 11 1979 UNITED KINGDOM (empty) Helen.Bateman@bVJ4ND7frLIIJZX.org 2452541
99997 AAAAAAAANJGIBAAA 1822151 6135 2919 2450290 2450260 Dr. Jennifer Bolton Y 9 4 1954 BRUNEI DARUSSALAM (empty) Jennifer.Bolton@ecidoI.com 2452497
99996 AAAAAAAAMJGIBAAA 1106140 769 29398 2451524 2451494 Dr. Larry Kerr Y 20 9 1959 LITHUANIA (empty) Larry.Kerr@V6KToJQKDF4a.org 2452300
query IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
SELECT * FROM web_sales ORDER BY ws_sold_date_sk DESC, ws_sold_time_sk, ws_ship_date_sk DESC LIMIT 5;
----
2452642 150 2452754 5448 54282 327982 6835 10135 64413 768001 731 18708 49 21 17 3 209 21442 76 73.32 198.69 176.83 1661.36 13439.08 5572.32 15100.44 940.73 0.00 6945.64 13439.08 14379.81 20384.72 21325.45 7866.76
2452642 150 2452749 12234 54282 327982 6835 10135 64413 768001 731 18708 49 30 18 3 151 21442 54 34.33 42.91 0.85 2271.24 45.90 1853.82 2317.14 2.29 0.00 648.54 45.90 48.19 694.44 696.73 -1807.92
2452642 150 2452739 10692 54282 327982 6835 10135 64413 768001 731 18708 1 15 2 4 36 21442 97 23.46 69.20 14.53 5302.99 1409.41 2275.62 6712.40 0.00 0.00 2483.20 1409.41 1409.41 3892.61 3892.61 -866.21
2452642 150 2452733 13719 54282 327982 6835 10135 64413 768001 731 18708 49 21 17 3 269 21442 17 54.64 77.04 34.66 720.46 589.22 928.88 1309.68 17.67 0.00 170.17 589.22 606.89 759.39 777.06 -339.66
2452642 150 2452730 11448 54282 327982 6835 10135 64413 768001 731 18708 43 21 10 4 8 21442 79 77.85 121.44 2.42 9402.58 191.18 6150.15 9593.76 15.29 0.00 3549.47 191.18 206.47 3740.65 3755.94 -5958.97
query IIIIIIIIIIIIIIIIIIIIIII
SELECT * FROM store_sales ORDER BY ss_wholesale_cost DESC, ss_list_price DESC, ss_sales_price DESC, ss_customer_sk ASC LIMIT 5;
----
2450961 41243 14224 43635 774719 4650 48934 10 111 81403 58 100.00 200.00 130.00 0.00 7540.00 5800.00 11600.00 678.60 0.00 7540.00 8218.60 1740.00
2451477 43650 8584 53438 890670 3902 7934 2 98 228380 26 100.00 199.00 191.04 0.00 4967.04 2600.00 5174.00 248.35 0.00 4967.04 5215.39 2367.04
2451825 51234 7699 96888 1847791 7047 49903 2 224 56735 66 100.00 199.00 127.36 0.00 8405.76 6600.00 13134.00 168.11 0.00 8405.76 8573.87 1805.76
2452228 32676 17493 66423 493260 2497 18887 2 63 112168 90 100.00 199.00 117.41 0.00 10566.90 9000.00 17910.00 634.01 0.00 10566.90 11200.91 1566.90
2452366 54008 11371 66649 1175495 5141 10387 4 233 145999 47 100.00 199.00 111.44 1937.94 5237.68 4700.00 9353.00 197.98 1937.94 3299.74 3497.72 -1400.26