Kouhei Sutou
null+****@clear*****
Thu Aug 3 23:40:56 JST 2017
Kouhei Sutou 2017-08-03 23:40:56 +0900 (Thu, 03 Aug 2017) New Revision: 3ebb84f3333df17829295e0a964ea6a68fde5131 https://github.com/pgroonga/pgroonga/commit/3ebb84f3333df17829295e0a964ea6a68fde5131 Message: Stop to create "pgroonga" schema We use "pgroonga_" prefix instead. Variable name still uses "pgroonga." because GUC uses "." as prefix character. The default operator class is changed to _v2. The next version is 2.0.0. TODO: * Update test to follow default operator class change * Update test to use "pgroonga_" prefix instead of "pgroonga" schema * Support migration from 1.2.3 to 2.0.0 Modified files: data/pgroonga.sql pgroonga.control src/pgroonga.c Renamed files: data/pgroonga--1.2.3--2.0.0.sql (from data/pgroonga--1.2.3--1.2.4.sql) Renamed: data/pgroonga--1.2.3--2.0.0.sql (+0 -0) 100% =================================================================== Modified: data/pgroonga.sql (+1396 -168) =================================================================== --- data/pgroonga.sql 2017-08-02 10:06:39 +0900 (1d047e5) +++ data/pgroonga.sql 2017-08-03 23:40:56 +0900 (82e8169) @@ -1,36 +1,32 @@ -SET search_path = public; - -CREATE SCHEMA pgroonga; - -CREATE FUNCTION pgroonga.score("row" record) +CREATE FUNCTION pgroonga_score("row" record) RETURNS float8 AS 'MODULE_PATHNAME', 'pgroonga_score' LANGUAGE C VOLATILE STRICT; -CREATE FUNCTION pgroonga.table_name(indexName cstring) +CREATE FUNCTION pgroonga_table_name(indexName cstring) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_table_name' LANGUAGE C STABLE STRICT; -CREATE FUNCTION pgroonga.command(groongaCommand text) +CREATE FUNCTION pgroonga_command(groongaCommand text) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_command' LANGUAGE C VOLATILE STRICT; -CREATE FUNCTION pgroonga.command(groongaCommand text, arguments text[]) +CREATE FUNCTION pgroonga_command(groongaCommand text, arguments text[]) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_command' LANGUAGE C VOLATILE STRICT; -CREATE FUNCTION pgroonga.query_expand(tableName cstring, +CREATE FUNCTION pgroonga_query_expand(tableName cstring, termColumnName text, synonymsColumnName text, query text) @@ -40,126 +36,126 @@ CREATE FUNCTION pgroonga.query_expand(tableName cstring, STABLE STRICT; -CREATE FUNCTION pgroonga.snippet_html(target text, keywords text[]) +CREATE FUNCTION pgroonga_snippet_html(target text, keywords text[]) RETURNS text[] AS 'MODULE_PATHNAME', 'pgroonga_snippet_html' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.highlight_html(target text, keywords text[]) +CREATE FUNCTION pgroonga_highlight_html(target text, keywords text[]) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_highlight_html' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.match_positions_byte(target text, keywords text[]) +CREATE FUNCTION pgroonga_match_positions_byte(target text, keywords text[]) RETURNS integer[2][] AS 'MODULE_PATHNAME', 'pgroonga_match_positions_byte' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.match_positions_character(target text, keywords text[]) +CREATE FUNCTION pgroonga_match_positions_character(target text, keywords text[]) RETURNS integer[2][] AS 'MODULE_PATHNAME', 'pgroonga_match_positions_character' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.query_extract_keywords(query text) +CREATE FUNCTION pgroonga_query_extract_keywords(query text) RETURNS text[] AS 'MODULE_PATHNAME', 'pgroonga_query_extract_keywords' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.flush(indexName cstring) +CREATE FUNCTION pgroonga_flush(indexName cstring) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_flush' LANGUAGE C VOLATILE STRICT; -CREATE FUNCTION pgroonga.command_escape_value(value text) +CREATE FUNCTION pgroonga_command_escape_value(value text) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_command_escape_value' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.query_escape(query text) +CREATE FUNCTION pgroonga_query_escape(query text) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_query_escape' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.escape(value text) +CREATE FUNCTION pgroonga_escape(value text) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_escape_string' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.escape(value text, special_characters text) +CREATE FUNCTION pgroonga_escape(value text, special_characters text) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_escape_string' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.escape(value boolean) +CREATE FUNCTION pgroonga_escape(value boolean) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_escape_boolean' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.escape(value int2) +CREATE FUNCTION pgroonga_escape(value int2) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_escape_int2' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.escape(value int4) +CREATE FUNCTION pgroonga_escape(value int4) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_escape_int4' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.escape(value int8) +CREATE FUNCTION pgroonga_escape(value int8) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_escape_int8' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.escape(value float4) +CREATE FUNCTION pgroonga_escape(value float4) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_escape_float8' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.escape(value float8) +CREATE FUNCTION pgroonga_escape(value float8) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_escape_float8' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.escape(value timestamp) +CREATE FUNCTION pgroonga_escape(value timestamp) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_escape_timestamptz' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.escape(value timestamptz) +CREATE FUNCTION pgroonga_escape(value timestamptz) RETURNS text AS 'MODULE_PATHNAME', 'pgroonga_escape_timestamptz' LANGUAGE C @@ -168,28 +164,28 @@ CREATE FUNCTION pgroonga.escape(value timestamptz) /* v1 */ -CREATE FUNCTION pgroonga.match_term(target text, term text) +CREATE FUNCTION pgroonga_match_term(target text, term text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_term_text' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.match_term(target text[], term text) +CREATE FUNCTION pgroonga_match_term(target text[], term text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_term_text_array' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.match_term(target varchar, term varchar) +CREATE FUNCTION pgroonga_match_term(target varchar, term varchar) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_term_varchar' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.match_term(target varchar[], term varchar) +CREATE FUNCTION pgroonga_match_term(target varchar[], term varchar) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_term_varchar_array' LANGUAGE C @@ -197,45 +193,45 @@ CREATE FUNCTION pgroonga.match_term(target varchar[], term varchar) STRICT; CREATE OPERATOR %% ( - PROCEDURE = pgroonga.match_term, + PROCEDURE = pgroonga_match_term, LEFTARG = text, RIGHTARG = text ); CREATE OPERATOR %% ( - PROCEDURE = pgroonga.match_term, + PROCEDURE = pgroonga_match_term, LEFTARG = text[], RIGHTARG = text ); CREATE OPERATOR %% ( - PROCEDURE = pgroonga.match_term, + PROCEDURE = pgroonga_match_term, LEFTARG = varchar, RIGHTARG = varchar ); CREATE OPERATOR %% ( - PROCEDURE = pgroonga.match_term, + PROCEDURE = pgroonga_match_term, LEFTARG = varchar[], RIGHTARG = varchar ); -CREATE FUNCTION pgroonga.match_query(text, text) +CREATE FUNCTION pgroonga_match_query(text, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_query_text' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.match_query(text[], text) +CREATE FUNCTION pgroonga_match_query(text[], text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_query_text_array' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.match_query(varchar, varchar) +CREATE FUNCTION pgroonga_match_query(varchar, varchar) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_query_varchar' LANGUAGE C @@ -243,32 +239,32 @@ CREATE FUNCTION pgroonga.match_query(varchar, varchar) STRICT; CREATE OPERATOR @@ ( - PROCEDURE = pgroonga.match_query, + PROCEDURE = pgroonga_match_query, LEFTARG = text, RIGHTARG = text ); CREATE OPERATOR @@ ( - PROCEDURE = pgroonga.match_query, + PROCEDURE = pgroonga_match_query, LEFTARG = text[], RIGHTARG = text ); CREATE OPERATOR @@ ( - PROCEDURE = pgroonga.match_query, + PROCEDURE = pgroonga_match_query, LEFTARG = varchar, RIGHTARG = varchar ); -CREATE FUNCTION pgroonga.match_regexp(text, text) +CREATE FUNCTION pgroonga_match_regexp(text, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_regexp_text' LANGUAGE C IMMUTABLE STRICT; -CREATE FUNCTION pgroonga.match_regexp(varchar, varchar) +CREATE FUNCTION pgroonga_match_regexp(varchar, varchar) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_regexp_varchar' LANGUAGE C @@ -276,20 +272,20 @@ CREATE FUNCTION pgroonga.match_regexp(varchar, varchar) STRICT; CREATE OPERATOR @~ ( - PROCEDURE = pgroonga.match_regexp, + PROCEDURE = pgroonga_match_regexp, LEFTARG = text, RIGHTARG = text ); CREATE OPERATOR @~ ( - PROCEDURE = pgroonga.match_regexp, + PROCEDURE = pgroonga_match_regexp, LEFTARG = varchar, RIGHTARG = varchar ); /* v2 */ -CREATE FUNCTION pgroonga.match_text(text, text) +CREATE FUNCTION pgroonga_match_text(text, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_text' LANGUAGE C @@ -297,12 +293,12 @@ CREATE FUNCTION pgroonga.match_text(text, text) STRICT; CREATE OPERATOR &@ ( - PROCEDURE = pgroonga.match_text, + PROCEDURE = pgroonga_match_text, LEFTARG = text, RIGHTARG = text ); -CREATE FUNCTION pgroonga.match_text_array(text[], text) +CREATE FUNCTION pgroonga_match_text_array(text[], text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_text_array' LANGUAGE C @@ -310,12 +306,12 @@ CREATE FUNCTION pgroonga.match_text_array(text[], text) STRICT; CREATE OPERATOR &@ ( - PROCEDURE = pgroonga.match_text_array, + PROCEDURE = pgroonga_match_text_array, LEFTARG = text[], RIGHTARG = text ); -CREATE FUNCTION pgroonga.match_varchar(varchar, varchar) +CREATE FUNCTION pgroonga_match_varchar(varchar, varchar) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_varchar' LANGUAGE C @@ -323,12 +319,12 @@ CREATE FUNCTION pgroonga.match_varchar(varchar, varchar) STRICT; CREATE OPERATOR &@ ( - PROCEDURE = pgroonga.match_varchar, + PROCEDURE = pgroonga_match_varchar, LEFTARG = varchar, RIGHTARG = varchar ); -CREATE FUNCTION pgroonga.contain_varchar_array(varchar[], varchar) +CREATE FUNCTION pgroonga_contain_varchar_array(varchar[], varchar) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_contain_varchar_array' LANGUAGE C @@ -336,7 +332,7 @@ CREATE FUNCTION pgroonga.contain_varchar_array(varchar[], varchar) STRICT; CREATE OPERATOR &> ( - PROCEDURE = pgroonga.contain_varchar_array, + PROCEDURE = pgroonga_contain_varchar_array, LEFTARG = varchar[], RIGHTARG = varchar ); @@ -348,7 +344,7 @@ BEGIN WHERE typname = 'jsonb'; IF FOUND THEN - CREATE FUNCTION pgroonga.match_jsonb(jsonb, text) + CREATE FUNCTION pgroonga_match_jsonb(jsonb, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_jsonb' LANGUAGE C @@ -356,7 +352,7 @@ BEGIN STRICT; CREATE OPERATOR &@ ( - PROCEDURE = pgroonga.match_jsonb, + PROCEDURE = pgroonga_match_jsonb, LEFTARG = jsonb, RIGHTARG = text ); @@ -364,7 +360,7 @@ BEGIN END; $$; -CREATE FUNCTION pgroonga.query_text(text, text) +CREATE FUNCTION pgroonga_query_text(text, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_query_text' LANGUAGE C @@ -373,18 +369,18 @@ CREATE FUNCTION pgroonga.query_text(text, text) -- Deprecated since 1.2.2. CREATE OPERATOR &? ( - PROCEDURE = pgroonga.query_text, + PROCEDURE = pgroonga_query_text, LEFTARG = text, RIGHTARG = text ); CREATE OPERATOR &@~ ( - PROCEDURE = pgroonga.query_text, + PROCEDURE = pgroonga_query_text, LEFTARG = text, RIGHTARG = text ); -CREATE FUNCTION pgroonga.query_text_array(text[], text) +CREATE FUNCTION pgroonga_query_text_array(text[], text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_query_text_array' LANGUAGE C @@ -393,18 +389,18 @@ CREATE FUNCTION pgroonga.query_text_array(text[], text) -- Deprecated since 1.2.2. CREATE OPERATOR &? ( - PROCEDURE = pgroonga.query_text_array, + PROCEDURE = pgroonga_query_text_array, LEFTARG = text[], RIGHTARG = text ); CREATE OPERATOR &@~ ( - PROCEDURE = pgroonga.query_text_array, + PROCEDURE = pgroonga_query_text_array, LEFTARG = text[], RIGHTARG = text ); -CREATE FUNCTION pgroonga.query_varchar(varchar, varchar) +CREATE FUNCTION pgroonga_query_varchar(varchar, varchar) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_query_varchar' LANGUAGE C @@ -413,13 +409,13 @@ CREATE FUNCTION pgroonga.query_varchar(varchar, varchar) -- Deprecated since 1.2.2. CREATE OPERATOR &? ( - PROCEDURE = pgroonga.query_varchar, + PROCEDURE = pgroonga_query_varchar, LEFTARG = varchar, RIGHTARG = varchar ); CREATE OPERATOR &@~ ( - PROCEDURE = pgroonga.query_varchar, + PROCEDURE = pgroonga_query_varchar, LEFTARG = varchar, RIGHTARG = varchar ); @@ -431,7 +427,7 @@ BEGIN WHERE typname = 'jsonb'; IF FOUND THEN - CREATE FUNCTION pgroonga.query_jsonb(jsonb, text) + CREATE FUNCTION pgroonga_query_jsonb(jsonb, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_query_jsonb' LANGUAGE C @@ -440,13 +436,13 @@ BEGIN -- Deprecated since 1.2.2. CREATE OPERATOR &? ( - PROCEDURE = pgroonga.query_jsonb, + PROCEDURE = pgroonga_query_jsonb, LEFTARG = jsonb, RIGHTARG = text ); CREATE OPERATOR &@~ ( - PROCEDURE = pgroonga.query_jsonb, + PROCEDURE = pgroonga_query_jsonb, LEFTARG = jsonb, RIGHTARG = text ); @@ -454,7 +450,7 @@ BEGIN END; $$; -CREATE FUNCTION pgroonga.similar_text(text, text) +CREATE FUNCTION pgroonga_similar_text(text, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_similar_text' LANGUAGE C @@ -463,18 +459,18 @@ CREATE FUNCTION pgroonga.similar_text(text, text) -- Deprecated since 1.2.2. CREATE OPERATOR &~? ( - PROCEDURE = pgroonga.similar_text, + PROCEDURE = pgroonga_similar_text, LEFTARG = text, RIGHTARG = text ); CREATE OPERATOR &@* ( - PROCEDURE = pgroonga.similar_text, + PROCEDURE = pgroonga_similar_text, LEFTARG = text, RIGHTARG = text ); -CREATE FUNCTION pgroonga.similar_text_array(text[], text) +CREATE FUNCTION pgroonga_similar_text_array(text[], text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_similar_text_array' LANGUAGE C @@ -483,18 +479,18 @@ CREATE FUNCTION pgroonga.similar_text_array(text[], text) -- Deprecated since 1.2.2. CREATE OPERATOR &~? ( - PROCEDURE = pgroonga.similar_text_array, + PROCEDURE = pgroonga_similar_text_array, LEFTARG = text[], RIGHTARG = text ); CREATE OPERATOR &@* ( - PROCEDURE = pgroonga.similar_text_array, + PROCEDURE = pgroonga_similar_text_array, LEFTARG = text[], RIGHTARG = text ); -CREATE FUNCTION pgroonga.similar_varchar(varchar, varchar) +CREATE FUNCTION pgroonga_similar_varchar(varchar, varchar) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_similar_varchar' LANGUAGE C @@ -503,18 +499,18 @@ CREATE FUNCTION pgroonga.similar_varchar(varchar, varchar) -- Deprecated since 1.2.2. CREATE OPERATOR &~? ( - PROCEDURE = pgroonga.similar_varchar, + PROCEDURE = pgroonga_similar_varchar, LEFTARG = varchar, RIGHTARG = varchar ); CREATE OPERATOR &@* ( - PROCEDURE = pgroonga.similar_varchar, + PROCEDURE = pgroonga_similar_varchar, LEFTARG = varchar, RIGHTARG = varchar ); -CREATE FUNCTION pgroonga.prefix_text(text, text) +CREATE FUNCTION pgroonga_prefix_text(text, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_prefix_text' LANGUAGE C @@ -522,12 +518,12 @@ CREATE FUNCTION pgroonga.prefix_text(text, text) STRICT; CREATE OPERATOR &^ ( - PROCEDURE = pgroonga.prefix_text, + PROCEDURE = pgroonga_prefix_text, LEFTARG = text, RIGHTARG = text ); -CREATE FUNCTION pgroonga.prefix_text_array(text[], text) +CREATE FUNCTION pgroonga_prefix_text_array(text[], text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_prefix_text_array' LANGUAGE C @@ -535,19 +531,52 @@ CREATE FUNCTION pgroonga.prefix_text_array(text[], text) STRICT; CREATE OPERATOR &^ ( - PROCEDURE = pgroonga.prefix_text_array, + PROCEDURE = pgroonga_prefix_text_array, LEFTARG = text[], RIGHTARG = text ); /* Deprecated since 1.2.1. */ CREATE OPERATOR &^> ( - PROCEDURE = pgroonga.prefix_text_array, + PROCEDURE = pgroonga_prefix_text_array, LEFTARG = text[], RIGHTARG = text ); -CREATE FUNCTION pgroonga.prefix_rk_text(text, text) +CREATE FUNCTION pgroonga_prefix_varchar(varchar, varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR &^ ( + PROCEDURE = pgroonga_prefix_varchar, + LEFTARG = varchar, + RIGHTARG = varchar +); + +CREATE FUNCTION pgroonga_prefix_varchar_array(varchar[], varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_varchar_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR &^ ( + PROCEDURE = pgroonga_prefix_varchar_array, + LEFTARG = varchar[], + RIGHTARG = varchar +); + +/* Deprecated since 1.2.1. */ +CREATE OPERATOR &^> ( + PROCEDURE = pgroonga_prefix_varchar_array, + LEFTARG = varchar[], + RIGHTARG = varchar +); + +CREATE FUNCTION pgroonga_prefix_rk_text(text, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_text' LANGUAGE C @@ -555,12 +584,12 @@ CREATE FUNCTION pgroonga.prefix_rk_text(text, text) STRICT; CREATE OPERATOR &^~ ( - PROCEDURE = pgroonga.prefix_rk_text, + PROCEDURE = pgroonga_prefix_rk_text, LEFTARG = text, RIGHTARG = text ); -CREATE FUNCTION pgroonga.prefix_rk_text_array(text[], text) +CREATE FUNCTION pgroonga_prefix_rk_text_array(text[], text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_text_array' LANGUAGE C @@ -568,19 +597,52 @@ CREATE FUNCTION pgroonga.prefix_rk_text_array(text[], text) STRICT; CREATE OPERATOR &^~ ( - PROCEDURE = pgroonga.prefix_rk_text_array, + PROCEDURE = pgroonga_prefix_rk_text_array, LEFTARG = text[], RIGHTARG = text ); /* Deprecated since 1.2.1. */ CREATE OPERATOR &^~> ( - PROCEDURE = pgroonga.prefix_rk_text_array, + PROCEDURE = pgroonga_prefix_rk_text_array, LEFTARG = text[], RIGHTARG = text ); -CREATE FUNCTION pgroonga.script_text(text, text) +CREATE FUNCTION pgroonga_prefix_rk_varchar(varchar, varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR &^~ ( + PROCEDURE = pgroonga_prefix_rk_varchar, + LEFTARG = varchar, + RIGHTARG = varchar +); + +CREATE FUNCTION pgroonga_prefix_rk_varchar_array(varchar[], varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_varchar_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR &^~ ( + PROCEDURE = pgroonga_prefix_rk_varchar_array, + LEFTARG = varchar[], + RIGHTARG = varchar +); + +/* Deprecated since 1.2.1. */ +CREATE OPERATOR &^~> ( + PROCEDURE = pgroonga_prefix_rk_varchar_array, + LEFTARG = varchar[], + RIGHTARG = varchar +); + +CREATE FUNCTION pgroonga_script_text(text, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_script_text' LANGUAGE C @@ -588,12 +650,12 @@ CREATE FUNCTION pgroonga.script_text(text, text) STRICT; CREATE OPERATOR &` ( - PROCEDURE = pgroonga.script_text, + PROCEDURE = pgroonga_script_text, LEFTARG = text, RIGHTARG = text ); -CREATE FUNCTION pgroonga.script_text_array(text[], text) +CREATE FUNCTION pgroonga_script_text_array(text[], text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_script_text_array' LANGUAGE C @@ -601,12 +663,12 @@ CREATE FUNCTION pgroonga.script_text_array(text[], text) STRICT; CREATE OPERATOR &` ( - PROCEDURE = pgroonga.script_text_array, + PROCEDURE = pgroonga_script_text_array, LEFTARG = text[], RIGHTARG = text ); -CREATE FUNCTION pgroonga.script_varchar(varchar, varchar) +CREATE FUNCTION pgroonga_script_varchar(varchar, varchar) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_script_varchar' LANGUAGE C @@ -614,7 +676,7 @@ CREATE FUNCTION pgroonga.script_varchar(varchar, varchar) STRICT; CREATE OPERATOR &` ( - PROCEDURE = pgroonga.script_varchar, + PROCEDURE = pgroonga_script_varchar, LEFTARG = varchar, RIGHTARG = varchar ); @@ -626,7 +688,7 @@ BEGIN WHERE typname = 'jsonb'; IF FOUND THEN - CREATE FUNCTION pgroonga.script_jsonb(jsonb, text) + CREATE FUNCTION pgroonga_script_jsonb(jsonb, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_script_jsonb' LANGUAGE C @@ -634,7 +696,7 @@ BEGIN STRICT; CREATE OPERATOR &` ( - PROCEDURE = pgroonga.script_jsonb, + PROCEDURE = pgroonga_script_jsonb, LEFTARG = jsonb, RIGHTARG = text ); @@ -642,7 +704,7 @@ BEGIN END; $$; -CREATE FUNCTION pgroonga.match_in_text(text, text[]) +CREATE FUNCTION pgroonga_match_in_text(text, text[]) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_in_text' LANGUAGE C @@ -651,18 +713,18 @@ CREATE FUNCTION pgroonga.match_in_text(text, text[]) /* Deprecated since 1.2.1. */ CREATE OPERATOR &@> ( - PROCEDURE = pgroonga.match_in_text, + PROCEDURE = pgroonga_match_in_text, LEFTARG = text, RIGHTARG = text[] ); CREATE OPERATOR &@| ( - PROCEDURE = pgroonga.match_in_text, + PROCEDURE = pgroonga_match_in_text, LEFTARG = text, RIGHTARG = text[] ); -CREATE FUNCTION pgroonga.match_in_text_array(text[], text[]) +CREATE FUNCTION pgroonga_match_in_text_array(text[], text[]) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_in_text_array' LANGUAGE C @@ -670,12 +732,12 @@ CREATE FUNCTION pgroonga.match_in_text_array(text[], text[]) STRICT; CREATE OPERATOR &@| ( - PROCEDURE = pgroonga.match_in_text_array, + PROCEDURE = pgroonga_match_in_text_array, LEFTARG = text[], RIGHTARG = text[] ); -CREATE FUNCTION pgroonga.match_in_varchar(varchar, varchar[]) +CREATE FUNCTION pgroonga_match_in_varchar(varchar, varchar[]) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_in_varchar' LANGUAGE C @@ -683,12 +745,12 @@ CREATE FUNCTION pgroonga.match_in_varchar(varchar, varchar[]) STRICT; CREATE OPERATOR &@| ( - PROCEDURE = pgroonga.match_in_varchar, + PROCEDURE = pgroonga_match_in_varchar, LEFTARG = varchar, RIGHTARG = varchar[] ); -CREATE FUNCTION pgroonga.query_in_text(text, text[]) +CREATE FUNCTION pgroonga_query_in_text(text, text[]) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_query_in_text' LANGUAGE C @@ -697,25 +759,25 @@ CREATE FUNCTION pgroonga.query_in_text(text, text[]) /* Deprecated since 1.2.1. */ CREATE OPERATOR &?> ( - PROCEDURE = pgroonga.query_in_text, + PROCEDURE = pgroonga_query_in_text, LEFTARG = text, RIGHTARG = text[] ); -- Deprecated since 1.2.2. CREATE OPERATOR &?| ( - PROCEDURE = pgroonga.query_in_text, + PROCEDURE = pgroonga_query_in_text, LEFTARG = text, RIGHTARG = text[] ); CREATE OPERATOR &@~| ( - PROCEDURE = pgroonga.query_in_text, + PROCEDURE = pgroonga_query_in_text, LEFTARG = text, RIGHTARG = text[] ); -CREATE FUNCTION pgroonga.query_in_text_array(text[], text[]) +CREATE FUNCTION pgroonga_query_in_text_array(text[], text[]) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_query_in_text_array' LANGUAGE C @@ -724,18 +786,18 @@ CREATE FUNCTION pgroonga.query_in_text_array(text[], text[]) -- Deprecated since 1.2.2. CREATE OPERATOR &?| ( - PROCEDURE = pgroonga.query_in_text_array, + PROCEDURE = pgroonga_query_in_text_array, LEFTARG = text[], RIGHTARG = text[] ); CREATE OPERATOR &@~| ( - PROCEDURE = pgroonga.query_in_text_array, + PROCEDURE = pgroonga_query_in_text_array, LEFTARG = text[], RIGHTARG = text[] ); -CREATE FUNCTION pgroonga.query_in_varchar(varchar, varchar[]) +CREATE FUNCTION pgroonga_query_in_varchar(varchar, varchar[]) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_query_in_varchar' LANGUAGE C @@ -744,18 +806,18 @@ CREATE FUNCTION pgroonga.query_in_varchar(varchar, varchar[]) -- Deprecated since 1.2.2. CREATE OPERATOR &?| ( - PROCEDURE = pgroonga.query_in_varchar, + PROCEDURE = pgroonga_query_in_varchar, LEFTARG = varchar, RIGHTARG = varchar[] ); CREATE OPERATOR &@~| ( - PROCEDURE = pgroonga.query_in_varchar, + PROCEDURE = pgroonga_query_in_varchar, LEFTARG = varchar, RIGHTARG = varchar[] ); -CREATE FUNCTION pgroonga.prefix_in_text(text, text[]) +CREATE FUNCTION pgroonga_prefix_in_text(text, text[]) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_prefix_in_text' LANGUAGE C @@ -763,12 +825,12 @@ CREATE FUNCTION pgroonga.prefix_in_text(text, text[]) STRICT; CREATE OPERATOR &^| ( - PROCEDURE = pgroonga.prefix_in_text, + PROCEDURE = pgroonga_prefix_in_text, LEFTARG = text, RIGHTARG = text[] ); -CREATE FUNCTION pgroonga.prefix_in_text_array(text[], text[]) +CREATE FUNCTION pgroonga_prefix_in_text_array(text[], text[]) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_prefix_in_text_array' LANGUAGE C @@ -776,12 +838,38 @@ CREATE FUNCTION pgroonga.prefix_in_text_array(text[], text[]) STRICT; CREATE OPERATOR &^| ( - PROCEDURE = pgroonga.prefix_in_text_array, + PROCEDURE = pgroonga_prefix_in_text_array, LEFTARG = text[], RIGHTARG = text[] ); -CREATE FUNCTION pgroonga.prefix_rk_in_text(text, text[]) +CREATE FUNCTION pgroonga_prefix_in_varchar(varchar, varchar[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_in_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR &^| ( + PROCEDURE = pgroonga_prefix_in_varchar, + LEFTARG = varchar, + RIGHTARG = varchar[] +); + +CREATE FUNCTION pgroonga_prefix_in_varchar_array(varchar[], varchar[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_in_varchar_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR &^| ( + PROCEDURE = pgroonga_prefix_in_varchar_array, + LEFTARG = varchar[], + RIGHTARG = varchar[] +); + +CREATE FUNCTION pgroonga_prefix_rk_in_text(text, text[]) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_in_text' LANGUAGE C @@ -789,12 +877,12 @@ CREATE FUNCTION pgroonga.prefix_rk_in_text(text, text[]) STRICT; CREATE OPERATOR &^~| ( - PROCEDURE = pgroonga.prefix_rk_in_text, + PROCEDURE = pgroonga_prefix_rk_in_text, LEFTARG = text, RIGHTARG = text[] ); -CREATE FUNCTION pgroonga.prefix_rk_in_text_array(text[], text[]) +CREATE FUNCTION pgroonga_prefix_rk_in_text_array(text[], text[]) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_in_text_array' LANGUAGE C @@ -802,12 +890,38 @@ CREATE FUNCTION pgroonga.prefix_rk_in_text_array(text[], text[]) STRICT; CREATE OPERATOR &^~| ( - PROCEDURE = pgroonga.prefix_rk_in_text_array, + PROCEDURE = pgroonga_prefix_rk_in_text_array, LEFTARG = text[], RIGHTARG = text[] ); -CREATE FUNCTION pgroonga.regexp_text(text, text) +CREATE FUNCTION pgroonga_prefix_rk_in_varchar(varchar, varchar[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_in_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR &^~| ( + PROCEDURE = pgroonga_prefix_rk_in_varchar, + LEFTARG = varchar, + RIGHTARG = varchar[] +); + +CREATE FUNCTION pgroonga_prefix_rk_in_varchar_array(varchar[], varchar[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_in_varchar_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR &^~| ( + PROCEDURE = pgroonga_prefix_rk_in_varchar_array, + LEFTARG = varchar[], + RIGHTARG = varchar[] +); + +CREATE FUNCTION pgroonga_regexp_text(text, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_regexp_text' LANGUAGE C @@ -815,12 +929,12 @@ CREATE FUNCTION pgroonga.regexp_text(text, text) STRICT; CREATE OPERATOR &~ ( - PROCEDURE = pgroonga.regexp_text, + PROCEDURE = pgroonga_regexp_text, LEFTARG = text, RIGHTARG = text ); -CREATE FUNCTION pgroonga.regexp_varchar(varchar, varchar) +CREATE FUNCTION pgroonga_regexp_varchar(varchar, varchar) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_regexp_varchar' LANGUAGE C @@ -828,7 +942,7 @@ CREATE FUNCTION pgroonga.regexp_varchar(varchar, varchar) STRICT; CREATE OPERATOR &~ ( - PROCEDURE = pgroonga.regexp_varchar, + PROCEDURE = pgroonga_regexp_varchar, LEFTARG = varchar, RIGHTARG = varchar ); @@ -836,64 +950,64 @@ CREATE OPERATOR &~ ( DO LANGUAGE plpgsql $$ BEGIN EXECUTE 'DROP ACCESS METHOD IF EXISTS pgroonga CASCADE'; - CREATE FUNCTION pgroonga.handler(internal) + CREATE FUNCTION pgroonga_handler(internal) RETURNS index_am_handler AS 'MODULE_PATHNAME', 'pgroonga_handler' LANGUAGE C; EXECUTE 'CREATE ACCESS METHOD pgroonga ' || 'TYPE INDEX ' || - 'HANDLER pgroonga.handler'; + 'HANDLER pgroonga_handler'; EXCEPTION WHEN syntax_error THEN - CREATE FUNCTION pgroonga.insert(internal) + CREATE FUNCTION pgroonga_insert(internal) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_insert' LANGUAGE C; - CREATE FUNCTION pgroonga.beginscan(internal) + CREATE FUNCTION pgroonga_beginscan(internal) RETURNS internal AS 'MODULE_PATHNAME', 'pgroonga_beginscan' LANGUAGE C; - CREATE FUNCTION pgroonga.gettuple(internal) + CREATE FUNCTION pgroonga_gettuple(internal) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_gettuple' LANGUAGE C; - CREATE FUNCTION pgroonga.getbitmap(internal) + CREATE FUNCTION pgroonga_getbitmap(internal) RETURNS bigint AS 'MODULE_PATHNAME', 'pgroonga_getbitmap' LANGUAGE C; - CREATE FUNCTION pgroonga.rescan(internal) + CREATE FUNCTION pgroonga_rescan(internal) RETURNS void AS 'MODULE_PATHNAME', 'pgroonga_rescan' LANGUAGE C; - CREATE FUNCTION pgroonga.endscan(internal) + CREATE FUNCTION pgroonga_endscan(internal) RETURNS void AS 'MODULE_PATHNAME', 'pgroonga_endscan' LANGUAGE C; - CREATE FUNCTION pgroonga.build(internal) + CREATE FUNCTION pgroonga_build(internal) RETURNS internal AS 'MODULE_PATHNAME', 'pgroonga_build' LANGUAGE C; - CREATE FUNCTION pgroonga.buildempty(internal) + CREATE FUNCTION pgroonga_buildempty(internal) RETURNS internal AS 'MODULE_PATHNAME', 'pgroonga_buildempty' LANGUAGE C; - CREATE FUNCTION pgroonga.bulkdelete(internal) + CREATE FUNCTION pgroonga_bulkdelete(internal) RETURNS internal AS 'MODULE_PATHNAME', 'pgroonga_bulkdelete' LANGUAGE C; - CREATE FUNCTION pgroonga.vacuumcleanup(internal) + CREATE FUNCTION pgroonga_vacuumcleanup(internal) RETURNS internal AS 'MODULE_PATHNAME', 'pgroonga_vacuumcleanup' LANGUAGE C; - CREATE FUNCTION pgroonga.canreturn(internal) + CREATE FUNCTION pgroonga_canreturn(internal) RETURNS internal AS 'MODULE_PATHNAME', 'pgroonga_canreturn' LANGUAGE C; - CREATE FUNCTION pgroonga.costestimate(internal) + CREATE FUNCTION pgroonga_costestimate(internal) RETURNS internal AS 'MODULE_PATHNAME', 'pgroonga_costestimate' LANGUAGE C; - CREATE FUNCTION pgroonga.options(internal) + CREATE FUNCTION pgroonga_options(internal) RETURNS internal AS 'MODULE_PATHNAME', 'pgroonga_options' LANGUAGE C; @@ -915,28 +1029,28 @@ EXCEPTION true, -- amclusterable false, -- ampredlocks 0, -- amkeytype - 'pgroonga.insert', -- aminsert - 'pgroonga.beginscan', -- ambeginscan - 'pgroonga.gettuple', -- amgettuple - 'pgroonga.getbitmap', -- amgetbitmap - 'pgroonga.rescan', -- amrescan - 'pgroonga.endscan', -- amendscan + 'pgroonga_insert', -- aminsert + 'pgroonga_beginscan', -- ambeginscan + 'pgroonga_gettuple', -- amgettuple + 'pgroonga_getbitmap', -- amgetbitmap + 'pgroonga_rescan', -- amrescan + 'pgroonga_endscan', -- amendscan 0, -- ammarkpos, 0, -- amrestrpos, - 'pgroonga.build', -- ambuild - 'pgroonga.buildempty', -- ambuildempty - 'pgroonga.bulkdelete', -- ambulkdelete - 'pgroonga.vacuumcleanup', -- amvacuumcleanup - 'pgroonga.canreturn', -- amcanreturn - 'pgroonga.costestimate', -- amcostestimate - 'pgroonga.options' -- amoptions + 'pgroonga_build', -- ambuild + 'pgroonga_buildempty', -- ambuildempty + 'pgroonga_bulkdelete', -- ambulkdelete + 'pgroonga_vacuumcleanup', -- amvacuumcleanup + 'pgroonga_canreturn', -- amcanreturn + 'pgroonga_costestimate', -- amcostestimate + 'pgroonga_options' -- amoptions ); END; $$; /* v1 */ -CREATE OPERATOR CLASS pgroonga.text_full_text_search_ops DEFAULT FOR TYPE text +CREATE OPERATOR CLASS pgroonga_text_full_text_search_ops FOR TYPE text USING pgroonga AS OPERATOR 6 ~~, OPERATOR 7 ~~*, @@ -946,8 +1060,7 @@ CREATE OPERATOR CLASS pgroonga.text_full_text_search_ops DEFAULT FOR TYPE text OPERATOR 13 &?, -- For backward compatibility OPERATOR 28 &@~; -CREATE OPERATOR CLASS pgroonga.text_array_full_text_search_ops - DEFAULT +CREATE OPERATOR CLASS pgroonga_text_array_full_text_search_ops FOR TYPE text[] USING pgroonga AS OPERATOR 8 %% (text[], text), @@ -956,7 +1069,7 @@ CREATE OPERATOR CLASS pgroonga.text_array_full_text_search_ops OPERATOR 13 &? (text[], text), -- For backward compatibility OPERATOR 28 &@~ (text[], text); -CREATE OPERATOR CLASS pgroonga.varchar_full_text_search_ops FOR TYPE varchar +CREATE OPERATOR CLASS pgroonga_varchar_full_text_search_ops FOR TYPE varchar USING pgroonga AS OPERATOR 8 %%, OPERATOR 9 @@, @@ -964,7 +1077,7 @@ CREATE OPERATOR CLASS pgroonga.varchar_full_text_search_ops FOR TYPE varchar OPERATOR 13 &?, -- For backward compatibility OPERATOR 28 &@~; -CREATE OPERATOR CLASS pgroonga.varchar_ops DEFAULT FOR TYPE varchar +CREATE OPERATOR CLASS pgroonga_varchar_ops FOR TYPE varchar USING pgroonga AS OPERATOR 1 < (text, text), OPERATOR 2 <= (text, text), @@ -972,14 +1085,13 @@ CREATE OPERATOR CLASS pgroonga.varchar_ops DEFAULT FOR TYPE varchar OPERATOR 4 >= (text, text), OPERATOR 5 > (text, text); -CREATE OPERATOR CLASS pgroonga.varchar_array_ops - DEFAULT +CREATE OPERATOR CLASS pgroonga_varchar_array_ops FOR TYPE varchar[] USING pgroonga AS OPERATOR 8 %% (varchar[], varchar), OPERATOR 23 &> (varchar[], varchar); -CREATE OPERATOR CLASS pgroonga.bool_ops DEFAULT FOR TYPE bool +CREATE OPERATOR CLASS pgroonga_bool_ops DEFAULT FOR TYPE bool USING pgroonga AS OPERATOR 1 <, OPERATOR 2 <=, @@ -987,7 +1099,7 @@ CREATE OPERATOR CLASS pgroonga.bool_ops DEFAULT FOR TYPE bool OPERATOR 4 >=, OPERATOR 5 >; -CREATE OPERATOR CLASS pgroonga.int2_ops DEFAULT FOR TYPE int2 +CREATE OPERATOR CLASS pgroonga_int2_ops DEFAULT FOR TYPE int2 USING pgroonga AS OPERATOR 1 <, OPERATOR 2 <=, @@ -995,7 +1107,7 @@ CREATE OPERATOR CLASS pgroonga.int2_ops DEFAULT FOR TYPE int2 OPERATOR 4 >=, OPERATOR 5 >; -CREATE OPERATOR CLASS pgroonga.int4_ops DEFAULT FOR TYPE int4 +CREATE OPERATOR CLASS pgroonga_int4_ops DEFAULT FOR TYPE int4 USING pgroonga AS OPERATOR 1 <, OPERATOR 2 <=, @@ -1003,7 +1115,7 @@ CREATE OPERATOR CLASS pgroonga.int4_ops DEFAULT FOR TYPE int4 OPERATOR 4 >=, OPERATOR 5 >; -CREATE OPERATOR CLASS pgroonga.int8_ops DEFAULT FOR TYPE int8 +CREATE OPERATOR CLASS pgroonga_int8_ops DEFAULT FOR TYPE int8 USING pgroonga AS OPERATOR 1 <, OPERATOR 2 <=, @@ -1011,7 +1123,7 @@ CREATE OPERATOR CLASS pgroonga.int8_ops DEFAULT FOR TYPE int8 OPERATOR 4 >=, OPERATOR 5 >; -CREATE OPERATOR CLASS pgroonga.float4_ops DEFAULT FOR TYPE float4 +CREATE OPERATOR CLASS pgroonga_float4_ops DEFAULT FOR TYPE float4 USING pgroonga AS OPERATOR 1 <, OPERATOR 2 <=, @@ -1019,7 +1131,7 @@ CREATE OPERATOR CLASS pgroonga.float4_ops DEFAULT FOR TYPE float4 OPERATOR 4 >=, OPERATOR 5 >; -CREATE OPERATOR CLASS pgroonga.float8_ops DEFAULT FOR TYPE float8 +CREATE OPERATOR CLASS pgroonga_float8_ops DEFAULT FOR TYPE float8 USING pgroonga AS OPERATOR 1 <, OPERATOR 2 <=, @@ -1027,7 +1139,7 @@ CREATE OPERATOR CLASS pgroonga.float8_ops DEFAULT FOR TYPE float8 OPERATOR 4 >=, OPERATOR 5 >; -CREATE OPERATOR CLASS pgroonga.timestamp_ops DEFAULT FOR TYPE timestamp +CREATE OPERATOR CLASS pgroonga_timestamp_ops DEFAULT FOR TYPE timestamp USING pgroonga AS OPERATOR 1 <, OPERATOR 2 <=, @@ -1035,7 +1147,7 @@ CREATE OPERATOR CLASS pgroonga.timestamp_ops DEFAULT FOR TYPE timestamp OPERATOR 4 >=, OPERATOR 5 >; -CREATE OPERATOR CLASS pgroonga.timestamptz_ops DEFAULT FOR TYPE timestamptz +CREATE OPERATOR CLASS pgroonga_timestamptz_ops DEFAULT FOR TYPE timestamptz USING pgroonga AS OPERATOR 1 <, OPERATOR 2 <=, @@ -1050,7 +1162,7 @@ BEGIN WHERE typname = 'jsonb'; IF FOUND THEN - CREATE FUNCTION pgroonga.match_script_jsonb(jsonb, text) + CREATE FUNCTION pgroonga_match_script_jsonb(jsonb, text) RETURNS bool AS 'MODULE_PATHNAME', 'pgroonga_match_script_jsonb' LANGUAGE C @@ -1058,12 +1170,1128 @@ BEGIN STRICT; CREATE OPERATOR @@ ( + PROCEDURE = pgroonga_match_script_jsonb, + LEFTARG = jsonb, + RIGHTARG = text + ); + + CREATE OPERATOR CLASS pgroonga_jsonb_ops FOR TYPE jsonb + USING pgroonga AS + OPERATOR 9 @@ (jsonb, text), + OPERATOR 11 @>, + OPERATOR 12 &@ (jsonb, text), + OPERATOR 13 &? (jsonb, text), -- For backward compatibility + OPERATOR 15 &` (jsonb, text), + OPERATOR 28 &@~ (jsonb, text); + END IF; +END; +$$; + +CREATE OPERATOR CLASS pgroonga_text_regexp_ops FOR TYPE text + USING pgroonga AS + OPERATOR 6 ~~, + OPERATOR 7 ~~*, + OPERATOR 10 @~, + OPERATOR 22 &~; + +CREATE OPERATOR CLASS pgroonga_varchar_regexp_ops FOR TYPE varchar + USING pgroonga AS + OPERATOR 10 @~, + OPERATOR 22 &~; + +/* v2 */ +CREATE OPERATOR CLASS pgroonga_text_full_text_search_ops_v2 + DEFAULT FOR TYPE text + USING pgroonga AS + OPERATOR 6 ~~, + OPERATOR 7 ~~*, + OPERATOR 8 %%, -- For backward compatibility + OPERATOR 9 @@, -- For backward compatibility + OPERATOR 12 &@, + OPERATOR 13 &?, -- For backward compatibility + OPERATOR 14 &~?, -- For backward compatibility + OPERATOR 15 &`, + OPERATOR 18 &@| (text, text[]), + OPERATOR 19 &?| (text, text[]), -- For backward compatibility + OPERATOR 26 &@> (text, text[]), -- For backward compatibility + OPERATOR 27 &?> (text, text[]), -- For backward compatibility + OPERATOR 28 &@~, + OPERATOR 29 &@*, + OPERATOR 30 &@~| (text, text[]); + +CREATE OPERATOR CLASS pgroonga_text_array_full_text_search_ops_v2 + DEFAULT FOR TYPE text[] + USING pgroonga AS + OPERATOR 8 %% (text[], text), -- For backward compatibility + OPERATOR 9 @@ (text[], text), -- For backward compatibility + OPERATOR 12 &@ (text[], text), + OPERATOR 13 &? (text[], text), -- For backward compatibility + OPERATOR 14 &~? (text[], text), -- For backward compatibility + OPERATOR 15 &` (text[], text), + OPERATOR 18 &@| (text[], text[]), + OPERATOR 19 &?| (text[], text[]), -- For backward compatibility + OPERATOR 28 &@~ (text[], text), + OPERATOR 29 &@* (text[], text), + OPERATOR 30 &@~| (text[], text[]); + +CREATE OPERATOR CLASS pgroonga_text_term_search_ops_v2 FOR TYPE text + USING pgroonga AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >, + OPERATOR 16 &^, + OPERATOR 17 &^~, + OPERATOR 20 &^| (text, text[]), + OPERATOR 21 &^~| (text, text[]); + +CREATE OPERATOR CLASS pgroonga_text_array_term_search_ops_v2 FOR TYPE text[] + USING pgroonga AS + OPERATOR 16 &^ (text[], text), + OPERATOR 17 &^~ (text[], text), + OPERATOR 20 &^| (text[], text[]), + OPERATOR 21 &^~| (text[], text[]), + OPERATOR 24 &^> (text[], text), -- For backward compatibility + OPERATOR 25 &^~> (text[], text); -- For backward compatibility + +CREATE OPERATOR CLASS pgroonga_text_regexp_ops_v2 FOR TYPE text + USING pgroonga AS + OPERATOR 6 ~~, + OPERATOR 7 ~~*, + OPERATOR 10 @~, -- For backward compatibility + OPERATOR 22 &~; + +CREATE OPERATOR CLASS pgroonga_varchar_term_search_ops_v2 + DEFAULT FOR TYPE varchar + USING pgroonga AS + OPERATOR 1 < (text, text), + OPERATOR 2 <= (text, text), + OPERATOR 3 = (text, text), + OPERATOR 4 >= (text, text), + OPERATOR 5 > (text, text), + OPERATOR 16 &^, + OPERATOR 17 &^~, + OPERATOR 20 &^| (varchar, varchar[]), + OPERATOR 21 &^~| (varchar, varchar[]); + +CREATE OPERATOR CLASS pgroonga_varchar_full_text_search_ops_v2 + FOR TYPE varchar + USING pgroonga AS + OPERATOR 8 %%, -- For backward compatibility + OPERATOR 9 @@, -- For backward compatibility + OPERATOR 12 &@, + OPERATOR 13 &?, -- For backward compatibility + OPERATOR 14 &~?, -- For backward compatibility + OPERATOR 15 &`, + OPERATOR 18 &@| (varchar, varchar[]), + OPERATOR 19 &?| (varchar, varchar[]), -- For backward compatibility + OPERATOR 28 &@~, + OPERATOR 29 &@*, + OPERATOR 30 &@~| (varchar, varchar[]); + +CREATE OPERATOR CLASS pgroonga_varchar_array_term_search_ops_v2 + DEFAULT FOR TYPE varchar[] + USING pgroonga AS + OPERATOR 8 %% (varchar[], varchar), -- For backward compatibility + OPERATOR 16 &^ (varchar[], varchar), + OPERATOR 17 &^~ (varchar[], varchar), + OPERATOR 20 &^| (varchar[], varchar[]), + OPERATOR 21 &^~| (varchar[], varchar[]), + OPERATOR 23 &> (varchar[], varchar), + OPERATOR 24 &^> (varchar[], varchar), -- For backward compatibility + OPERATOR 25 &^~> (varchar[], varchar); -- For backward compatibility + +CREATE OPERATOR CLASS pgroonga_varchar_regexp_ops_v2 FOR TYPE varchar + USING pgroonga AS + OPERATOR 10 @~, -- For backward compatibility + OPERATOR 22 &~; + +DO LANGUAGE plpgsql $$ +BEGIN + PERFORM 1 + FROM pg_type + WHERE typname = 'jsonb'; + + IF FOUND THEN + CREATE OPERATOR CLASS pgroonga_jsonb_ops_v2 + DEFAULT FOR TYPE jsonb + USING pgroonga AS + OPERATOR 9 @@ (jsonb, text), -- For backward compatibility + OPERATOR 11 @>, + OPERATOR 12 &@ (jsonb, text), + OPERATOR 13 &? (jsonb, text), -- For backward compatibility + OPERATOR 15 &` (jsonb, text), + OPERATOR 28 &@~ (jsonb, text); + END IF; +END; +$$; + +-- For backward compatibility + +SET search_path = public; + +CREATE SCHEMA pgroonga; + +CREATE FUNCTION pgroonga.score("row" record) + RETURNS float8 + AS 'MODULE_PATHNAME', 'pgroonga_score' + LANGUAGE C + VOLATILE + STRICT; + +CREATE FUNCTION pgroonga.table_name(indexName cstring) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_table_name' + LANGUAGE C + STABLE + STRICT; + +CREATE FUNCTION pgroonga.command(groongaCommand text) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_command' + LANGUAGE C + VOLATILE + STRICT; + +CREATE FUNCTION pgroonga.command(groongaCommand text, arguments text[]) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_command' + LANGUAGE C + VOLATILE + STRICT; + +CREATE FUNCTION pgroonga.query_expand(tableName cstring, + termColumnName text, + synonymsColumnName text, + query text) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_query_expand' + LANGUAGE C + STABLE + STRICT; + +CREATE FUNCTION pgroonga.snippet_html(target text, keywords text[]) + RETURNS text[] + AS 'MODULE_PATHNAME', 'pgroonga_snippet_html' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.highlight_html(target text, keywords text[]) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_highlight_html' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.match_positions_byte(target text, keywords text[]) + RETURNS integer[2][] + AS 'MODULE_PATHNAME', 'pgroonga_match_positions_byte' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.match_positions_character(target text, keywords text[]) + RETURNS integer[2][] + AS 'MODULE_PATHNAME', 'pgroonga_match_positions_character' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.query_extract_keywords(query text) + RETURNS text[] + AS 'MODULE_PATHNAME', 'pgroonga_query_extract_keywords' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.flush(indexName cstring) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_flush' + LANGUAGE C + VOLATILE + STRICT; + +CREATE FUNCTION pgroonga.command_escape_value(value text) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_command_escape_value' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.query_escape(query text) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_query_escape' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.escape(value text) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_escape_string' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.escape(value text, special_characters text) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_escape_string' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.escape(value boolean) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_escape_boolean' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.escape(value int2) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_escape_int2' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.escape(value int4) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_escape_int4' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.escape(value int8) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_escape_int8' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.escape(value float4) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_escape_float8' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.escape(value float8) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_escape_float8' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.escape(value timestamp) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_escape_timestamptz' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.escape(value timestamptz) + RETURNS text + AS 'MODULE_PATHNAME', 'pgroonga_escape_timestamptz' + LANGUAGE C + IMMUTABLE + STRICT; + + +/* v1 */ +CREATE FUNCTION pgroonga.match_term(target text, term text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_term_text' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.match_term(target text[], term text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_term_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.match_term(target varchar, term varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_term_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.match_term(target varchar[], term varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_term_varchar_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.%% ( + PROCEDURE = pgroonga.match_term, + LEFTARG = text, + RIGHTARG = text +); + +CREATE OPERATOR pgroonga.%% ( + PROCEDURE = pgroonga.match_term, + LEFTARG = text[], + RIGHTARG = text +); + +CREATE OPERATOR pgroonga.%% ( + PROCEDURE = pgroonga.match_term, + LEFTARG = varchar, + RIGHTARG = varchar +); + +CREATE OPERATOR pgroonga.%% ( + PROCEDURE = pgroonga.match_term, + LEFTARG = varchar[], + RIGHTARG = varchar +); + + +CREATE FUNCTION pgroonga.match_query(text, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_query_text' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.match_query(text[], text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_query_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.match_query(varchar, varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_query_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.@@ ( + PROCEDURE = pgroonga.match_query, + LEFTARG = text, + RIGHTARG = text +); + +CREATE OPERATOR pgroonga.@@ ( + PROCEDURE = pgroonga.match_query, + LEFTARG = text[], + RIGHTARG = text +); + +CREATE OPERATOR pgroonga.@@ ( + PROCEDURE = pgroonga.match_query, + LEFTARG = varchar, + RIGHTARG = varchar +); + + +CREATE FUNCTION pgroonga.match_regexp(text, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_regexp_text' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE FUNCTION pgroonga.match_regexp(varchar, varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_regexp_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.@~ ( + PROCEDURE = pgroonga.match_regexp, + LEFTARG = text, + RIGHTARG = text +); + +CREATE OPERATOR pgroonga.@~ ( + PROCEDURE = pgroonga.match_regexp, + LEFTARG = varchar, + RIGHTARG = varchar +); + + +/* v2 */ +CREATE FUNCTION pgroonga.match_text(text, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_text' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&@ ( + PROCEDURE = pgroonga.match_text, + LEFTARG = text, + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.match_text_array(text[], text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&@ ( + PROCEDURE = pgroonga.match_text_array, + LEFTARG = text[], + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.match_varchar(varchar, varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&@ ( + PROCEDURE = pgroonga.match_varchar, + LEFTARG = varchar, + RIGHTARG = varchar +); + +CREATE FUNCTION pgroonga.contain_varchar_array(varchar[], varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_contain_varchar_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&> ( + PROCEDURE = pgroonga.contain_varchar_array, + LEFTARG = varchar[], + RIGHTARG = varchar +); + +DO LANGUAGE plpgsql $$ +BEGIN + PERFORM 1 + FROM pg_type + WHERE typname = 'jsonb'; + + IF FOUND THEN + CREATE FUNCTION pgroonga.match_jsonb(jsonb, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_jsonb' + LANGUAGE C + IMMUTABLE + STRICT; + + CREATE OPERATOR pgroonga.&@ ( + PROCEDURE = pgroonga.match_jsonb, + LEFTARG = jsonb, + RIGHTARG = text + ); + END IF; +END; +$$; + +CREATE FUNCTION pgroonga.query_text(text, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_query_text' + LANGUAGE C + IMMUTABLE + STRICT; + +-- Deprecated since 1.2.2. +CREATE OPERATOR pgroonga.&? ( + PROCEDURE = pgroonga.query_text, + LEFTARG = text, + RIGHTARG = text +); + +CREATE OPERATOR pgroonga.&@~ ( + PROCEDURE = pgroonga.query_text, + LEFTARG = text, + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.query_text_array(text[], text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_query_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +-- Deprecated since 1.2.2. +CREATE OPERATOR pgroonga.&? ( + PROCEDURE = pgroonga.query_text_array, + LEFTARG = text[], + RIGHTARG = text +); + +CREATE OPERATOR pgroonga.&@~ ( + PROCEDURE = pgroonga.query_text_array, + LEFTARG = text[], + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.query_varchar(varchar, varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_query_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +-- Deprecated since 1.2.2. +CREATE OPERATOR pgroonga.&? ( + PROCEDURE = pgroonga.query_varchar, + LEFTARG = varchar, + RIGHTARG = varchar +); + +CREATE OPERATOR pgroonga.&@~ ( + PROCEDURE = pgroonga.query_varchar, + LEFTARG = varchar, + RIGHTARG = varchar +); + +DO LANGUAGE plpgsql $$ +BEGIN + PERFORM 1 + FROM pg_type + WHERE typname = 'jsonb'; + + IF FOUND THEN + CREATE FUNCTION pgroonga.query_jsonb(jsonb, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_query_jsonb' + LANGUAGE C + IMMUTABLE + STRICT; + + -- Deprecated since 1.2.2. + CREATE OPERATOR pgroonga.&? ( + PROCEDURE = pgroonga.query_jsonb, + LEFTARG = jsonb, + RIGHTARG = text + ); + + CREATE OPERATOR pgroonga.&@~ ( + PROCEDURE = pgroonga.query_jsonb, + LEFTARG = jsonb, + RIGHTARG = text + ); + END IF; +END; +$$; + +CREATE FUNCTION pgroonga.similar_text(text, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_similar_text' + LANGUAGE C + IMMUTABLE + STRICT; + +-- Deprecated since 1.2.2. +CREATE OPERATOR pgroonga.&~? ( + PROCEDURE = pgroonga.similar_text, + LEFTARG = text, + RIGHTARG = text +); + +CREATE OPERATOR pgroonga.&@* ( + PROCEDURE = pgroonga.similar_text, + LEFTARG = text, + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.similar_text_array(text[], text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_similar_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +-- Deprecated since 1.2.2. +CREATE OPERATOR pgroonga.&~? ( + PROCEDURE = pgroonga.similar_text_array, + LEFTARG = text[], + RIGHTARG = text +); + +CREATE OPERATOR pgroonga.&@* ( + PROCEDURE = pgroonga.similar_text_array, + LEFTARG = text[], + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.similar_varchar(varchar, varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_similar_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +-- Deprecated since 1.2.2. +CREATE OPERATOR pgroonga.&~? ( + PROCEDURE = pgroonga.similar_varchar, + LEFTARG = varchar, + RIGHTARG = varchar +); + +CREATE OPERATOR pgroonga.&@* ( + PROCEDURE = pgroonga.similar_varchar, + LEFTARG = varchar, + RIGHTARG = varchar +); + +CREATE FUNCTION pgroonga.prefix_text(text, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_text' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&^ ( + PROCEDURE = pgroonga.prefix_text, + LEFTARG = text, + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.prefix_text_array(text[], text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&^ ( + PROCEDURE = pgroonga.prefix_text_array, + LEFTARG = text[], + RIGHTARG = text +); + +/* Deprecated since 1.2.1. */ +CREATE OPERATOR pgroonga.&^> ( + PROCEDURE = pgroonga.prefix_text_array, + LEFTARG = text[], + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.prefix_rk_text(text, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_text' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&^~ ( + PROCEDURE = pgroonga.prefix_rk_text, + LEFTARG = text, + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.prefix_rk_text_array(text[], text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&^~ ( + PROCEDURE = pgroonga.prefix_rk_text_array, + LEFTARG = text[], + RIGHTARG = text +); + +/* Deprecated since 1.2.1. */ +CREATE OPERATOR pgroonga.&^~> ( + PROCEDURE = pgroonga.prefix_rk_text_array, + LEFTARG = text[], + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.script_text(text, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_script_text' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&` ( + PROCEDURE = pgroonga.script_text, + LEFTARG = text, + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.script_text_array(text[], text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_script_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&` ( + PROCEDURE = pgroonga.script_text_array, + LEFTARG = text[], + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.script_varchar(varchar, varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_script_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&` ( + PROCEDURE = pgroonga.script_varchar, + LEFTARG = varchar, + RIGHTARG = varchar +); + +DO LANGUAGE plpgsql $$ +BEGIN + PERFORM 1 + FROM pg_type + WHERE typname = 'jsonb'; + + IF FOUND THEN + CREATE FUNCTION pgroonga.script_jsonb(jsonb, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_script_jsonb' + LANGUAGE C + IMMUTABLE + STRICT; + + CREATE OPERATOR pgroonga.&` ( + PROCEDURE = pgroonga.script_jsonb, + LEFTARG = jsonb, + RIGHTARG = text + ); + END IF; +END; +$$; + +CREATE FUNCTION pgroonga.match_in_text(text, text[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_in_text' + LANGUAGE C + IMMUTABLE + STRICT; + +/* Deprecated since 1.2.1. */ +CREATE OPERATOR pgroonga.&@> ( + PROCEDURE = pgroonga.match_in_text, + LEFTARG = text, + RIGHTARG = text[] +); + +CREATE OPERATOR pgroonga.&@| ( + PROCEDURE = pgroonga.match_in_text, + LEFTARG = text, + RIGHTARG = text[] +); + +CREATE FUNCTION pgroonga.match_in_text_array(text[], text[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_in_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&@| ( + PROCEDURE = pgroonga.match_in_text_array, + LEFTARG = text[], + RIGHTARG = text[] +); + +CREATE FUNCTION pgroonga.match_in_varchar(varchar, varchar[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_in_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&@| ( + PROCEDURE = pgroonga.match_in_varchar, + LEFTARG = varchar, + RIGHTARG = varchar[] +); + +CREATE FUNCTION pgroonga.query_in_text(text, text[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_query_in_text' + LANGUAGE C + IMMUTABLE + STRICT; + +/* Deprecated since 1.2.1. */ +CREATE OPERATOR pgroonga.&?> ( + PROCEDURE = pgroonga.query_in_text, + LEFTARG = text, + RIGHTARG = text[] +); + +-- Deprecated since 1.2.2. +CREATE OPERATOR pgroonga.&?| ( + PROCEDURE = pgroonga.query_in_text, + LEFTARG = text, + RIGHTARG = text[] +); + +CREATE OPERATOR pgroonga.&@~| ( + PROCEDURE = pgroonga.query_in_text, + LEFTARG = text, + RIGHTARG = text[] +); + +CREATE FUNCTION pgroonga.query_in_text_array(text[], text[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_query_in_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +-- Deprecated since 1.2.2. +CREATE OPERATOR pgroonga.&?| ( + PROCEDURE = pgroonga.query_in_text_array, + LEFTARG = text[], + RIGHTARG = text[] +); + +CREATE OPERATOR pgroonga.&@~| ( + PROCEDURE = pgroonga.query_in_text_array, + LEFTARG = text[], + RIGHTARG = text[] +); + +CREATE FUNCTION pgroonga.query_in_varchar(varchar, varchar[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_query_in_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +-- Deprecated since 1.2.2. +CREATE OPERATOR pgroonga.&?| ( + PROCEDURE = pgroonga.query_in_varchar, + LEFTARG = varchar, + RIGHTARG = varchar[] +); + +CREATE OPERATOR pgroonga.&@~| ( + PROCEDURE = pgroonga.query_in_varchar, + LEFTARG = varchar, + RIGHTARG = varchar[] +); + +CREATE FUNCTION pgroonga.prefix_in_text(text, text[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_in_text' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&^| ( + PROCEDURE = pgroonga.prefix_in_text, + LEFTARG = text, + RIGHTARG = text[] +); + +CREATE FUNCTION pgroonga.prefix_in_text_array(text[], text[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_in_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&^| ( + PROCEDURE = pgroonga.prefix_in_text_array, + LEFTARG = text[], + RIGHTARG = text[] +); + +CREATE FUNCTION pgroonga.prefix_rk_in_text(text, text[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_in_text' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&^~| ( + PROCEDURE = pgroonga.prefix_rk_in_text, + LEFTARG = text, + RIGHTARG = text[] +); + +CREATE FUNCTION pgroonga.prefix_rk_in_text_array(text[], text[]) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_prefix_rk_in_text_array' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&^~| ( + PROCEDURE = pgroonga.prefix_rk_in_text_array, + LEFTARG = text[], + RIGHTARG = text[] +); + +CREATE FUNCTION pgroonga.regexp_text(text, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_regexp_text' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&~ ( + PROCEDURE = pgroonga.regexp_text, + LEFTARG = text, + RIGHTARG = text +); + +CREATE FUNCTION pgroonga.regexp_varchar(varchar, varchar) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_regexp_varchar' + LANGUAGE C + IMMUTABLE + STRICT; + +CREATE OPERATOR pgroonga.&~ ( + PROCEDURE = pgroonga.regexp_varchar, + LEFTARG = varchar, + RIGHTARG = varchar +); + + +/* v1 */ +CREATE OPERATOR CLASS pgroonga.text_full_text_search_ops FOR TYPE text + USING pgroonga AS + OPERATOR 6 ~~, + OPERATOR 7 ~~*, + OPERATOR 8 %%, + OPERATOR 9 @@, + OPERATOR 12 &@, + OPERATOR 13 &?, -- For backward compatibility + OPERATOR 28 &@~; + +CREATE OPERATOR CLASS pgroonga.text_array_full_text_search_ops + FOR TYPE text[] + USING pgroonga AS + OPERATOR 8 %% (text[], text), + OPERATOR 9 @@ (text[], text), + OPERATOR 12 &@ (text[], text), + OPERATOR 13 &? (text[], text), -- For backward compatibility + OPERATOR 28 &@~ (text[], text); + +CREATE OPERATOR CLASS pgroonga.varchar_full_text_search_ops FOR TYPE varchar + USING pgroonga AS + OPERATOR 8 %%, + OPERATOR 9 @@, + OPERATOR 12 &@, + OPERATOR 13 &?, -- For backward compatibility + OPERATOR 28 &@~; + +CREATE OPERATOR CLASS pgroonga.varchar_ops FOR TYPE varchar + USING pgroonga AS + OPERATOR 1 < (text, text), + OPERATOR 2 <= (text, text), + OPERATOR 3 = (text, text), + OPERATOR 4 >= (text, text), + OPERATOR 5 > (text, text); + +CREATE OPERATOR CLASS pgroonga.varchar_array_ops + FOR TYPE varchar[] + USING pgroonga AS + OPERATOR 8 %% (varchar[], varchar), + OPERATOR 23 &> (varchar[], varchar); + +CREATE OPERATOR CLASS pgroonga.bool_ops FOR TYPE bool + USING pgroonga AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >; + +CREATE OPERATOR CLASS pgroonga.int2_ops FOR TYPE int2 + USING pgroonga AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >; + +CREATE OPERATOR CLASS pgroonga.int4_ops FOR TYPE int4 + USING pgroonga AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >; + +CREATE OPERATOR CLASS pgroonga.int8_ops FOR TYPE int8 + USING pgroonga AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >; + +CREATE OPERATOR CLASS pgroonga.float4_ops FOR TYPE float4 + USING pgroonga AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >; + +CREATE OPERATOR CLASS pgroonga.float8_ops FOR TYPE float8 + USING pgroonga AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >; + +CREATE OPERATOR CLASS pgroonga.timestamp_ops FOR TYPE timestamp + USING pgroonga AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >; + +CREATE OPERATOR CLASS pgroonga.timestamptz_ops FOR TYPE timestamptz + USING pgroonga AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >; + +DO LANGUAGE plpgsql $$ +BEGIN + PERFORM 1 + FROM pg_type + WHERE typname = 'jsonb'; + + IF FOUND THEN + CREATE FUNCTION pgroonga.match_script_jsonb(jsonb, text) + RETURNS bool + AS 'MODULE_PATHNAME', 'pgroonga_match_script_jsonb' + LANGUAGE C + IMMUTABLE + STRICT; + + CREATE OPERATOR pgroonga.@@ ( PROCEDURE = pgroonga.match_script_jsonb, LEFTARG = jsonb, RIGHTARG = text ); - CREATE OPERATOR CLASS pgroonga.jsonb_ops DEFAULT FOR TYPE jsonb + CREATE OPERATOR CLASS pgroonga.jsonb_ops FOR TYPE jsonb USING pgroonga AS OPERATOR 9 @@ (jsonb, text), OPERATOR 11 @>, Modified: pgroonga.control (+1 -1) =================================================================== --- pgroonga.control 2017-08-02 10:06:39 +0900 (75234ae) +++ pgroonga.control 2017-08-03 23:40:56 +0900 (ccedc7e) @@ -1,3 +1,3 @@ -default_version = '1.2.4' +default_version = '2.0.0' comment = 'Super fast and all languages supported full text search index based on Groonga' module_pathname = '$libdir/pgroonga' Modified: src/pgroonga.c (+150 -0) =================================================================== --- src/pgroonga.c 2017-08-02 10:06:39 +0900 (4d10a97) +++ src/pgroonga.c 2017-08-03 23:40:56 +0900 (5690abf) @@ -203,9 +203,13 @@ PGRN_FUNCTION_INFO_V1(pgroonga_script_text_array); PGRN_FUNCTION_INFO_V1(pgroonga_script_varchar); PGRN_FUNCTION_INFO_V1(pgroonga_prefix_text); PGRN_FUNCTION_INFO_V1(pgroonga_prefix_text_array); +PGRN_FUNCTION_INFO_V1(pgroonga_prefix_varchar); +PGRN_FUNCTION_INFO_V1(pgroonga_prefix_varchar_array); PGRN_FUNCTION_INFO_V1(pgroonga_prefix_contain_text_array); PGRN_FUNCTION_INFO_V1(pgroonga_prefix_rk_text); PGRN_FUNCTION_INFO_V1(pgroonga_prefix_rk_text_array); +PGRN_FUNCTION_INFO_V1(pgroonga_prefix_rk_varchar); +PGRN_FUNCTION_INFO_V1(pgroonga_prefix_rk_varchar_array); PGRN_FUNCTION_INFO_V1(pgroonga_prefix_rk_contain_text_array); PGRN_FUNCTION_INFO_V1(pgroonga_match_in_text); PGRN_FUNCTION_INFO_V1(pgroonga_match_contain_text); @@ -217,8 +221,12 @@ PGRN_FUNCTION_INFO_V1(pgroonga_query_in_text_array); PGRN_FUNCTION_INFO_V1(pgroonga_query_in_varchar); PGRN_FUNCTION_INFO_V1(pgroonga_prefix_in_text); PGRN_FUNCTION_INFO_V1(pgroonga_prefix_in_text_array); +PGRN_FUNCTION_INFO_V1(pgroonga_prefix_in_varchar); +PGRN_FUNCTION_INFO_V1(pgroonga_prefix_in_varchar_array); PGRN_FUNCTION_INFO_V1(pgroonga_prefix_rk_in_text); PGRN_FUNCTION_INFO_V1(pgroonga_prefix_rk_in_text_array); +PGRN_FUNCTION_INFO_V1(pgroonga_prefix_rk_in_varchar); +PGRN_FUNCTION_INFO_V1(pgroonga_prefix_rk_in_varchar_array); PGRN_FUNCTION_INFO_V1(pgroonga_regexp_text); PGRN_FUNCTION_INFO_V1(pgroonga_regexp_varchar); @@ -2229,6 +2237,42 @@ pgroonga_prefix_text_array(PG_FUNCTION_ARGS) } /** + * pgroonga.prefix_varchar(target varchar, prefix varchar) : bool + */ +Datum +pgroonga_prefix_varchar(PG_FUNCTION_ARGS) +{ + VarChar *target = PG_GETARG_VARCHAR_PP(0); + VarChar *prefix = PG_GETARG_VARCHAR_PP(1); + bool matched = false; + + matched = pgroonga_prefix_raw(VARDATA_ANY(target), + VARSIZE_ANY_EXHDR(target), + VARDATA_ANY(prefix), + VARSIZE_ANY_EXHDR(prefix)); + + PG_RETURN_BOOL(matched); +} + +/** + * pgroonga.prefix_varchar_array(targets varchar[], prefix varchar) : bool + */ +Datum +pgroonga_prefix_varchar_array(PG_FUNCTION_ARGS) +{ + ArrayType *targets = PG_GETARG_ARRAYTYPE_P(0); + VarChar *prefix = PG_GETARG_VARCHAR_PP(1); + bool matched; + + matched = + pgroonga_execute_binary_operator_string_array(targets, + VARDATA_ANY(prefix), + VARSIZE_ANY_EXHDR(prefix), + pgroonga_prefix_raw); + PG_RETURN_BOOL(matched); +} + +/** * pgroonga.prefix_contain_text_array(targets text[], prefix text) : bool * * It's deprecated since 1.2.1. Just for backward compatibility. @@ -2329,6 +2373,42 @@ pgroonga_prefix_rk_text_array(PG_FUNCTION_ARGS) } /** + * pgroonga.prefix_rk_varchar(target varchar, prefix varchar) : bool + */ +Datum +pgroonga_prefix_rk_varchar(PG_FUNCTION_ARGS) +{ + VarChar *target = PG_GETARG_VARCHAR_PP(0); + VarChar *prefix = PG_GETARG_VARCHAR_PP(1); + bool matched = false; + + matched = pgroonga_prefix_rk_raw(VARDATA_ANY(target), + VARSIZE_ANY_EXHDR(target), + VARDATA_ANY(prefix), + VARSIZE_ANY_EXHDR(prefix)); + + PG_RETURN_BOOL(matched); +} + +/** + * pgroonga.prefix_rk_varchar_array(targets varchar[], prefix varchar) : bool + */ +Datum +pgroonga_prefix_rk_varchar_array(PG_FUNCTION_ARGS) +{ + ArrayType *targets = PG_GETARG_ARRAYTYPE_P(0); + VarChar *prefix = PG_GETARG_VARCHAR_PP(1); + bool matched; + + matched = + pgroonga_execute_binary_operator_string_array(targets, + VARDATA_ANY(prefix), + VARSIZE_ANY_EXHDR(prefix), + pgroonga_prefix_rk_raw); + PG_RETURN_BOOL(matched); +} + +/** * pgroonga.prefix_rk_contain_text_array(targets text[], prefix text) : bool * * It's deprecated since 1.2.1. Just for backward compatibility. @@ -2503,6 +2583,41 @@ pgroonga_prefix_in_text_array(PG_FUNCTION_ARGS) } /** + * pgroonga.prefix_in_varchar(target varchar, prefixes varchar[]) : bool + */ +Datum +pgroonga_prefix_in_varchar(PG_FUNCTION_ARGS) +{ + VarChar *target = PG_GETARG_VARCHAR_PP(0); + ArrayType *prefixes = PG_GETARG_ARRAYTYPE_P(1); + bool matched = false; + + matched = + pgroonga_execute_binary_operator_in_string(VARDATA_ANY(target), + VARSIZE_ANY_EXHDR(target), + prefixes, + pgroonga_prefix_raw); + PG_RETURN_BOOL(matched); +} + +/** + * pgroonga.prefix_in_varchar_array(targets varchar[], prefixes varchar[]) : bool + */ +Datum +pgroonga_prefix_in_varchar_array(PG_FUNCTION_ARGS) +{ + ArrayType *targets = PG_GETARG_ARRAYTYPE_P(0); + ArrayType *prefixes = PG_GETARG_ARRAYTYPE_P(1); + bool matched; + + matched = + pgroonga_execute_binary_operator_in_string_array(targets, + prefixes, + pgroonga_prefix_raw); + PG_RETURN_BOOL(matched); +} + +/** * pgroonga.prefix_rk_in_text(target text, prefixes text[]) : bool */ Datum @@ -2538,6 +2653,41 @@ pgroonga_prefix_rk_in_text_array(PG_FUNCTION_ARGS) } /** + * pgroonga.prefix_rk_in_varchar(target varchar, prefixes varchar[]) : bool + */ +Datum +pgroonga_prefix_rk_in_varchar(PG_FUNCTION_ARGS) +{ + VarChar *target = PG_GETARG_VARCHAR_PP(0); + ArrayType *prefixes = PG_GETARG_ARRAYTYPE_P(1); + bool matched = false; + + matched = + pgroonga_execute_binary_operator_in_string(VARDATA_ANY(target), + VARSIZE_ANY_EXHDR(target), + prefixes, + pgroonga_prefix_rk_raw); + PG_RETURN_BOOL(matched); +} + +/** + * pgroonga.prefix_rk_in_varchar_array(targets varchar[], prefixes varchar[]) : bool + */ +Datum +pgroonga_prefix_rk_in_varchar_array(PG_FUNCTION_ARGS) +{ + ArrayType *targets = PG_GETARG_ARRAYTYPE_P(0); + ArrayType *prefixes = PG_GETARG_ARRAYTYPE_P(1); + bool matched; + + matched = + pgroonga_execute_binary_operator_in_string_array(targets, + prefixes, + pgroonga_prefix_rk_raw); + PG_RETURN_BOOL(matched); +} + +/** * pgroonga.regexp_text(target text, pattern text) : bool */ Datum