should be it
This commit is contained in:
42
external/duckdb/test/sql/storage/delete/delete_final_row_group.test_slow
vendored
Normal file
42
external/duckdb/test/sql/storage/delete/delete_final_row_group.test_slow
vendored
Normal 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
|
||||
38
external/duckdb/test/sql/storage/delete/drop_many_deletes.test_slow
vendored
Normal file
38
external/duckdb/test/sql/storage/delete/drop_many_deletes.test_slow
vendored
Normal 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
|
||||
49
external/duckdb/test/sql/storage/delete/load_delete_modify.test
vendored
Normal file
49
external/duckdb/test/sql/storage/delete/load_delete_modify.test
vendored
Normal 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
|
||||
130
external/duckdb/test/sql/storage/delete/repeated_deletes.test
vendored
Normal file
130
external/duckdb/test/sql/storage/delete/repeated_deletes.test
vendored
Normal 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
|
||||
54
external/duckdb/test/sql/storage/delete/store_deletes_large.test_slow
vendored
Normal file
54
external/duckdb/test/sql/storage/delete/store_deletes_large.test_slow
vendored
Normal 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
|
||||
76
external/duckdb/test/sql/storage/delete/test_store_deletes.test
vendored
Normal file
76
external/duckdb/test/sql/storage/delete/test_store_deletes.test
vendored
Normal 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
|
||||
37
external/duckdb/test/sql/storage/delete/test_unchanged_deletes.test
vendored
Normal file
37
external/duckdb/test/sql/storage/delete/test_unchanged_deletes.test
vendored
Normal 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
|
||||
75
external/duckdb/test/sql/storage/delete/test_unchanged_deletes_large.test
vendored
Normal file
75
external/duckdb/test/sql/storage/delete/test_unchanged_deletes_large.test
vendored
Normal 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
|
||||
Reference in New Issue
Block a user