|
| 1 | +/* contrib/btree_gist/btree_gist--1.3--1.4.sql */ |
| 2 | + |
| 3 | +-- complain if script is sourced in psql, rather than via ALTER EXTENSION |
| 4 | +\echo Use "ALTER EXTENSION btree_gist UPDATE TO '1.4'" to load this file. \quit |
| 5 | + |
| 6 | +-- Add support for indexing macaddr8 columns |
| 7 | + |
| 8 | +-- define the GiST support methods |
| 9 | +CREATE FUNCTION gbt_macad8_consistent(internal,macaddr8,int2,oid,internal) |
| 10 | +RETURNS bool |
| 11 | +AS 'MODULE_PATHNAME' |
| 12 | +LANGUAGE C IMMUTABLE STRICT; |
| 13 | + |
| 14 | +CREATE FUNCTION gbt_macad8_compress(internal) |
| 15 | +RETURNS internal |
| 16 | +AS 'MODULE_PATHNAME' |
| 17 | +LANGUAGE C IMMUTABLE STRICT; |
| 18 | + |
| 19 | +CREATE FUNCTION gbt_macad8_fetch(internal) |
| 20 | +RETURNS internal |
| 21 | +AS 'MODULE_PATHNAME' |
| 22 | +LANGUAGE C IMMUTABLE STRICT; |
| 23 | + |
| 24 | +CREATE FUNCTION gbt_macad8_penalty(internal,internal,internal) |
| 25 | +RETURNS internal |
| 26 | +AS 'MODULE_PATHNAME' |
| 27 | +LANGUAGE C IMMUTABLE STRICT; |
| 28 | + |
| 29 | +CREATE FUNCTION gbt_macad8_picksplit(internal, internal) |
| 30 | +RETURNS internal |
| 31 | +AS 'MODULE_PATHNAME' |
| 32 | +LANGUAGE C IMMUTABLE STRICT; |
| 33 | + |
| 34 | +CREATE FUNCTION gbt_macad8_union(internal, internal) |
| 35 | +RETURNS gbtreekey16 |
| 36 | +AS 'MODULE_PATHNAME' |
| 37 | +LANGUAGE C IMMUTABLE STRICT; |
| 38 | + |
| 39 | +CREATE FUNCTION gbt_macad8_same(gbtreekey16, gbtreekey16, internal) |
| 40 | +RETURNS internal |
| 41 | +AS 'MODULE_PATHNAME' |
| 42 | +LANGUAGE C IMMUTABLE STRICT; |
| 43 | + |
| 44 | +-- Create the operator class |
| 45 | +CREATE OPERATOR CLASS gist_macaddr8_ops |
| 46 | +DEFAULT FOR TYPE macaddr8 USING gist |
| 47 | +AS |
| 48 | + OPERATOR 1 < , |
| 49 | + OPERATOR 2 <= , |
| 50 | + OPERATOR 3 = , |
| 51 | + OPERATOR 4 >= , |
| 52 | + OPERATOR 5 > , |
| 53 | + FUNCTION 1 gbt_macad8_consistent (internal, macaddr8, int2, oid, internal), |
| 54 | + FUNCTION 2 gbt_macad8_union (internal, internal), |
| 55 | + FUNCTION 3 gbt_macad8_compress (internal), |
| 56 | + FUNCTION 4 gbt_decompress (internal), |
| 57 | + FUNCTION 5 gbt_macad8_penalty (internal, internal, internal), |
| 58 | + FUNCTION 6 gbt_macad8_picksplit (internal, internal), |
| 59 | + FUNCTION 7 gbt_macad8_same (gbtreekey16, gbtreekey16, internal), |
| 60 | + STORAGE gbtreekey16; |
| 61 | + |
| 62 | +ALTER OPERATOR FAMILY gist_macaddr8_ops USING gist ADD |
| 63 | + OPERATOR 6 <> (macaddr8, macaddr8) , |
| 64 | + FUNCTION 9 (macaddr8, macaddr8) gbt_macad8_fetch (internal); |
0 commit comments