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,42 @@
# name: test/sql/storage/delete/delete_final_row_group.test_slow
# description: Test deleting the final row groups of a table
# group: [delete]
load __TEST_DIR__/delete_final_row_group.db
statement ok
CREATE TABLE integers AS SELECT * FROM range(0, 10000000) t(i);
query I
DELETE FROM integers WHERE i>=5000000
----
5000000
query II
SELECT COUNT(*), SUM(i) FROM integers
----
5000000 12499997500000
statement ok
ALTER TABLE integers ADD COLUMN j INTEGER
query III
SELECT COUNT(*), SUM(i), SUM(j) FROM integers
----
5000000 12499997500000 NULL
statement ok
UPDATE integers SET j=i+1
query III
SELECT COUNT(*), SUM(i), SUM(j) FROM integers
----
5000000 12499997500000 12500002500000
restart
query III
SELECT COUNT(*), SUM(i), SUM(j) FROM integers
----
5000000 12499997500000 12500002500000

View File

@@ -0,0 +1,38 @@
# name: test/sql/storage/delete/drop_many_deletes.test_slow
# description: Test dropping a table that has many deletes
# group: [delete]
load __TEST_DIR__/drop_many_deletes.db
statement ok
CREATE TABLE integers AS SELECT * FROM range(0, 10000000) t(i);
query I
DELETE FROM integers WHERE i % 2 = 0
----
5000000
restart
query I
SELECT COUNT(*) FROM integers
----
5000000
# the metadata size is less than or euqal to 262144 bytes
query I
SELECT COUNT(*) * get_block_size('drop_many_deletes') <= 262144 FROM pragma_metadata_info()
----
1
statement ok
DROP TABLE integers
restart
# verify that the blocks are returned to the system and the metadata blocks are freed
# by verifying that the metadata size is still less than or euqal to 262144 bytes
query I
SELECT COUNT(*) * get_block_size('drop_many_deletes') <= 262144 FROM pragma_metadata_info()
----
1

View File

@@ -0,0 +1,49 @@
# name: test/sql/storage/delete/load_delete_modify.test
# description: Test loading a table with deletes and then performing an operation
# group: [delete]
# load the DB from disk
load __TEST_DIR__/load_delete_modify.db
statement ok
CREATE TABLE integers AS SELECT * FROM generate_series(0,599999) t(i);
query I
DELETE FROM integers WHERE i%2=0
----
300000
# LOAD -> ALTER
restart
statement ok
ALTER TABLE integers ADD COLUMN k INTEGER
query III
SELECT COUNT(*), COUNT(i), COUNT(k) FROM integers
----
300000 300000 0
# LOAD -> UPDATE
restart
statement ok
UPDATE integers SET k=i+1
query IIII
SELECT COUNT(*), COUNT(i), COUNT(k), SUM(k) - SUM(i) FROM integers
----
300000 300000 300000 300000
# LOAD -> DELETE MORE
restart
query I
DELETE FROM integers WHERE i%3=0
----
100000
query IIII
SELECT COUNT(*), COUNT(i), COUNT(k), SUM(k) - SUM(i) FROM integers
----
200000 200000 200000 200000

View File

@@ -0,0 +1,130 @@
# name: test/sql/storage/delete/repeated_deletes.test
# description: Test deletes with storage
# group: [delete]
# load the DB from disk
load __TEST_DIR__/test_repeated_deletes.db
statement ok
CREATE TABLE test (i INTEGER);
statement ok
INSERT INTO test SELECT * FROM generate_series(0, 999);
query I
DELETE FROM test WHERE i%2=0;
----
500
restart
query IIII
SELECT COUNT(*), SUM(i), MIN(i), MAX(i) FROM test;
----
500 250000 1 999
statement ok
INSERT INTO test SELECT * FROM generate_series(1000, 1099);
query IIII
SELECT COUNT(*), SUM(i), MIN(i), MAX(i) FROM test;
----
600 354950 1 1099
query I
DELETE FROM test WHERE i%3=0;
----
200
restart
query IIII
SELECT COUNT(*), SUM(i), MIN(i), MAX(i) FROM test;
----
400 236633 1 1099
statement ok
INSERT INTO test SELECT * FROM generate_series(1000, 1999);
query IIII
SELECT COUNT(*), SUM(i), MIN(i), MAX(i) FROM test;
----
1400 1736133 1 1999
restart
query IIII
SELECT COUNT(*), SUM(i), MIN(i), MAX(i) FROM test;
----
1400 1736133 1 1999
query I
SELECT COUNT(*) FROM test WHERE i%7=0
----
200
query I
DELETE FROM test WHERE i%7=0;
----
200
restart
query IIII
SELECT COUNT(*), SUM(i), MIN(i), MAX(i) FROM test;
----
1200 1488228 1 1999
query I
DELETE FROM test WHERE i%3=0;
----
285
restart
query IIII
SELECT COUNT(*), SUM(i), MIN(i), MAX(i) FROM test;
----
915 1060800 1 1999
statement ok
INSERT INTO test SELECT 1 FROM generate_series(0, 4000);
statement ok
INSERT INTO test SELECT 2 FROM generate_series(0, 4000);
query I
DELETE FROM test WHERE i=1;
----
4002
restart
query IIII
SELECT COUNT(*), SUM(i), MIN(i), MAX(i) FROM test;
----
4915 1068801 2 1999
query I
DELETE FROM test WHERE i=2;
----
4001
restart
query IIII
SELECT COUNT(*), SUM(i), MIN(i), MAX(i) FROM test;
----
914 1060799 5 1999
query I
DELETE FROM test;
----
914
restart
query IIII
SELECT COUNT(*), SUM(i), MIN(i), MAX(i) FROM test;
----
0 NULL NULL NULL

