Re: WIP: BRIN multi-range indexes
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>
Cc: Mark Dilger <hornschnorter@gmail.com>,
Alvaro Herrera <alvherre@alvh.no-ip.org>, pgsql-hackers@postgreSQL.org
Date: 2018-03-02T17:09:50Z
Lists: pgsql-hackers
On 03/02/2018 05:08 AM, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: >> On 2018-02-25 01:30:47 +0100, Tomas Vondra wrote: >>> Note: Currently, this only works with float8-based data types. >>> Supporting additional data types is not a big issue, but will >>> require extending the opclass with "subtract" operator (used to >>> compute distance between values when merging ranges). > >> Based on Tom's past stances I'm a bit doubtful he'd be happy with such a >> restriction. Note that something similar-ish also has come up in >> 0a459cec96. > That restriction was lifted quite a long time ago, so now both index types support pretty much the same data types as the original BRIN (with the reltime/abstime exception, discussed in this thread earlier). >> I kinda wonder if there's any way to not have two similar but not >> equal types of logic here? > > Hm. I wonder what the patch intends to do with subtraction overflow, > or infinities, or NaNs. Just as with the RANGE patch, it does not > seem to me that failure is really an acceptable option. Indexes are > supposed to be able to index whatever the column datatype can store. > I admit that's something I haven't thought about very much. I'll look into that, of course, but the indexes are only using the deltas to pick which ranges to merge, so I think in the worst case it may results in sub-optimal index. But let me check what the RANGE patch did. 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