mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
f576b17cd6
Patch introduces a concept of similarity over string and just a word from another string. Version of extension is not changed because 1.2 was already introduced in 9.6 release cycle, so, there wasn't a public version. Author: Alexander Korotkov, Artur Zakirov
75 lines
2.1 KiB
SQL
75 lines
2.1 KiB
SQL
/* contrib/pg_trgm/pg_trgm--1.1--1.2.sql */
|
|
|
|
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
|
|
\echo Use "ALTER EXTENSION pg_trgm UPDATE TO '1.2'" to load this file. \quit
|
|
|
|
CREATE FUNCTION word_similarity(text,text)
|
|
RETURNS float4
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT IMMUTABLE;
|
|
|
|
CREATE FUNCTION word_similarity_op(text,text)
|
|
RETURNS bool
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT STABLE; -- stable because depends on pg_trgm.word_similarity_threshold
|
|
|
|
CREATE FUNCTION word_similarity_commutator_op(text,text)
|
|
RETURNS bool
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT STABLE; -- stable because depends on pg_trgm.word_similarity_threshold
|
|
|
|
CREATE FUNCTION word_similarity_dist_op(text,text)
|
|
RETURNS float4
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT IMMUTABLE;
|
|
|
|
CREATE FUNCTION word_similarity_dist_commutator_op(text,text)
|
|
RETURNS float4
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT IMMUTABLE;
|
|
|
|
CREATE OPERATOR <% (
|
|
LEFTARG = text,
|
|
RIGHTARG = text,
|
|
PROCEDURE = word_similarity_op,
|
|
COMMUTATOR = '%>',
|
|
RESTRICT = contsel,
|
|
JOIN = contjoinsel
|
|
);
|
|
|
|
CREATE OPERATOR %> (
|
|
LEFTARG = text,
|
|
RIGHTARG = text,
|
|
PROCEDURE = word_similarity_commutator_op,
|
|
COMMUTATOR = '<%',
|
|
RESTRICT = contsel,
|
|
JOIN = contjoinsel
|
|
);
|
|
|
|
CREATE OPERATOR <<-> (
|
|
LEFTARG = text,
|
|
RIGHTARG = text,
|
|
PROCEDURE = word_similarity_dist_op,
|
|
COMMUTATOR = '<->>'
|
|
);
|
|
|
|
CREATE OPERATOR <->> (
|
|
LEFTARG = text,
|
|
RIGHTARG = text,
|
|
PROCEDURE = word_similarity_dist_commutator_op,
|
|
COMMUTATOR = '<<->'
|
|
);
|
|
|
|
CREATE FUNCTION gin_trgm_triconsistent(internal, int2, text, int4, internal, internal, internal)
|
|
RETURNS "char"
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
ALTER OPERATOR FAMILY gist_trgm_ops USING gist ADD
|
|
OPERATOR 7 %> (text, text),
|
|
OPERATOR 8 <->> (text, text) FOR ORDER BY pg_catalog.float_ops;
|
|
|
|
ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD
|
|
OPERATOR 7 %> (text, text),
|
|
FUNCTION 6 (text, text) gin_trgm_triconsistent (internal, int2, text, int4, internal, internal, internal);
|