# name: test/sql/create/create_table_compression.test # description: Test CREATE TABLE using compression options # group: [create] # This test defaults to another compression function for smaller block sizes, # because the bitpacking groups no longer fit the blocks. require block_size 262144 require skip_reload statement ok PRAGMA enable_verification statement ok CREATE TABLE T (a INTEGER USING COMPRESSION RLE) statement ok DROP TABLE T statement error CREATE TABLE T (a INTEGER USING COMPRESSION 'bla') ---- statement error CREATE TABLE T (a INTEGER USING COMPRESSION ) ---- Parser Error: syntax error at or near ")" statement error CREATE TABLE T (a INTEGER NOT NULL USING COMPRESSION ) ---- Parser Error: syntax error at or near ")" statement error CREATE TABLE T (a INTEGER USING COMPRESSION bla) ---- Parser Error: Unrecognized option for column compression, expected none, uncompressed, rle, dictionary, pfor, bitpacking, fsst, chimp, patas, zstd, alp, alprd or roaring statement ok CREATE TABLE T (a INTEGER NOT NULL USING COMPRESSION RLE) statement ok DROP TABLE T statement ok CREATE TABLE T (a INTEGER USING COMPRESSION RLE, b VARCHAR ) statement ok DROP TABLE T load __TEST_DIR__/test_compression_hint.db statement ok CREATE TABLE T (a INTEGER USING COMPRESSION RLE, b INTEGER USING COMPRESSION BITPACKING, C INTEGER USING COMPRESSION UNCOMPRESSED) statement ok INSERT INTO T VALUES (1,1,1), (1,1,1), (1,1,1), (2,2,2), (2,2,2), (3,3,3) query III SELECT * FROM T ---- 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 restart query III SELECT * FROM T ---- 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 statement ok CHECKPOINT query I SELECT compression FROM pragma_storage_info('T') WHERE segment_type ILIKE 'INTEGER' LIMIT 3 ---- RLE BitPacking Uncompressed statement ok ALTER TABLE T RENAME COLUMN a TO a_1 statement ok ALTER TABLE T RENAME COLUMN b TO b_1 statement ok ALTER TABLE T RENAME COLUMN c TO c_1 restart query III SELECT * FROM T ---- 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 query I SELECT compression FROM pragma_storage_info('T') WHERE segment_type ILIKE 'INTEGER' LIMIT 3 ---- RLE BitPacking Uncompressed statement ok ALTER TABLE T RENAME TO T_1 restart query III SELECT * FROM T_1 ---- 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 query I SELECT compression FROM pragma_storage_info('T_1') WHERE segment_type ILIKE 'INTEGER' LIMIT 3 ---- RLE BitPacking Uncompressed # Test Drop Column statement ok ALTER TABLE T_1 DROP COLUMN c_1 statement ok ALTER TABLE T_1 DROP COLUMN b_1 restart query I SELECT * FROM T_1 ---- 1 1 1 2 2 3 query I SELECT compression FROM pragma_storage_info('T_1') WHERE segment_type ILIKE 'INTEGER' LIMIT 2 ---- RLE # Test Add Column statement ok ALTER TABLE T_1 ADD COLUMN b INTEGER DEFAULT 2 restart query II SELECT * FROM T_1 ---- 1 2 1 2 1 2 2 2 2 2 3 2 statement ok CHECKPOINT query I SELECT compression FROM pragma_storage_info('T_1') WHERE segment_type ILIKE 'INTEGER' LIMIT 3 ---- RLE Constant