1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

Add sortsupport for gist_btree opclasses, for faster index builds.

Commit 16fa9b2b30 introduced a faster way to build GiST indexes, by
sorting all the data. This commit adds the sortsupport functions needed
to make use of that feature for btree_gist.

Author: Andrey Borodin
Discussion: https://www.postgresql.org/message-id/2F3F7265-0D22-44DB-AD71-8554C743D943@yandex-team.ru
This commit is contained in:
Heikki Linnakangas
2021-04-07 13:22:05 +03:00
parent dd13ad9d39
commit 9f984ba6d2
77 changed files with 1530 additions and 3 deletions

View File

@ -18,7 +18,14 @@ INSERT INTO timetzcmp (r_id,a) SELECT 22,count(*) FROM timetztmp WHERE a <= '07:
INSERT INTO timetzcmp (r_id,a) SELECT 23,count(*) FROM timetztmp WHERE a = '07:46:45 GMT+4';
INSERT INTO timetzcmp (r_id,a) SELECT 24,count(*) FROM timetztmp WHERE a >= '07:46:45 GMT+4';
INSERT INTO timetzcmp (r_id,a) SELECT 25,count(*) FROM timetztmp WHERE a > '07:46:45 GMT+4';
SET client_min_messages = DEBUG1;
CREATE INDEX timetzidx ON timetztmp USING gist ( a );
DEBUG: building index "timetzidx" on table "timetztmp" serially
DEBUG: using sorted GiST build
CREATE INDEX timetzidx_b ON timetztmp USING gist ( a ) WITH (buffering=on);
DEBUG: building index "timetzidx_b" on table "timetztmp" serially
DROP INDEX timetzidx_b;
RESET client_min_messages;
SET enable_seqscan=off;
UPDATE timetzcmp SET b=c FROM ( SELECT count(*) AS c FROM timetztmp WHERE a < '07:46:45 GMT+3'::timetz ) q WHERE r_id=1 ;
UPDATE timetzcmp SET b=c FROM ( SELECT count(*) AS c FROM timetztmp WHERE a <= '07:46:45 GMT+3'::timetz ) q WHERE r_id=2 ;