Re: Index INCLUDE vs. Bitmap Index Scan

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Markus Winand <markus(dot)winand(at)winand(dot)at>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Index INCLUDE vs. Bitmap Index Scan
Date: 2019-02-26 23:22:41
Message-ID: 16218.1551223361@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Markus Winand <markus(dot)winand(at)winand(dot)at> writes:
> I think Bitmap Index Scan should take advantage of B-tree INCLUDE columns, which it doesn’t at the moment (tested on master as of yesterday).

Regular index scans don't do what you're imagining either (i.e., check
filter conditions in advance of visiting the heap). There's a roadblock
to implementing such behavior, which is that we might end up applying
filter expressions to dead rows. That could make users unhappy.
For example, given a filter condition like "1.0/c > 0.1", people
would complain if it still got zero-divide failures even after they'd
deleted all rows with c=0 from their table.

Generally speaking, we expect indexable operators not to throw
errors on any input values, which is why this problem isn't serious
for the index conditions proper. But we can't make that assumption
for arbitrary filter conditions.

> (As a side node: I also dislike it how Bitmap Index Scan mixes search conditions and filters in “Index Cond”)

What do you think is being mixed exactly?

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Benjamin Manes 2019-02-26 23:23:57 Re: [Patch][WiP] Tweaked LRU for shared buffers
Previous Message Tomas Vondra 2019-02-26 23:03:50 Re: [Patch][WiP] Tweaked LRU for shared buffers