Re: WIP: BRIN multi-range indexes
Tomas Vondra <tomas.vondra@enterprisedb.com>
From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: John Naylor <john.naylor@enterprisedb.com>
Cc: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-01-13T23:11:40Z
Lists: pgsql-hackers
Attachments
Here is a slightly improved version of the patch series. Firstly, I realized the PG_DETOAST_DATUM() in brin_bloom_summary_out is actually needed - the value can't be toasted, but it might be stored with just 1B header. So we need to expand it to 4B, because the struct has int32 as the first field. I've also removed the sort mode from bloom filters. I've thought about this for a long time, and ultimately concluded that it's not worth the extra complexity. It might work for ranges with very few distinct values, but that also means the bloom filter will be mostly 0 and thus easy to compress (and with very low false-positive rate). There probably are cases where it might be a bit better/smaller, but I had a hard time constructing such cases. So I ditched it for now. I've kept the "flags" which is unused and reserved for future, to allow such improvements. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
BRIN minmax-multi indexes
- ab596105b55f 14.0 landed
-
BRIN bloom indexes
- 77b88cd1bb90 14.0 landed
-
Support the old signature of BRIN consistent function
- a681e3c107aa 14.0 landed
-
Remove unnecessary pg_amproc BRIN minmax entries
- a68dfa27d42f 14.0 landed
-
Optimize allocations in bringetbitmap
- 8e4b332e88b8 14.0 landed
-
Move IS [NOT] NULL handling from BRIN support functions
- 72ccf55cb99c 14.0 landed
-
Pass all scan keys to BRIN consistent function at once
- a1c649d889bd 14.0 landed
-
Properly detoast data in brin_form_tuple
- d2d3a4bd33d2 9.5.24 landed
- bae31e75f777 9.6.20 landed
- 0b96fc977c5b 10.15 landed
- 895d0f0e8218 11.10 landed
- 8149e9f9a0d6 12.5 landed
- 6a7b55f3716f 13.1 landed
- 7577dd84807a 14.0 landed