ALTER TABLE ALTER COLUMN SET PARQUET: encoding, compression, and bloom filter options

Sets or removes per-column Parquet encoding, compression, and bloom filter configuration on existing tables. Encoding and compression control how column data is stored in Parquet files, affecting file size and read performance. Bloom filters allow QuestDB to skip row groups that do not contain matching values, significantly speeding up equality and IN queries on large Parquet partitions.

These settings only affect Parquet partitions and are ignored for native partitions.

Syntax

ALTER TABLE tableName ALTER COLUMN columnName
SET PARQUET ( encoding [, compression [( level )] ] [, BLOOM_FILTER] );

Where encoding is default or a supported encoding, and compression is a supported codec with an optional level.

Supported encodings and codecs

See the CREATE TABLE reference for the full list of supported encodings, compression codecs, and their valid column types.

Examples

Use default for the encoding when specifying compression only.

Set encoding only
ALTER TABLE trades ALTER COLUMN price SET PARQUET(rle_dictionary);
Set compression only (with optional level)
ALTER TABLE trades ALTER COLUMN price SET PARQUET(default, zstd(3));
Set both encoding and compression
ALTER TABLE trades ALTER COLUMN price SET PARQUET(rle_dictionary, zstd(3));

Reset per-column overrides back to the server defaults:

Reset to defaults
ALTER TABLE trades ALTER COLUMN price SET PARQUET(default);

Bloom filter

The optional BLOOM_FILTER keyword can be combined with encoding and compression, and always appears as the last argument.

Enable bloom filter with default encoding
ALTER TABLE trades ALTER COLUMN symbol SET PARQUET(default, BLOOM_FILTER);
Enable bloom filter with encoding and compression
ALTER TABLE trades ALTER COLUMN symbol SET PARQUET(rle_dictionary, zstd(3), BLOOM_FILTER);

To remove the bloom filter from a column, re-issue SET PARQUET without the BLOOM_FILTER keyword:

Clear bloom filter, keep encoding
ALTER TABLE trades ALTER COLUMN symbol SET PARQUET(rle_dictionary);

The bloom filter false positive probability (FPP) is a global setting and cannot be configured per column. See the Configuration reference for details.