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,20 @@
# name: benchmark/micro/compression/fsst/fsst_late_decompression.benchmark
# description: Using a filter on another column to make use of late decompression
# group: [fsst]
name fsst late decompression benefit
group fsst
storage persistent
load
DROP TABLE IF EXISTS test;
PRAGMA force_compression='fsst';
CREATE TABLE test AS SELECT i as id, (100 + (i%2))::VARCHAR AS value FROM range(0, 50000000) tbl(i);
checkpoint;
SET enable_fsst_vectors=false;
run
select avg(value::INT) from test where id%10=0;
result I
100.500000

View File

@@ -0,0 +1,19 @@
# name: benchmark/micro/compression/fsst/fsst_read.benchmark
# description: Scanning strings at ~3.35x compression
# group: [fsst]
name fsst Compression Scan
group fsst
storage persistent
load
DROP TABLE IF EXISTS test;
PRAGMA force_compression='fsst';
CREATE TABLE test AS SELECT (100 + (i%1000))::VARCHAR AS i FROM range(0, 50000000) tbl(i);
checkpoint;
run
select avg(i::INT) from test;
result I
599.500000

View File

@@ -0,0 +1,16 @@
# name: benchmark/micro/compression/fsst/fsst_read_worst_case.benchmark
# description: Scanning data that is not with fsst encoding, note that compresssion ratio is still 1.9x due to bitpacking
# group: [fsst]
name fsst Compression Scan
group aggregate
storage persistent
load
DROP TABLE IF EXISTS test;
PRAGMA force_compression='fsst';
CREATE TABLE test AS SELECT gen_random_uuid()::VARCHAR AS i FROM range(0, 20000000) tbl(i);
checkpoint;
run
select max(i[2]) from test;

View File

@@ -0,0 +1,16 @@
# name: benchmark/micro/compression/fsst/fsst_store.benchmark
# description: Storing strings compressed at ~3.3x compression
# group: [fsst]
name fsst Compression Write
group aggregate
storage persistent
require_reinit
load
PRAGMA force_compression='fsst';
run
CREATE TABLE test_compressed AS SELECT (100 + (i%1000))::VARCHAR AS i FROM range(0, 2500000) tbl(i);
checkpoint;

View File

@@ -0,0 +1,16 @@
# name: benchmark/micro/compression/fsst/fsst_store_worst_case.benchmark
# description: Storing a column containing only unique strings.
# group: [fsst]
name name fsst Compression Write
group fsst
storage persistent
require_reinit
load
PRAGMA force_compression='fsst';
DROP TABLE IF EXISTS test;
run
CREATE TABLE test AS SELECT gen_random_uuid()::VARCHAR AS i FROM range(0, 2000000) tbl(i);
checkpoint;

View File

@@ -0,0 +1,17 @@
# name: benchmark/micro/compression/fsst/select_fsst_selective.benchmark
# description: FSST String selective filter
# group: [fsst]
name Select FSST String Columns (0.1% selectivity)
group fsst
storage persistent
load
CREATE TABLE string_values(filter_val INTEGER USING COMPRESSION UNCOMPRESSED, str_val VARCHAR USING COMPRESSION FSST, str_val_nulls VARCHAR USING COMPRESSION FSST);
INSERT INTO string_values SELECT i % 1000, case when i%7=0 then concat('thisisalongstring', i) else concat('shortstr', i // 10) end str_val, case when i%3=0 then null else str_val end str_val_nulls FROM range(100_000_000) t(i);
run
SELECT COUNT(*), SUM(strlen(str_val)), SUM(strlen(str_val_nulls)), COUNT(str_val_nulls) FROM string_values WHERE filter_val=77;
result IIII
100000 1631748 1087835 66667

View File

@@ -0,0 +1,17 @@
# name: benchmark/micro/compression/fsst/select_fsst_unselective.benchmark
# description: FSST String unselective filter
# group: [fsst]
name Select FSST String Columns (33% selectivity)
group fsst
storage persistent
load
CREATE TABLE string_values(filter_val INTEGER USING COMPRESSION UNCOMPRESSED, str_val VARCHAR USING COMPRESSION FSST, str_val_nulls VARCHAR USING COMPRESSION FSST);
INSERT INTO string_values SELECT i % 3, case when i%7=0 then concat('thisisalongstring', i) else concat('shortstr', i // 10) end str_val, case when i%3=0 then null else str_val end str_val_nulls FROM range(100_000_000) t(i);
run
SELECT COUNT(*), SUM(strlen(str_val)), SUM(strlen(str_val_nulls)), COUNT(str_val_nulls) FROM string_values WHERE filter_val=1;
result IIII
33333333 543915346 543915346 33333333