github malisper/pgrust v0.4-beta
pgrust v0.4-beta

pre-release7 hours ago

pgrust v0.4-beta is a beta: it shows what is coming in v0.4 while we finish stabilizing the rest. Read the release post: https://pgrust.com/blog/pgrust-v0-4-beta/

What's new

  • Gravity, a new query engine. Gravity runs every query and every kind of statement (DML with ON CONFLICT and RETURNING, triggers, row locks, cursors, PL/pgSQL and SPI, COPY) with PostgreSQL's semantics, on columnar tables and on the ordinary row store alike. It replaces our previous engine and runs analytical queries as much as 3x faster than ClickHouse. Its JIT compiles each plan to AArch64 or x86-64 machine code, and to WebAssembly in the browser build.
  • pgrcolumnar grows up. MVCC snapshots, transactional writes, a row-store front for small inserts, UPDATE and DELETE through delete vectors, background compaction, WAL logging (crash safety and replication), non-unique B-tree, hash, GiST, SP-GiST and GIN indexes, row locks, and a sorted_by table option.
  • Automatic memory management. One memory budget covers the buffer pool, the columnar caches and running queries. Near the memory limit pgrust cancels the statement holding the most memory instead of letting the OS kill the server.
  • jsonb statistics. ANALYZE collects statistics inside jsonb columns, and the planner uses them for ->, ->>, #>, #>>, ?, ?| and ?&.
  • The condition cache. Filter results on columnar tables are reused across statements over the same immutable data. On by default; SET pgrust.condition_cache = off turns it off.
  • pgrust's own initdb and psql ship in every tarball, so no PostgreSQL install is needed.
  • Extensions. We now support a wide variety of extensions, including pgvector, pg_cron, pg_stat_statements, pg_trgm, hstore, pgcrypto, postgres_fdw and most of contrib.

Install

Each tarball has a .sha256 next to it; MANIFEST.txt lists them all.

Tarball Runs on
pgrust-0.4-beta-linux-x86_64.tar.gz Linux, any x86-64 CPU (glibc 2.34+)
pgrust-0.4-beta-linux-aarch64.tar.gz Linux, any 64-bit Arm CPU (glibc 2.34+)
pgrust-0.4-beta-linux-x86_64-znver3.tar.gz Linux, tuned for AMD Zen 3 and newer
pgrust-0.4-beta-linux-aarch64-neoverse-v2.tar.gz Linux, tuned for Neoverse-V2 (AWS Graviton4, NVIDIA Grace)
pgrust-0.4-beta-macos-arm64.tar.gz macOS 11+, Apple Silicon
pgrust-0.4-beta-macos-x86_64.tar.gz macOS 11+, Intel
pgrust-0.4-beta-macos-universal.tar.gz macOS 11+, both

Docker: docker run -d --name pgrust -e POSTGRES_PASSWORD=secret -p 5432:5432 malisper/pgrust:v0.4-beta (multi-arch; latest still points to v0.3).

The Quickstart in the README has the full steps.

Known limitations

  • The macOS binaries are signed ad hoc, not notarized; download them with curl (see the README) or clear the quarantine flag.

Don't miss a new pgrust release

NewReleases is sending notifications on new releases.