Re: Index-only scans vs. partially-retrievable indexes

x4mmm@yandex-team.ru

From: Andrey Borodin <x4mmm@yandex-team.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2022-01-03T16:36:53Z
Lists: pgsql-hackers

> Andrey Borodin <x4mmm@yandex-team.ru> writes:
> 
>> I've tried to toy with the patch and remembered one related caveat.
>> If we have index for both returnable and nonreturnable attributes, IOS will not be choosen:
> 
>> postgres=# create index on t using gist(a gist_trgm_ops) include (a);
>> postgres=# explain select * from t where a like 'z';
>> QUERY PLAN
>> ---------------------------------------------------------------------
>> Index Scan using t_a_a1_idx on t (cost=0.12..8.14 rows=1 width=32)
>> Index Cond: (a ~~ 'z'::text)
>> (2 rows)
> 
> This case is improved by 0002, no?
> 

Uhmm, yes, you are right. Works as expected with the second patch.
I tried first patch against this before writing. But did not expect much from a revert...

Thanks you!

Best regards, Andrey Borodin.



Commits

  1. Handle mixed returnable and non-returnable columns better in IOS.

  2. Fix index-only scan plans, take 2.