mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-18 18:44:06 +08:00
Remove ill-considered (not to mention undocumented) attempt to make
contrib/intarray's GIN opclass override the built-in default. Per bug #3048 and other complaints.
This commit is contained in:
parent
aa33bdd783
commit
2d6cb170d4
@ -2,9 +2,10 @@ This is an implementation of RD-tree data structure using GiST interface
|
|||||||
of PostgreSQL. It has built-in lossy compression.
|
of PostgreSQL. It has built-in lossy compression.
|
||||||
|
|
||||||
Current implementation provides index support for one-dimensional array of
|
Current implementation provides index support for one-dimensional array of
|
||||||
int4's - gist__int_ops, suitable for small and medium size of arrays (used on
|
integers: gist__int_ops, suitable for small and medium size of arrays (used by
|
||||||
default), and gist__intbig_ops for indexing large arrays (we use superimposed
|
default), and gist__intbig_ops for indexing large arrays (we use superimposed
|
||||||
signature with length of 4096 bits to represent sets).
|
signature with length of 4096 bits to represent sets). There is also a
|
||||||
|
non-default gin__int_ops for GIN indexes on integer arrays.
|
||||||
|
|
||||||
All work was done by Teodor Sigaev (teodor@stack.net) and Oleg Bartunov
|
All work was done by Teodor Sigaev (teodor@stack.net) and Oleg Bartunov
|
||||||
(oleg@sai.msu.su). See http://www.sai.msu.su/~megera/postgres/gist
|
(oleg@sai.msu.su). See http://www.sai.msu.su/~megera/postgres/gist
|
||||||
|
@ -458,10 +458,6 @@ AS
|
|||||||
STORAGE intbig_gkey;
|
STORAGE intbig_gkey;
|
||||||
|
|
||||||
--GIN
|
--GIN
|
||||||
--mark built-in gin's _int4_ops as non default
|
|
||||||
update pg_catalog.pg_opclass set opcdefault = 'f'
|
|
||||||
where opcmethod = (select oid from pg_catalog.pg_am where amname='gin') and
|
|
||||||
opcname = '_int4_ops';
|
|
||||||
|
|
||||||
CREATE FUNCTION ginint4_queryextract(internal, internal, int2)
|
CREATE FUNCTION ginint4_queryextract(internal, internal, int2)
|
||||||
RETURNS internal
|
RETURNS internal
|
||||||
@ -474,7 +470,7 @@ AS 'MODULE_PATHNAME'
|
|||||||
LANGUAGE C;
|
LANGUAGE C;
|
||||||
|
|
||||||
CREATE OPERATOR CLASS gin__int_ops
|
CREATE OPERATOR CLASS gin__int_ops
|
||||||
DEFAULT FOR TYPE _int4 USING gin
|
FOR TYPE _int4 USING gin
|
||||||
AS
|
AS
|
||||||
OPERATOR 3 &&,
|
OPERATOR 3 &&,
|
||||||
OPERATOR 6 = (anyarray, anyarray) RECHECK,
|
OPERATOR 6 = (anyarray, anyarray) RECHECK,
|
||||||
|
@ -516,7 +516,7 @@ SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
|
|||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
DROP INDEX text_idx;
|
DROP INDEX text_idx;
|
||||||
CREATE INDEX text_idx on test__int using gin ( a );
|
CREATE INDEX text_idx on test__int using gin ( a gin__int_ops );
|
||||||
SELECT count(*) from test__int WHERE a && '{23,50}';
|
SELECT count(*) from test__int WHERE a && '{23,50}';
|
||||||
count
|
count
|
||||||
-------
|
-------
|
||||||
|
@ -111,7 +111,7 @@ SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}';
|
|||||||
SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
|
SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
|
||||||
|
|
||||||
DROP INDEX text_idx;
|
DROP INDEX text_idx;
|
||||||
CREATE INDEX text_idx on test__int using gin ( a );
|
CREATE INDEX text_idx on test__int using gin ( a gin__int_ops );
|
||||||
|
|
||||||
SELECT count(*) from test__int WHERE a && '{23,50}';
|
SELECT count(*) from test__int WHERE a && '{23,50}';
|
||||||
SELECT count(*) from test__int WHERE a @@ '23|50';
|
SELECT count(*) from test__int WHERE a @@ '23|50';
|
||||||
|
@ -123,8 +123,3 @@ DROP FUNCTION boolop(_int4, query_int);
|
|||||||
DROP FUNCTION querytree(query_int);
|
DROP FUNCTION querytree(query_int);
|
||||||
|
|
||||||
DROP TYPE query_int CASCADE;
|
DROP TYPE query_int CASCADE;
|
||||||
|
|
||||||
--mark built-in gin's _int4_ops as default again
|
|
||||||
update pg_catalog.pg_opclass set opcdefault = 't'
|
|
||||||
where opcmethod = (select oid from pg_catalog.pg_am where amname='gin') and
|
|
||||||
opcname = '_int4_ops';
|
|
||||||
|
Loading…
Reference in New Issue
Block a user