
PgColumnar: the Column extension for PostgreSQL
pgColumnar is a column-oriented storage extension for PostgreSQL, implemented as a table access method. A table created USING pgcolumnar stores its data by column, with per-column compression, chunk-group skipping, and a vectorized aggregate path. It targets analytic workloads: large scans, aggregates, and column projections over append-mostly data. It also reads external Parquet and Apache Iceberg tables, from a local path or from object storage.
More Information
PgColumnar is currently 1.0alpha2 and ready to be tested by the wider world.
- License: MIT to encourage contribution (AI welcome)
- Docs: https://commandprompt.github.io/pgcolumnar/
- Code: https://github.com/commandprompt/pgcolumnar
Major Features
- Column-oriented storage in the relation's main fork, so the buffer manager, WAL, and page checksums apply.
- Type-aware value encodings, applied to each chunk before compression.
- Column projection: a scan decodes only the columns the query references.
- Vectorized aggregate.
- Parallel scan across a table's row groups.
- Read stream prefetch of block reads on PostgreSQL 17 and later (pgcolumnar.enable_read_stream)
- Index-only scans
- Parallel bulk ingest
- Reading external Parquet in place
- Object storage
- Apache Iceberg
- REST catalog
- Read about more features here.