Re: WIP: BRIN multi-range indexes
Alexander Korotkov <a.korotkov@postgrespro.ru>
From: Alexander Korotkov <a.korotkov@postgrespro.ru>
To: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Cc: Nikita Glukhov <n.gluhov@postgrespro.ru>, Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>, Mark Dilger <hornschnorter@gmail.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2019-03-13T08:15:35Z
Lists: pgsql-hackers
On Tue, Mar 12, 2019 at 8:15 PM Tomas Vondra <tomas.vondra@2ndquadrant.com> wrote: > > 0001. Pass all keys to BRIN consistent function at once. > > > > I think that changing the signature of consistent function is bad, because then > > the authors of existing BRIN opclasses will need to maintain two variants of > > the function for different version of PosgreSQL. Moreover, we can easily > > distinguish two variants by the number of parameters. So I returned back a > > call to old 3-argument variant of consistent() in bringetbitmap(). Also I > > fixed brinvalidate() adding support for new 4-argument variant, and fixed > > catalog entries for brin_minmax_consistent() and brin_inclusion_consistent() > > which remained 3-argument. And also I removed unneeded indentation shift in > > these two functions, which makes it difficult to compare changes, by extracting > > subroutines minmax_consistent_key() and inclusion_consistent_key(). > > > > Hmmm. I admit I rather dislike functions that change the signature based > on the number of arguments, for some reason. But maybe it's better than > changing the consistent function. Not sure. I also kind of dislike signature change based on the number of arguments. But it's still good to let extensions use old interface if needed. What do you think about invention new consistent method, so that extension can implement one of them? We did similar thing for GIN (bistate consistent vs tristate consistent). ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres 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