Re: WIP: BRIN multi-range indexes
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Alexander Korotkov <a.korotkov@postgrespro.ru>
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-13T09:51:53Z
Lists: pgsql-hackers
On 3/13/19 9:15 AM, Alexander Korotkov wrote: > 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). > Possibly. The other annoyance of course is that to support the current consistent method we'll have to keep all the code I guess :-( regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
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