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 51 52 53 54 55 56 57 58 59 60
|
# name: test/sql/storage/compression/bitpacking/bitpacking_simple_hugeint.test
# description: Test storage bitpacking, but simple and for hugeints
# 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 (id VARCHAR, a HUGEINT);
# insert multiple ranges so that each method can be used on at least on the the ranges bit-width > 96
statement ok
INSERT INTO test SELECT i::VARCHAR, -i::HUGEINT + -1234567891011121314151617180000::HUGEINT FROM range(0, 10000) tbl(i);
statement ok
INSERT INTO test SELECT i::VARCHAR, 13371337 FROM range(0,10000) tbl(i);
statement ok
checkpoint
query I
select a from test limit 5;
----
-1234567891011121314151617180000
-1234567891011121314151617180001
-1234567891011121314151617180002
-1234567891011121314151617180003
-1234567891011121314151617180004
query I
select a from test limit 5 offset 12000;
----
13371337
13371337
13371337
13371337
13371337
query I
SELECT compression FROM pragma_storage_info('test') WHERE segment_type ILIKE 'HUGEINT';
----
BitPacking
statement ok
DROP TABLE test;
endloop
|