1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
# name: test/sql/storage/compression/bitpacking/bitpacking_nulls.test
# description: Test bitpacking with nulls
# group: [bitpacking]
# This test defaults to another compression function for smaller block sizes,
# because the bitpacking groups no longer fit the blocks.
require block_size 262144
load __TEST_DIR__/test_bitpacking.db
statement ok
PRAGMA force_compression='bitpacking'
foreach bitpacking_mode delta_for for constant_delta constant
statement ok
PRAGMA force_bitpacking_mode='${bitpacking_mode}'
# simple compression with few values
statement ok
CREATE TABLE test (a BIGINT);
# Constant compressible range
statement ok
INSERT INTO test SELECT case when i%5=0 then null else 1337 end FROM range(0,10000) tbl(i);
# Constant delta compressible range
statement ok
INSERT INTO test SELECT case when i%5=0 then null else i end FROM range(0,10000) tbl(i);
# FOR/FOR-delta compressible range
statement ok
INSERT INTO test SELECT case when i%5=0 then null else i//2 end FROM range(0,10000) tbl(i);
statement ok
checkpoint
query I
SELECT compression FROM pragma_storage_info('test') WHERE segment_type ILIKE 'BIGINT' and compression != 'BitPacking';
----
query III
select sum(a), min(a), max(a) from test;
----
70694000 0 9999
statement ok
DROP TABLE test;
endloop
|