Re: hashjoins vs. Bloom filters (yet again)

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Oleg Bartunov <obartunov(at)postgrespro(dot)ru>
Cc: Tomas Vondra <tomas(at)vondra(dot)me>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: hashjoins vs. Bloom filters (yet again)
Date: 2026-07-06 19:20:27
Message-ID: CA+Tgmobz8JmGzx5fuxHpc4WkkGr+QbEfEUSnNwH8kLPB-CRAEA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Jun 3, 2026 at 5:21 AM Oleg Bartunov <obartunov(at)postgrespro(dot)ru> wrote:
> For a plain heap scan this may mostly save hash probes. But with zone/chunk-oriented storage, where chunks have dictionaries, min/max metadata, Bloom summaries, or tenant ranges, the same runtime filter can skip whole chunks. That is the part I find most interesting: turning join-derived knowledge into scan-level pruning, against the normal direction of data flow.
>
> Bloom is just one carrier for that knowledge. The real feature is a pluggable runtime-filter mechanism that heap, CustomScan, FDW, columnar/table AMs, partitioned storage, or chunk/cold storage can consume at the level they understand.

+1. I think it's fine if the optimizer and executor decide to do
things strictly with Bloom filters, if that turns out to be a good
technique. But if we're talking about pushing things down into table
AM we should try to be more general.

Or at least, that's my current thinking.

--
Robert Haas
EDB: http://www.enterprisedb.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2026-07-06 19:32:00 Re: hashjoins vs. Bloom filters (yet again)
Previous Message Tom Lane 2026-07-06 18:55:08 Re: [PATCH] Fix for bug #19474: LIKE fails to match literal backslashes with nondeterministic collations