View File

@@ -0,0 +1,54 @@
# name: test/sql/storage/delete/store_deletes_large.test_slow
# description: Test storing large deletes
# group: [delete]
# load the DB from disk
load __TEST_DIR__/test_store_deletes.db
statement ok
BEGIN TRANSACTION;
statement ok
CREATE TABLE test (a INTEGER, b INTEGER);
statement ok
INSERT INTO test SELECT i, i+2 FROM range(0, 1000000) t(i)
query I
SELECT COUNT(*) FROM test
----
1000000
statement ok
DELETE FROM test WHERE a=2
query I
SELECT COUNT(*) FROM test
----
999999
statement ok
COMMIT
restart
query I
SELECT COUNT(*) FROM test
----
999999
statement ok
INSERT INTO test VALUES (2, 4)
query I
SELECT COUNT(*) FROM test
----
1000000
statement ok
DELETE FROM test WHERE a%2=0
query I
SELECT COUNT(*) FROM test
----
500000

View File

@@ -0,0 +1,76 @@
# name: test/sql/storage/delete/test_store_deletes.test
# description: Test deletes with storage
# group: [delete]
# load the DB from disk
load __TEST_DIR__/test_store_deletes.db
statement ok
BEGIN TRANSACTION;
statement ok
CREATE TABLE test (a INTEGER, b INTEGER);
statement ok
INSERT INTO test VALUES (11, 22), (12, 21), (13, 22), (12, 21)
statement ok
DELETE FROM test WHERE a=12
query II
SELECT a, b FROM test ORDER BY a
----
11 22
13 22
statement ok
COMMIT
statement ok
CHECKPOINT;
restart
query II
SELECT a, b FROM test ORDER BY a
----
11 22
13 22
statement ok
DELETE FROM test WHERE a=11
query II
SELECT a, b FROM test ORDER BY a
----
13 22
statement ok
INSERT INTO test VALUES (11, 24), (12, 25)
query II
SELECT a, b FROM test ORDER BY a
----
11 24
12 25
13 22
statement ok
DELETE FROM test WHERE a=12
query II
SELECT a, b FROM test ORDER BY a
----
11 24
13 22
statement ok
CHECKPOINT;
restart
query II
SELECT a, b FROM test ORDER BY a
----
11 24
13 22

View File

@@ -0,0 +1,37 @@
# name: test/sql/storage/delete/test_unchanged_deletes.test
# description: Test reloading unchanged deletes
# group: [delete]
# load the DB from disk
load __TEST_DIR__/test_unchanged_deletes.db
statement ok
CREATE TABLE integers AS FROM range(4) t(i)
query I
DELETE FROM integers WHERE i%2=0
----
2
query I
SELECT COUNT(*) FROM integers
----
2
statement ok
CREATE TABLE integers2(i int);
# repeatedly add elements and checkpoint
loop i 0 10
query I
SELECT COUNT(*) FROM integers
----
2
statement ok
INSERT INTO integers2 VALUES (${i});
restart
endloop

View File

@@ -0,0 +1,75 @@
# name: test/sql/storage/delete/test_unchanged_deletes_large.test
# description: Test reloading unchanged deletes
# group: [delete]
# load the DB from disk
load __TEST_DIR__/test_unchanged_deletes_large.db
statement ok
CREATE TABLE integers AS SELECT * FROM generate_series(0,599999) t(i);
query I
DELETE FROM integers WHERE i%2=0
----
300000
query I
SELECT COUNT(*) FROM integers
----
300000
statement ok
INSERT INTO integers VALUES (42);
query I
SELECT COUNT(*) FROM integers
----
300001
restart
query I
SELECT COUNT(*) FROM integers
----
300001
query I
DELETE FROM integers WHERE i%3=0
----
100001
query I
SELECT COUNT(*) FROM integers
----
200000
restart
query I
SELECT COUNT(*) FROM integers
----
200000
loop i 0 5
restart
statement ok
INSERT INTO integers VALUES (84)
statement ok
checkpoint
query I
SELECT COUNT(*) - ${i} FROM integers
----
200001
restart
query I
SELECT COUNT(*) - ${i} FROM integers
----
200001
endloop