8000 rum/rum--1.2.sql at master · hanskorg/rum · GitHub
[go: up one dir, main page]

Skip to content

Latest commit

 

History

History
1707 lines (1386 loc) · 51.5 KB

rum--1.2.sql

File metadata and controls

1707 lines (1386 loc) · 51.5 KB
CREATE FUNCTION rumhandler(internal)
RETURNS index_am_handler
AS 'MODULE_PATHNAME'
LANGUAGE C;
/*
* RUM access method
*/
CREATE ACCESS METHOD rum TYPE INDEX HANDLER rumhandler;
/*
* RUM built-in types, operators and functions
*/
-- Type used in distance calculations with normalization argument
CREATE TYPE rum_distance_query AS (query tsquery, method int);
CREATE FUNCTION tsquery_to_distance_query(tsquery)
RETURNS rum_distance_query
AS 'MODULE_PATHNAME', 'tsquery_to_distance_query'
LANGUAGE C IMMUTABLE STRICT;
CREATE CAST (tsquery AS rum_distance_query)
WITH FUNCTION tsquery_to_distance_query(tsquery) AS IMPLICIT;
CREATE FUNCTION rum_ts_distance(tsvector,tsquery)
RETURNS float4
AS 'MODULE_PATHNAME', 'rum_ts_distance_tt'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION rum_ts_distance(tsvector,tsquery,int)
RETURNS float4
AS 'MODULE_PATHNAME', 'rum_ts_distance_ttf'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION rum_ts_distance(tsvector,rum_distance_query)
RETURNS float4
AS 'MODULE_PATHNAME', 'rum_ts_distance_td'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=> (
LEFTARG = tsvector,
RIGHTARG = tsquery,
PROCEDURE = rum_ts_distance
);
CREATE OPERATOR <=> (
LEFTARG = tsvector,
RIGHTARG = rum_distance_query,
PROCEDURE = rum_ts_distance
);
CREATE FUNCTION rum_timestamp_distance(timestamp, timestamp)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=> (
PROCEDURE = rum_timestamp_distance,
LEFTARG = timestamp,
RIGHTARG = timestamp,
COMMUTATOR = <=>
);
CREATE FUNCTION rum_timestamp_left_distance(timestamp, timestamp)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=| (
PROCEDURE = rum_timestamp_left_distance,
LEFTARG = timestamp,
RIGHTARG = timestamp,
COMMUTATOR = |=>
);
CREATE FUNCTION rum_timestamp_right_distance(timestamp, timestamp)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR |=> (
PROCEDURE = rum_timestamp_right_distance,
LEFTARG = timestamp,
RIGHTARG = timestamp,
COMMUTATOR = <=|
);
/*
* rum_tsvector_ops operator class
*/
CREATE FUNCTION rum_extract_tsvector(tsvector,internal,internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION rum_extract_tsquery(tsquery,internal,smallint,internal,internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION rum_tsvector_config(internal)
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION rum_tsquery_consistent(internal, smallint, tsvector, integer, internal, internal, internal, internal)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION rum_tsquery_distance(internal,smallint,tsvector,int,internal,internal,internal,internal,internal)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
-- To prevent calling from SQL
CREATE FUNCTION rum_ts_join_pos(internal, internal)
RETURNS bytea
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR CLASS rum_tsvector_ops
DEFAULT FOR TYPE tsvector USING rum
AS
OPERATOR 1 @@ (tsvector, tsquery),
OPERATOR 2 <=> (tsvector, tsquery) FOR ORDER BY pg_catalog.float_ops,
FUNCTION 1 gin_cmp_tslexeme(text, text),
FUNCTION 2 rum_extract_tsvector(tsvector,internal,internal,internal,internal),
FUNCTION 3 rum_extract_tsquery(tsquery,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 rum_tsquery_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 5 gin_cmp_prefix(text,text,smallint,internal),
FUNCTION 6 rum_tsvector_config(internal),
FUNCTION 7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 8 rum_tsquery_distance(internal,smallint,tsvector,int,internal,internal,internal,internal,internal),
FUNCTION 10 rum_ts_join_pos(internal, internal),
STORAGE text;
/*
* rum_tsvector_hash_ops operator class.
*
* Stores hash of entries as keys in index.
*/
CREATE FUNCTION rum_extract_tsvector_hash(tsvector,internal,internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION rum_extract_tsquery_hash(tsquery,internal,smallint,internal,internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR CLASS rum_tsvector_hash_ops
FOR TYPE tsvector USING rum
AS
OPERATOR 1 @@ (tsvector, tsquery),
OPERATOR 2 <=> (tsvector, tsquery) FOR ORDER BY pg_catalog.float_ops,
FUNCTION 1 btint4cmp(integer, integer),
FUNCTION 2 rum_extract_tsvector_hash(tsvector,internal,internal,internal,internal),
FUNCTION 3 rum_extract_tsquery_hash(tsquery,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 rum_tsquery_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 6 rum_tsvector_config(internal),
FUNCTION 7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 8 rum_tsquery_distance(internal,smallint,tsvector,int,internal,internal,internal,internal,internal),
FUNCTION 10 rum_ts_join_pos(internal, internal),
STORAGE integer;
/*
* rum_timestamp_ops operator class
*/
-- timestamp operator class
CREATE FUNCTION rum_timestamp_extract_value(timestamp,internal,internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_timestamp_compare_prefix(timestamp,timestamp,smallint,internal)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_timestamp_config(internal)
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION rum_timestamp_extract_query(timestamp,internal,smallint,internal,internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_timestamp_consistent(internal,smallint,timestamp,int,internal,internal,internal,internal)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_timestamp_outer_distance(timestamp, timestamp, smallint)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE OPERATOR CLASS rum_timestamp_ops
DEFAULT FOR TYPE timestamp USING rum
AS
OPERATOR 1 <,
OPERATOR 2 <=,
OPERATOR 3 =,
OPERATOR 4 >=,
OPERATOR 5 >,
--support
FUNCTION 1 timestamp_cmp(timestamp,timestamp),
FUNCTION 2 rum_timestamp_extract_value(timestamp,internal,internal,internal,internal),
FUNCTION 3 rum_timestamp_extract_query(timestamp,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 rum_timestamp_consistent(internal,smallint,timestamp,int,internal,internal,internal,internal),
FUNCTION 5 rum_timestamp_compare_prefix(timestamp,timestamp,smallint,internal),
FUNCTION 6 rum_timestamp_config(internal),
-- support to timestamp distance in rum_tsvector_timestamp_ops
FUNCTION 9 rum_timestamp_outer_distance(timestamp, timestamp, smallint),
OPERATOR 20 <=> (timestamp,timestamp) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 21 <=| (timestamp,timestamp) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 22 |=> (timestamp,timestamp) FOR ORDER BY pg_catalog.float_ops,
STORAGE timestamp;
/*
* rum_tsvector_timestamp_ops operator class.
*
* Stores timestamp with tsvector.
*/
CREATE FUNCTION rum_tsquery_timestamp_consistent(internal, smallint, tsvector, integer, internal, internal, internal, internal)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
/*
* !!!deprecated, use rum_tsvector_addon_ops!!!
*/
CREATE OPERATOR CLASS rum_tsvector_timestamp_ops
FOR TYPE tsvector USING rum
AS
OPERATOR 1 @@ (tsvector, tsquery),
--support function
FUNCTION 1 gin_cmp_tslexeme(text, text),
FUNCTION 2 rum_extract_tsvector(tsvector,internal,internal,internal,internal),
FUNCTION 3 rum_extract_tsquery(tsquery,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 rum_tsquery_timestamp_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 5 gin_cmp_prefix(text,text,smallint,internal),
FUNCTION 7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
STORAGE text;
/*
* rum_tsvector_hash_timestamp_ops operator class
* !!!deprecated, use rum_tsvector_hash_addon_ops!!!
*/
CREATE OPERATOR CLASS rum_tsvector_hash_timestamp_ops
FOR TYPE tsvector USING rum
AS
OPERATOR 1 @@ (tsvector, tsquery),
--support function
FUNCTION 1 btint4cmp(integer, integer),
FUNCTION 2 rum_extract_tsvector_hash(tsvector,internal,internal,internal,internal),
FUNCTION 3 rum_extract_tsquery_hash(tsquery,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 rum_tsquery_timestamp_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
STORAGE integer;
/*
* rum_timestamptz_ops operator class
*/
CREATE FUNCTION rum_timestamptz_distance(timestamptz, timestamptz)
RETURNS float8
AS 'MODULE_PATHNAME', 'rum_timestamp_distance'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=> (
PROCEDURE = rum_timestamptz_distance,
LEFTARG = timestamptz,
RIGHTARG = timestamptz,
COMMUTATOR = <=>
);
CREATE FUNCTION rum_timestamptz_left_distance(timestamptz, timestamptz)
RETURNS float8
AS 'MODULE_PATHNAME', 'rum_timestamp_left_distance'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=| (
PROCEDURE = rum_timestamptz_left_distance,
LEFTARG = timestamptz,
RIGHTARG = timestamptz,
COMMUTATOR = |=>
);
CREATE FUNCTION rum_timestamptz_right_distance(timestamptz, timestamptz)
RETURNS float8
AS 'MODULE_PATHNAME', 'rum_timestamp_right_distance'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR |=> (
PROCEDURE = rum_timestamptz_right_distance,
LEFTARG = timestamptz,
RIGHTARG = timestamptz,
COMMUTATOR = <=|
);
CREATE OPERATOR CLASS rum_timestamptz_ops
DEFAULT FOR TYPE timestamptz USING rum
AS
OPERATOR 1 <,
OPERATOR 2 <=,
OPERATOR 3 =,
OPERATOR 4 >=,
OPERATOR 5 >,
--support
FUNCTION 1 timestamptz_cmp(timestamptz,timestamptz),
FUNCTION 2 rum_timestamp_extract_value(timestamp,internal,internal,internal,internal),
FUNCTION 3 rum_timestamp_extract_query(timestamp,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 rum_timestamp_consistent(internal,smallint,timestamp,int,internal,internal,internal,internal),
FUNCTION 5 rum_timestamp_compare_prefix(timestamp,timestamp,smallint,internal),
FUNCTION 6 rum_timestamp_config(internal),
-- support to timestamptz distance in rum_tsvector_timestamptz_ops
FUNCTION 9 rum_timestamp_outer_distance(timestamp, timestamp, smallint),
OPERATOR 20 <=> (timestamptz,timestamptz) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 21 <=| (timestamptz,timestamptz) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 22 |=> (timestamptz,timestamptz) FOR ORDER BY pg_catalog.float_ops,
STORAGE timestamptz;
/*
* rum_tsvector_timestamptz_ops operator class.
*
* Stores tsvector with timestamptz.
*/
CREATE OPERATOR CLASS rum_tsvector_timestamptz_ops
FOR TYPE tsvector USING rum
AS
OPERATOR 1 @@ (tsvector, tsquery),
--support function
FUNCTION 1 gin_cmp_tslexeme(text, text),
FUNCTION 2 rum_extract_tsvector(tsvector,internal,internal,internal,internal),
FUNCTION 3 rum_extract_tsquery(tsquery,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 rum_tsquery_timestamp_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 5 gin_cmp_prefix(text,text,smallint,internal),
FUNCTION 7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
STORAGE text;
/*
* rum_tsvector_hash_timestamptz_ops operator class
*/
CREATE OPERATOR CLASS rum_tsvector_hash_timestamptz_ops
FOR TYPE tsvector USING rum
AS
OPERATOR 1 @@ (tsvector, tsquery),
--support function
FUNCTION 1 btint4cmp(integer, integer),
FUNCTION 2 rum_extract_tsvector_hash(tsvector,internal,internal,internal,internal),
FUNCTION 3 rum_extract_tsquery_hash(tsquery,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 rum_tsquery_timestamp_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
STORAGE integer;
/*
* rum_tsquery_ops operator class.
*
* Used for inversed text search.
*/
CREATE FUNCTION ruminv_extract_tsquery(tsquery,internal,internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION ruminv_extract_tsvector(tsvector,internal,smallint,internal,internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION ruminv_tsvector_consistent(internal, smallint, tsvector, integer, internal, internal, internal, internal)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION ruminv_tsquery_config(internal)
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR CLASS rum_tsquery_ops
DEFAULT FOR TYPE tsquery USING rum
AS
OPERATOR 1 @@ (tsquery, tsvector),
FUNCTION 1 gin_cmp_tslexeme(text, text),
FUNCTION 2 ruminv_extract_tsquery(tsquery,internal,internal,internal,internal),
FUNCTION 3 ruminv_extract_tsvector(tsvector,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 ruminv_tsvector_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 6 ruminv_tsquery_config(internal),
STORAGE text;
/*
* RUM version 1.1
*/
CREATE FUNCTION rum_btree_consistent(internal,smallint,internal,int,internal,internal,internal,internal)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
ALTER FUNCTION
rum_tsquery_timestamp_consistent (internal,smallint,tsvector,int,internal,internal,internal,internal)
RENAME TO rum_tsquery_addon_consistent;
CREATE FUNCTION rum_numeric_cmp(numeric, numeric)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE OPERATOR CLASS rum_tsvector_addon_ops
FOR TYPE tsvector USING rum
AS
OPERATOR 1 @@ (tsvector, tsquery),
--support function
FUNCTION 1 gin_cmp_tslexeme(text, text),
FUNCTION 2 rum_extract_tsvector(tsvector,internal,internal,internal,internal),
FUNCTION 3 rum_extract_tsquery(tsquery,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 rum_tsquery_addon_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 5 gin_cmp_prefix(text,text,smallint,internal),
FUNCTION 7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
STORAGE text;
CREATE OPERATOR CLASS rum_tsvector_hash_addon_ops
FOR TYPE tsvector USING rum
AS
OPERATOR 1 @@ (tsvector, tsquery),
--support function
FUNCTION 1 btint4cmp(integer, integer),
FUNCTION 2 rum_extract_tsvector_hash(tsvector,internal,internal,internal,internal),
FUNCTION 3 rum_extract_tsquery_hash(tsquery,internal,smallint,internal,internal,internal,internal),
FUNCTION 4 rum_tsquery_addon_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
FUNCTION 7 rum_tsquery_pre_consistent(internal,smallint,tsvector,int,internal,internal,internal,internal),
STORAGE integer;
/*--------------------int2-----------------------*/
CREATE FUNCTION rum_int2_extract_value(int2, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int2_compare_prefix(int2, int2, int2, internal)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int2_extract_query(int2, internal, int2, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int2_distance(int2, int2)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=> (
PROCEDURE = rum_int2_distance,
LEFTARG = int2,
RIGHTARG = int2,
COMMUTATOR = <=>
);
CREATE FUNCTION rum_int2_left_distance(int2, int2)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=| (
PROCEDURE = rum_int2_left_distance,
LEFTARG = int2,
RIGHTARG = int2,
COMMUTATOR = |=>
);
CREATE FUNCTION rum_int2_right_distance(int2, int2)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR |=> (
PROCEDURE = rum_int2_right_distance,
LEFTARG = int2,
RIGHTARG = int2,
COMMUTATOR = <=|
);
CREATE FUNCTION rum_int2_outer_distance(int2, int2, smallint)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int2_config(internal)
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR CLASS rum_int2_ops
DEFAULT FOR TYPE int2 USING rum
AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
OPERATOR 20 <=> (int2,int2) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 21 <=| (int2,int2) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 22 |=> (int2,int2) FOR ORDER BY pg_catalog.float_ops,
FUNCTION 1 btint2cmp(int2,int2),
FUNCTION 2 rum_int2_extract_value(int2, internal),
FUNCTION 3 rum_int2_extract_query(int2, internal, int2, internal, internal),
FUNCTION 4 rum_btree_consistent(internal,smallint,internal,int,internal,internal,internal,internal),
FUNCTION 5 rum_int2_compare_prefix(int2,int2,int2, internal),
-- support to int2 distance in rum_tsvector_addon_ops
FUNCTION 6 rum_int2_config(internal),
FUNCTION 9 rum_int2_outer_distance(int2, int2, smallint),
STORAGE int2;
/*--------------------int4-----------------------*/
CREATE FUNCTION rum_int4_extract_value(int4, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int4_compare_prefix(int4, int4, int2, internal)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int4_extract_query(int4, internal, int2, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int4_distance(int4, int4)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=> (
PROCEDURE = rum_int4_distance,
LEFTARG = int4,
RIGHTARG = int4,
COMMUTATOR = <=>
);
CREATE FUNCTION rum_int4_left_distance(int4, int4)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=| (
PROCEDURE = rum_int4_left_distance,
LEFTARG = int4,
RIGHTARG = int4,
COMMUTATOR = |=>
);
CREATE FUNCTION rum_int4_right_distance(int4, int4)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR |=> (
PROCEDURE = rum_int4_right_distance,
LEFTARG = int4,
RIGHTARG = int4,
COMMUTATOR = <=|
);
CREATE FUNCTION rum_int4_outer_distance(int4, int4, smallint)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int4_config(internal)
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR CLASS rum_int4_ops
DEFAULT FOR TYPE int4 USING rum
AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
OPERATOR 20 <=> (int4,int4) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 21 <=| (int4,int4) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 22 |=> (int4,int4) FOR ORDER BY pg_catalog.float_ops,
FUNCTION 1 btint4cmp(int4,int4),
FUNCTION 2 rum_int4_extract_value(int4, internal),
FUNCTION 3 rum_int4_extract_query(int4, internal, int2, internal, internal),
FUNCTION 4 rum_btree_consistent(internal,smallint,internal,int,internal,internal,internal,internal),
FUNCTION 5 rum_int4_compare_prefix(int4,int4,int2, internal),
-- support to int4 distance in rum_tsvector_addon_ops
FUNCTION 6 rum_int4_config(internal),
FUNCTION 9 rum_int4_outer_distance(int4, int4, smallint),
STORAGE int4;
/*--------------------int8-----------------------*/
CREATE FUNCTION rum_int8_extract_value(int8, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int8_compare_prefix(int8, int8, int2, internal)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int8_extract_query(int8, internal, int2, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int8_distance(int8, int8)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=> (
PROCEDURE = rum_int8_distance,
LEFTARG = int8,
RIGHTARG = int8,
COMMUTATOR = <=>
);
CREATE FUNCTION rum_int8_left_distance(int8, int8)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=| (
PROCEDURE = rum_int8_left_distance,
LEFTARG = int8,
RIGHTARG = int8,
COMMUTATOR = |=>
);
CREATE FUNCTION rum_int8_right_distance(int8, int8)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR | 10000 => (
PROCEDURE = rum_int8_right_distance,
LEFTARG = int8,
RIGHTARG = int8,
COMMUTATOR = <=|
);
CREATE FUNCTION rum_int8_outer_distance(int8, int8, smallint)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_int8_config(internal)
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR CLASS rum_int8_ops
DEFAULT FOR TYPE int8 USING rum
AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
OPERATOR 20 <=> (int8,int8) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 21 <=| (int8,int8) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 22 |=> (int8,int8) FOR ORDER BY pg_catalog.float_ops,
FUNCTION 1 btint8cmp(int8,int8),
FUNCTION 2 rum_int8_extract_value(int8, internal),
FUNCTION 3 rum_int8_extract_query(int8, internal, int2, internal, internal),
FUNCTION 4 rum_btree_consistent(internal,smallint,internal,int,internal,internal,internal,internal),
FUNCTION 5 rum_int8_compare_prefix(int8,int8,int2, internal),
-- support to int8 distance in rum_tsvector_addon_ops
FUNCTION 6 rum_int8_config(internal),
FUNCTION 9 rum_int8_outer_distance(int8, int8, smallint),
STORAGE int8;
/*--------------------float4-----------------------*/
CREATE FUNCTION rum_float4_extract_value(float4, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_float4_compare_prefix(float4, float4, int2, internal)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_float4_extract_query(float4, internal, int2, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_float4_distance(float4, float4)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=> (
PROCEDURE = rum_float4_distance,
LEFTARG = float4,
RIGHTARG = float4,
COMMUTATOR = <=>
);
CREATE FUNCTION rum_float4_left_distance(float4, float4)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=| (
PROCEDURE = rum_float4_left_distance,
LEFTARG = float4,
RIGHTARG = float4,
COMMUTATOR = |=>
);
CREATE FUNCTION rum_float4_right_distance(float4, float4)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR |=> (
PROCEDURE = rum_float4_right_distance,
LEFTARG = float4,
RIGHTARG = float4,
COMMUTATOR = <=|
);
CREATE FUNCTION rum_float4_outer_distance(float4, float4, smallint)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_float4_config(internal)
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR CLASS rum_float4_ops
DEFAULT FOR TYPE float4 USING rum
AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
OPERATOR 20 <=> (float4,float4) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 21 <=| (float4,float4) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 22 |=> (float4,float4) FOR ORDER BY pg_catalog.float_ops,
FUNCTION 1 btfloat4cmp(float4,float4),
FUNCTION 2 rum_float4_extract_value(float4, internal),
FUNCTION 3 rum_float4_extract_query(float4, internal, int2, internal, internal),
FUNCTION 4 rum_btree_consistent(internal,smallint,internal,int,internal,internal,internal,internal),
FUNCTION 5 rum_float4_compare_prefix(float4,float4,int2, internal),
-- support to float4 distance in rum_tsvector_addon_ops
FUNCTION 6 rum_float4_config(internal),
FUNCTION 9 rum_float4_outer_distance(float4, float4, smallint),
STORAGE float4;
/*--------------------float8-----------------------*/
CREATE FUNCTION rum_float8_extract_value(float8, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_float8_compare_prefix(float8, float8, int2, internal)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_float8_extract_query(float8, internal, int2, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_float8_distance(float8, float8)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=> (
PROCEDURE = rum_float8_distance,
LEFTARG = float8,
RIGHTARG = float8,
COMMUTATOR = <=>
);
CREATE FUNCTION rum_float8_left_distance(float8, float8)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=| (
PROCEDURE = rum_float8_left_distance,
LEFTARG = float8,
RIGHTARG = float8,
COMMUTATOR = |=>
);
CREATE FUNCTION rum_float8_right_distance(float8, float8)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR |=> (
PROCEDURE = rum_float8_right_distance,
LEFTARG = float8,
RIGHTARG = float8,
COMMUTATOR = <=|
);
CREATE FUNCTION rum_float8_outer_distance(float8, float8, smallint)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_float8_config(internal)
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR CLASS rum_float8_ops
DEFAULT FOR TYPE float8 USING rum
AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
OPERATOR 20 <=> (float8,float8) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 21 <=| (float8,float8) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 22 |=> (float8,float8) FOR ORDER BY pg_catalog.float_ops,
FUNCTION 1 btfloat8cmp(float8,float8),
FUNCTION 2 rum_float8_extract_value(float8, internal),
FUNCTION 3 rum_float8_extract_query(float8, internal, int2, internal, internal),
FUNCTION 4 rum_btree_consistent(internal,smallint,internal,int,internal,internal,internal,internal),
FUNCTION 5 rum_float8_compare_prefix(float8,float8,int2, internal),
-- support to float8 distance in rum_tsvector_addon_ops
FUNCTION 6 rum_float8_config(internal),
FUNCTION 9 rum_float8_outer_distance(float8, float8, smallint),
STORAGE float8;
/*--------------------money-----------------------*/
CREATE FUNCTION rum_money_extract_value(money, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_money_compare_prefix(money, money, int2, internal)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_money_extract_query(money, internal, int2, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_money_distance(money, money)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=> (
PROCEDURE = rum_money_distance,
LEFTARG = money,
RIGHTARG = money,
COMMUTATOR = <=>
);
CREATE FUNCTION rum_money_left_distance(money, money)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <=| (
PROCEDURE = rum_money_left_distance,
LEFTARG = money,
RIGHTARG = money,
COMMUTATOR = |=>
);
CREATE FUNCTION rum_money_right_distance(money, money)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR |=> (
PROCEDURE = rum_money_right_distance,
LEFTARG = money,
RIGHTARG = money,
COMMUTATOR = <=|
);
CREATE FUNCTION rum_money_outer_distance(money, money, smallint)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_money_config(internal)
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR CLASS rum_money_ops
DEFAULT FOR TYPE money USING rum
AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
OPERATOR 20 <=> (money,money) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 21 <=| (money,money) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 22 |=> (money,money) FOR ORDER BY pg_catalog.float_ops,
FUNCTION 1 cash_cmp(money,money),
FUNCTION 2 rum_money_extract_value(money, internal),
FUNCTION 3 rum_money_extract_query(money, internal, int2, internal, internal),
FUNCTION 4 rum_btree_consistent(internal,smallint,internal,int,internal,internal,internal,internal),
FUNCTION 5 rum_money_compare_prefix(money,money,int2, internal),
-- support to money distance in rum_tsvector_addon_ops
FUNCTION 6 rum_money_config(internal),
FUNCTION 9 rum_money_outer_distance(money, money, smallint),
STORAGE money;
/*--------------------oid-----------------------*/
CREATE FUNCTION rum_oid_extract_value(oid, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_oid_compare_prefix(oid, oid, int2, internal)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE FUNCTION rum_oid_extract_query(oid, internal, int2, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
0