From: | Teodor Sigaev <teodor(at)sigaev(dot)ru> |
---|---|
To: | Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | btree_gin and ranges |
Date: | 2014-10-22 10:55:06 |
Message-ID: | 54478D0A.9050309@sigaev.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Suggested patch adds GIN support contains operator for ranges over scalar column.
It allows more effective GIN scan. Currently, queries like
SELECT * FROM test_int4 WHERE i <= 1 and i >= 1
will be excuted by GIN with two scans: one is from mines infinity to 1 and
another is from -1 to plus infinity. That's because GIN is "generalized" and it
doesn't know a semantics of operation.
With patch it's possible to rewrite query with ranges
SELECT * FROM test_int4 WHERE i <@ '[-1, 1]'::int4range
and GIN index will support this query with single scan from -1 to 1.
Patch provides index support only for existing range types: int4, int8, numeric,
date and timestamp with and without time zone.
--
Teodor Sigaev E-mail: teodor(at)sigaev(dot)ru
WWW: http://www.sigaev.ru/
Attachment | Content-Type | Size |
---|---|---|
btree_gin_range-1.patch.gz | application/x-gzip | 7.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Александр Глухов | 2014-10-22 11:31:15 | ARMv5 |
Previous Message | David Rowley | 2014-10-22 10:37:03 | Re: [PATCH] Simplify EXISTS subqueries containing LIMIT |