#​518 — August 9, 2023

Web Version

Together with  Polyscale logo

Postgres Weekly

A Language Server for Postgres — A language server adds features like auto-complete, 'go to definition', or documentation on hover to IDEs like VS Code. Now, courtesy of Supabase, Postgres has its own in the shape of postgres_lsp. It’s early days and not considered production ready yet, but Supabase wants to involve the community in its development. Folks on Hacker News were certainly excited about the potential.

Supabase

Introducing PGMQ: Simple Message Queues Built on Postgres — Imagine AWS SQS but running within your Postgres database. PGMQ is written in Rust and provides ‘exactly once’ delivery semantics within a visibility timeout.

Adam Hendel (Tembo)

Faster Postgres. Everywhere. — PolyScale.ai is a fully autonomous distributed database cache at the edge. Supporting both TCP and HTTP, accelerate reads and lower global latency across any platform. Deploy in minutes, without writing code.

PolyScale.ai sponsor

Hydra 1.0 Beta: Column Oriented Postgres — The pitch is simple: “You can query billions of rows instantly on Postgres without code changes. Parallelized analytics in minutes, not weeks.” The 1.0 beta introduces columnar-optimized vacuuming, vector storage and similarity search (naturally), and a new column cache for more optimized JOINs. It’s built atop Citus Columnar which itself is a modernized version of the cstore_fdw extension. GitHub repo.

Joseph Sciarrino / Hydra

If the whole columnar tables versus row oriented tables thing seems confusing, Hydra has a quick write up on the key differences here.

With pgvector, Fewer Dimensions are Better — It’s currently all the rage to store LLM embeddings in Postgres using pgvector (other vector use cases do exist, honest) but if you have millions of 1536 dimensional vectors from OpenAI, say, that adds up to a lot of bytes. Are there benefits to using embeddings with far fewer dimensions?

Ricahrdson, Rice and Romanov (Supabase)

Why Does My pg_wal Keep Growing? — The pg_wal directory stores your Postgres server’s write ahead logs (WAL) and if it’s growing relentlessly, you could have a config setting or two to blame..

Laurenz Albe

The Differences Between JSON and JSONB — One underlying data type (JSON), but two types in Postgres (JSON and JSONB). Francesco explains why.

Francesco Tisiot

Reproducing XKCD's 'Bad Map Projection' with PostGIS — Popular webcomic XKCD had a strip showing off a longitude=abs(longitude) map (so 45ºW and 45ºE, say, would be in the same place). To honor this curious concept, Paul set out to trick PostGIS into rendering the same thing.

Paul Ramsey

The Current State of Major Postgres Upgrades with CloudNativePGCloudNativePG is an open source Kubernetes operator for Postgres from EDB.

Gabriele Bartolini (EDB)

Partitioning as a Query Optimization Strategy?
Ashutosh Bapat

Code and Tools

Pigsty 2.2: A 'Batteries Included' Postgres Distribution — A curiously named Postgres distribution that calls itself ‘free RDS’. Essentially there are a lot of extensions pre-bundled, observability, self-healing HA, and now a large effort has been put into improving Pigsty’s dashboard which you can see on this demo site. There’s also an official site if you want to learn more.

Feng Ruohang

PGHist: Store a History of Table Changes — An interesting and rather epic set of PL/pgSQL procedures (no, it’s not an extension) that dynamically creates triggers within the specified schema in order to audit table changes. GitHub repo.

PGSuite

Effortlessly Migrate Your Heroku Postgres Database

Crunchy Bridge sponsor

RisingWave: Distributed SQL Stream Processing with a 'Postgres-like' Experience — RisingWave is one of those new databases that’s not Postgres but opens itself to the Postgres ecosystem by way of wire protocol compatibility. You can learn more in this introductory post.

RisingWave Labs

SQLedge: Replicate Postgres to SQLite on the Edge? — An alpha/experimental Go-powered Postgres proxy that uses a local SQLite database for reads and forwards writes to an upstream Postgres server.

Zak Knill

  • PLV8 3.2 – JavaScript language add-on for Postgres. v3.2 improves Postgres 16 support but drops Windows support (for now, at least).

  • pgwire 0.16 – Postgres wire protocol in a Rust library.

  • Patroni 3.1 – Template for Postgres High Availability.

  • Orafce 4.5 – Oracle compatibility functions for Postgres.