File: bitpacking_simple_hugeint.test

package info (click to toggle)
duckdb 1.5.1-3
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 299,196 kB
  • sloc: cpp: 865,414; ansic: 57,292; python: 18,871; sql: 12,663; lisp: 11,751; yacc: 7,412; lex: 1,682; sh: 747; makefile: 564
file content (60 lines) | stat: -rw-r--r-- 1,453 bytes parent folder | download | duplicates (3)
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