-- complain if script is sourced in psql, rather than via CREATE EXTENSION \echo Use "CREATE EXTENSION smlar" to load this file. \quit CREATE OR REPLACE FUNCTION smlar(anyarray, anyarray) RETURNS float4 AS 'MODULE_PATHNAME', 'arraysml' LANGUAGE C STRICT IMMUTABLE; CREATE OR REPLACE FUNCTION smlar(anyarray, anyarray, bool) RETURNS float4 AS 'MODULE_PATHNAME', 'arraysmlw' LANGUAGE C STRICT IMMUTABLE; CREATE OR REPLACE FUNCTION smlar(anyarray, anyarray, text) RETURNS float4 AS 'MODULE_PATHNAME', 'arraysml_func' LANGUAGE C STRICT IMMUTABLE; CREATE OR REPLACE FUNCTION set_smlar_limit(float4) RETURNS float4 AS 'MODULE_PATHNAME' LANGUAGE C STRICT VOLATILE; CREATE OR REPLACE FUNCTION show_smlar_limit() RETURNS float4 AS 'MODULE_PATHNAME' LANGUAGE C STRICT STABLE; CREATE OR REPLACE FUNCTION smlar_op(anyarray,anyarray) RETURNS bool AS 'MODULE_PATHNAME', 'arraysml_op' LANGUAGE C STRICT STABLE; CREATE OPERATOR % ( LEFTARG = anyarray, RIGHTARG = anyarray, PROCEDURE = smlar_op, COMMUTATOR = '%', RESTRICT = contsel, JOIN = contjoinsel ); -- CREATE OR REPLACE FUNCTION tsvector2textarray(tsvector) RETURNS _text AS 'MODULE_PATHNAME', 'tsvector2textarray' LANGUAGE C STRICT IMMUTABLE; CREATE OR REPLACE FUNCTION array_unique(anyarray) RETURNS anyarray AS 'MODULE_PATHNAME', 'array_unique' LANGUAGE C STRICT IMMUTABLE; CREATE OR REPLACE FUNCTION inarray(anyarray, anyelement) RETURNS float4 AS 'MODULE_PATHNAME', 'inarray' LANGUAGE C STRICT IMMUTABLE; CREATE OR REPLACE FUNCTION inarray(anyarray, anyelement, float4, float4) RETURNS float4 AS 'MODULE_PATHNAME', 'inarray' LANGUAGE C STRICT IMMUTABLE; --gist key CREATE OR REPLACE FUNCTION gsmlsign_in(cstring) RETURNS gsmlsign AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; CREATE OR REPLACE FUNCTION gsmlsign_out(gsmlsign) RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; CREATE TYPE gsmlsign ( INTERNALLENGTH = -1, INPUT = gsmlsign_in, OUTPUT = gsmlsign_out ); -- support functions for gist CREATE OR REPLACE FUNCTION gsmlsign_consistent(gsmlsign,internal,int4) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; CREATE OR REPLACE FUNCTION gsmlsign_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; CREATE OR REPLACE FUNCTION gsmlsign_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; CREATE OR REPLACE FUNCTION gsmlsign_penalty(internal,internal,internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C STRICT IMMUTABLE; CREATE OR REPLACE FUNCTION gsmlsign_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; CREATE OR REPLACE FUNCTION gsmlsign_union(bytea, internal) RETURNS _int4 AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; CREATE OR REPLACE FUNCTION gsmlsign_same(gsmlsign, gsmlsign, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; --create the operator classes for gist CREATE OPERATOR CLASS _int2_sml_ops FOR TYPE _int2 USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _int4_sml_ops FOR TYPE _int4 USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _int8_sml_ops FOR TYPE _int8 USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _float4_sml_ops FOR TYPE _float4 USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _float8_sml_ops FOR TYPE _float8 USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; -- money type hasn't hash support --CREATE OPERATOR CLASS _money_sml_ops --FOR TYPE _money USING gist --AS -- OPERATOR 1 && (anyarray, anyarray), -- OPERATOR 2 % (anyarray, anyarray), -- FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), -- FUNCTION 2 gsmlsign_union (bytea, internal), -- FUNCTION 3 gsmlsign_compress (internal), -- FUNCTION 4 gsmlsign_decompress (internal), -- FUNCTION 5 gsmlsign_penalty (internal, internal, internal), -- FUNCTION 6 gsmlsign_picksplit (internal, internal), -- FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), --STORAGE gsmlsign; CREATE OPERATOR CLASS _oid_sml_ops FOR TYPE _oid USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _timestamp_sml_ops FOR TYPE _timestamp USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _timestamptz_sml_ops FOR TYPE _timestamptz USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _time_sml_ops FOR TYPE _time USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _timetz_sml_ops FOR TYPE _timetz USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _date_sml_ops FOR TYPE _date USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _interval_sml_ops FOR TYPE _interval USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _macaddr_sml_ops FOR TYPE _macaddr USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _inet_sml_ops FOR TYPE _inet USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _cidr_sml_ops FOR TYPE _cidr USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _text_sml_ops FOR TYPE _text USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _varchar_sml_ops FOR TYPE _varchar USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _char_sml_ops FOR TYPE _char USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; CREATE OPERATOR CLASS _bytea_sml_ops FOR TYPE _bytea USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; --no hash --CREATE OPERATOR CLASS _bit_sml_ops --FOR TYPE _bit USING gist --AS -- OPERATOR 1 && (anyarray, anyarray), -- OPERATOR 2 % (anyarray, anyarray), -- FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), -- FUNCTION 2 gsmlsign_union (bytea, internal), -- FUNCTION 3 gsmlsign_compress (internal), -- FUNCTION 4 gsmlsign_decompress (internal), -- FUNCTION 5 gsmlsign_penalty (internal, internal, internal), -- FUNCTION 6 gsmlsign_picksplit (internal, internal), -- FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), --STORAGE gsmlsign; --CREATE OPERATOR CLASS _varbit_sml_ops --FOR TYPE _varbit USING gist --AS -- OPERATOR 1 && (anyarray, anyarray), -- OPERATOR 2 % (anyarray, anyarray), -- FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), -- FUNCTION 2 gsmlsign_union (bytea, internal), -- FUNCTION 3 gsmlsign_compress (internal), -- FUNCTION 4 gsmlsign_decompress (internal), -- FUNCTION 5 gsmlsign_penalty (internal, internal, internal), -- FUNCTION 6 gsmlsign_picksplit (internal, internal), -- FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), --STORAGE gsmlsign; CREATE OPERATOR CLASS _numeric_sml_ops FOR TYPE _numeric USING gist AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4), FUNCTION 2 gsmlsign_union (bytea, internal), FUNCTION 3 gsmlsign_compress (internal), FUNCTION 4 gsmlsign_decompress (internal), FUNCTION 5 gsmlsign_penalty (internal, internal, internal), FUNCTION 6 gsmlsign_picksplit (internal, internal), FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal), STORAGE gsmlsign; --gin support functions CREATE OR REPLACE FUNCTION smlararrayextract(anyarray, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; CREATE OR REPLACE FUNCTION smlarqueryarrayextract(anyarray, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; CREATE OR REPLACE FUNCTION smlararrayconsistent(internal, internal, anyarray) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; --gin opclasses CREATE OPERATOR CLASS _int2_sml_ops FOR TYPE _int2 USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 btint2cmp(int2,int2), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE int2; CREATE OPERATOR CLASS _int4_sml_ops FOR TYPE _int4 USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 btint4cmp(int4,int4), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE int4; CREATE OPERATOR CLASS _int8_sml_ops FOR TYPE _int8 USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 btint8cmp(int8,int8), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE int8; CREATE OPERATOR CLASS _float4_sml_ops FOR TYPE _float4 USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 btfloat4cmp(float4,float4), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE float4; CREATE OPERATOR CLASS _float8_sml_ops FOR TYPE _float8 USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 btfloat8cmp(float8,float8), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE float8; CREATE OPERATOR CLASS _money_sml_ops FOR TYPE _money USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 cash_cmp(money,money), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE money; CREATE OPERATOR CLASS _oid_sml_ops FOR TYPE _oid USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 btoidcmp(oid,oid), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE oid; CREATE OPERATOR CLASS _timestamp_sml_ops FOR TYPE _timestamp USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 timestamp_cmp(timestamp,timestamp), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE timestamp; CREATE OPERATOR CLASS _timestamptz_sml_ops FOR TYPE _timestamptz USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 timestamptz_cmp(timestamptz,timestamptz), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE timestamptz; CREATE OPERATOR CLASS _time_sml_ops FOR TYPE _time USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 time_cmp(time,time), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE time; CREATE OPERATOR CLASS _timetz_sml_ops FOR TYPE _timetz USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 timetz_cmp(timetz,timetz), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE timetz; CREATE OPERATOR CLASS _date_sml_ops FOR TYPE _date USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 date_cmp(date,date), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE date; CREATE OPERATOR CLASS _interval_sml_ops FOR TYPE _interval USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 interval_cmp(interval,interval), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE interval; CREATE OPERATOR CLASS _macaddr_sml_ops FOR TYPE _macaddr USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 macaddr_cmp(macaddr,macaddr), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE macaddr; CREATE OPERATOR CLASS _inet_sml_ops FOR TYPE _inet USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 network_cmp(inet,inet), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE inet; CREATE OPERATOR CLASS _cidr_sml_ops FOR TYPE _cidr USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 network_cmp(inet,inet), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE cidr; CREATE OPERATOR CLASS _text_sml_ops FOR TYPE _text USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 bttextcmp(text,text), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE text; CREATE OPERATOR CLASS _varchar_sml_ops FOR TYPE _varchar USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 bttextcmp(text,text), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE varchar; CREATE OPERATOR CLASS _char_sml_ops FOR TYPE "_char" USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 btcharcmp("char","char"), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE "char"; CREATE OPERATOR CLASS _bytea_sml_ops FOR TYPE _bytea USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 byteacmp(bytea,bytea), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE bytea; CREATE OPERATOR CLASS _bit_sml_ops FOR TYPE _bit USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 bitcmp(bit,bit), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE bit; CREATE OPERATOR CLASS _varbit_sml_ops FOR TYPE _varbit USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 varbitcmp(varbit,varbit), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE varbit; CREATE OPERATOR CLASS _numeric_sml_ops FOR TYPE _numeric USING gin AS OPERATOR 1 && (anyarray, anyarray), OPERATOR 2 % (anyarray, anyarray), FUNCTION 1 numeric_cmp(numeric,numeric), FUNCTION 2 smlararrayextract(anyarray, internal), FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal), FUNCTION 4 smlararrayconsistent(internal, internal, anyarray), STORAGE numeric;