1/* contrib/btree_gist/btree_gist--1.4--1.5.sql */ 2 3-- complain if script is sourced in psql, rather than via CREATE EXTENSION 4\echo Use "ALTER EXTENSION btree_gist UPDATE TO '1.5'" to load this file. \quit 5 6-- 7-- 8-- 9-- enum ops 10-- 11-- 12-- 13-- define the GiST support methods 14CREATE FUNCTION gbt_enum_consistent(internal,anyenum,int2,oid,internal) 15RETURNS bool 16AS 'MODULE_PATHNAME' 17LANGUAGE C IMMUTABLE STRICT; 18 19CREATE FUNCTION gbt_enum_compress(internal) 20RETURNS internal 21AS 'MODULE_PATHNAME' 22LANGUAGE C IMMUTABLE STRICT; 23 24CREATE FUNCTION gbt_enum_fetch(internal) 25RETURNS internal 26AS 'MODULE_PATHNAME' 27LANGUAGE C IMMUTABLE STRICT; 28 29CREATE FUNCTION gbt_enum_penalty(internal,internal,internal) 30RETURNS internal 31AS 'MODULE_PATHNAME' 32LANGUAGE C IMMUTABLE STRICT; 33 34CREATE FUNCTION gbt_enum_picksplit(internal, internal) 35RETURNS internal 36AS 'MODULE_PATHNAME' 37LANGUAGE C IMMUTABLE STRICT; 38 39CREATE FUNCTION gbt_enum_union(internal, internal) 40RETURNS gbtreekey8 41AS 'MODULE_PATHNAME' 42LANGUAGE C IMMUTABLE STRICT; 43 44CREATE FUNCTION gbt_enum_same(gbtreekey8, gbtreekey8, internal) 45RETURNS internal 46AS 'MODULE_PATHNAME' 47LANGUAGE C IMMUTABLE STRICT; 48 49-- Create the operator class 50CREATE OPERATOR CLASS gist_enum_ops 51DEFAULT FOR TYPE anyenum USING gist 52AS 53 OPERATOR 1 < , 54 OPERATOR 2 <= , 55 OPERATOR 3 = , 56 OPERATOR 4 >= , 57 OPERATOR 5 > , 58 FUNCTION 1 gbt_enum_consistent (internal, anyenum, int2, oid, internal), 59 FUNCTION 2 gbt_enum_union (internal, internal), 60 FUNCTION 3 gbt_enum_compress (internal), 61 FUNCTION 4 gbt_decompress (internal), 62 FUNCTION 5 gbt_enum_penalty (internal, internal, internal), 63 FUNCTION 6 gbt_enum_picksplit (internal, internal), 64 FUNCTION 7 gbt_enum_same (gbtreekey8, gbtreekey8, internal), 65 STORAGE gbtreekey8; 66 67ALTER OPERATOR FAMILY gist_enum_ops USING gist ADD 68 OPERATOR 6 <> (anyenum, anyenum) , 69 FUNCTION 9 (anyenum, anyenum) gbt_enum_fetch (internal) ; 70