[Groonga-commit] pgroonga/pgroonga at 71c6b06 [master] Support upgrade from 1.2.3 to 2.0.0

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Aug 15 23:41:53 JST 2017


Kouhei Sutou	2017-08-15 23:41:53 +0900 (Tue, 15 Aug 2017)

  New Revision: 71c6b0653efd465f75ca430236aea26cd5c6e7a6
  https://github.com/pgroonga/pgroonga/commit/71c6b0653efd465f75ca430236aea26cd5c6e7a6

  Message:
    Support upgrade from 1.2.3 to 2.0.0

  Modified files:
    data/pgroonga--1.2.3--2.0.0.sql

  Modified: data/pgroonga--1.2.3--2.0.0.sql (+1413 -0)
===================================================================
--- data/pgroonga--1.2.3--2.0.0.sql    2017-08-15 22:35:29 +0900 (e69de29)
+++ data/pgroonga--1.2.3--2.0.0.sql    2017-08-15 23:41:53 +0900 (ce83ba6)
@@ -0,0 +1,1413 @@
+-- Move old operators to pgroonga schema
+DO LANGUAGE plpgsql $$
+BEGIN
+	IF current_schema() = 'public' THEN
+		ALTER OPERATOR public.%% (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.%% (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.%% (varchar, varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.%% (varchar[], varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.@@ (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.@@ (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.@@ (varchar, varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.@~ (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.@~ (varchar, varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@ (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@ (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@ (varchar, varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&> (varchar[], varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&? (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@~ (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&? (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@~ (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&? (varchar, varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@~ (varchar, varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&~? (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@* (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&~? (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@* (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&~? (varchar, varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@* (varchar, varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&^ (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&^ (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&^> (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&^~ (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&^~ (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&^~> (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&` (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&` (text[], text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&` (varchar, varchar) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@> (text, text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@| (text, text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@| (text[], text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@| (varchar, varchar[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&?> (text, text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&?| (text, text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@~| (text, text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&?| (text[], text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@~| (text[], text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&?| (varchar, varchar[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&@~| (varchar, varchar[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&^| (text, text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&^| (text[], text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&^~| (text, text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&^~| (text[], text[]) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&~ (text, text) SET SCHEMA pgroonga;
+		ALTER OPERATOR public.&~ (varchar, varchar) SET SCHEMA pgroonga;
+
+		PERFORM 1
+			FROM pg_type
+			WHERE typname = 'jsonb';
+		IF FOUND THEN
+			ALTER OPERATOR public.&@ (jsonb, text) SET SCHEMA pgroonga;
+			ALTER OPERATOR public.&? (jsonb, text) SET SCHEMA pgroonga;
+			ALTER OPERATOR public.&@~ (jsonb, text) SET SCHEMA pgroonga;
+			ALTER OPERATOR public.&` (jsonb, text) SET SCHEMA pgroonga;
+			ALTER OPERATOR public.@@ (jsonb, text) SET SCHEMA pgroonga;
+		END IF;
+	END IF;
+END;
+$$;
+
+-- New API
+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 %% (
+	PROCEDURE = pgroonga_match_term,
+	LEFTARG = text,
+	RIGHTARG = text
+);
+
+CREATE OPERATOR %% (
+	PROCEDURE = pgroonga_match_term,
+	LEFTARG = text[],
+	RIGHTARG = text
+);
+
+CREATE OPERATOR %% (
+	PROCEDURE = pgroonga_match_term,
+	LEFTARG = varchar,
+	RIGHTARG = varchar
+);
+
+CREATE OPERATOR %% (
+	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 @@ (
+	PROCEDURE = pgroonga_match_query,
+	LEFTARG = text,
+	RIGHTARG = text
+);
+
+CREATE OPERATOR @@ (
+	PROCEDURE = pgroonga_match_query,
+	LEFTARG = text[],
+	RIGHTARG = text
+);
+
+CREATE OPERATOR @@ (
+	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 @~ (
+	PROCEDURE = pgroonga_match_regexp,
+	LEFTARG = text,
+	RIGHTARG = text
+);
+
+CREATE OPERATOR @~ (
+	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 &@ (
+	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 &@ (
+	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 &@ (
+	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 &> (
+	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 &@ (
+			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 &? (
+	PROCEDURE = pgroonga_query_text,
+	LEFTARG = text,
+	RIGHTARG = text
+);
+
+CREATE OPERATOR &@~ (
+	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 &? (
+	PROCEDURE = pgroonga_query_text_array,
+	LEFTARG = text[],
+	RIGHTARG = text
+);
+
+CREATE OPERATOR &@~ (
+	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 &? (
+	PROCEDURE = pgroonga_query_varchar,
+	LEFTARG = varchar,
+	RIGHTARG = varchar
+);
+
+CREATE OPERATOR &@~ (
+	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 &? (
+			PROCEDURE = pgroonga_query_jsonb,
+			LEFTARG = jsonb,
+			RIGHTARG = text
+		);
+
+		CREATE OPERATOR &@~ (
+			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 &~? (
+	PROCEDURE = pgroonga_similar_text,
+	LEFTARG = text,
+	RIGHTARG = text
+);
+
+CREATE OPERATOR &@* (
+	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 &~? (
+	PROCEDURE = pgroonga_similar_text_array,
+	LEFTARG = text[],
+	RIGHTARG = text
+);
+
+CREATE OPERATOR &@* (
+	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 &~? (
+	PROCEDURE = pgroonga_similar_varchar,
+	LEFTARG = varchar,
+	RIGHTARG = varchar
+);
+
+CREATE OPERATOR &@* (
+	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 &^ (
+	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 &^ (
+	PROCEDURE = pgroonga_prefix_text_array,
+	LEFTARG = text[],
+	RIGHTARG = text
+);
+
+/* Deprecated since 1.2.1. */
+CREATE OPERATOR &^> (
+	PROCEDURE = pgroonga_prefix_text_array,
+	LEFTARG = text[],
+	RIGHTARG = 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
+	IMMUTABLE
+	STRICT;
+
+CREATE OPERATOR &^~ (
+	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 &^~ (
+	PROCEDURE = pgroonga_prefix_rk_text_array,
+	LEFTARG = text[],
+	RIGHTARG = text
+);
+
+/* Deprecated since 1.2.1. */
+CREATE OPERATOR &^~> (
+	PROCEDURE = pgroonga_prefix_rk_text_array,
+	LEFTARG = text[],
+	RIGHTARG = 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
+	IMMUTABLE
+	STRICT;
+
+CREATE OPERATOR &` (
+	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 &` (
+	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 &` (
+	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 &` (
+			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 &@> (
+	PROCEDURE = pgroonga_match_in_text,
+	LEFTARG = text,
+	RIGHTARG = text[]
+);
+
+CREATE OPERATOR &@| (
+	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 &@| (
+	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 &@| (
+	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 &?> (
+	PROCEDURE = pgroonga_query_in_text,
+	LEFTARG = text,
+	RIGHTARG = text[]
+);
+
+-- Deprecated since 1.2.2.
+CREATE OPERATOR &?| (
+	PROCEDURE = pgroonga_query_in_text,
+	LEFTARG = text,
+	RIGHTARG = text[]
+);
+
+CREATE OPERATOR &@~| (
+	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 &?| (
+	PROCEDURE = pgroonga_query_in_text_array,
+	LEFTARG = text[],
+	RIGHTARG = text[]
+);
+
+CREATE OPERATOR &@~| (
+	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 &?| (
+	PROCEDURE = pgroonga_query_in_varchar,
+	LEFTARG = varchar,
+	RIGHTARG = varchar[]
+);
+
+CREATE OPERATOR &@~| (
+	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 &^| (
+	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 &^| (
+	PROCEDURE = pgroonga_prefix_in_text_array,
+	LEFTARG = text[],
+	RIGHTARG = 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
+	IMMUTABLE
+	STRICT;
+
+CREATE OPERATOR &^~| (
+	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 &^~| (
+	PROCEDURE = pgroonga_prefix_rk_in_text_array,
+	LEFTARG = text[],
+	RIGHTARG = 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
+	IMMUTABLE
+	STRICT;
+
+CREATE OPERATOR &~ (
+	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 &~ (
+	PROCEDURE = pgroonga_regexp_varchar,
+	LEFTARG = varchar,
+	RIGHTARG = varchar
+);
+
+DO LANGUAGE plpgsql $$
+BEGIN
+	EXECUTE 'DROP ACCESS METHOD IF EXISTS pgroonga';
+	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';
+EXCEPTION
+	WHEN dependent_objects_still_exist THEN
+		CREATE FUNCTION pgroonga_handler(internal)
+			RETURNS index_am_handler
+			AS 'MODULE_PATHNAME', 'pgroonga_handler'
+			LANGUAGE C;
+		UPDATE pg_catalog.pg_am
+		   SET amhandler = 'pgroonga_handler'
+		 WHERE amname = 'pgroonga';
+		UPDATE pg_catalog.pg_opclass
+		   SET opcdefault = FALSE
+		 WHERE opcnamespace =
+			 (SELECT oid
+			    FROM pg_catalog.pg_namespace
+			   WHERE nspname = 'pgroonga');
+	WHEN syntax_error THEN
+		CREATE FUNCTION pgroonga_insert(internal)
+			RETURNS bool
+			AS 'MODULE_PATHNAME', 'pgroonga_insert'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_beginscan(internal)
+			RETURNS internal
+			AS 'MODULE_PATHNAME', 'pgroonga_beginscan'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_gettuple(internal)
+			RETURNS bool
+			AS 'MODULE_PATHNAME', 'pgroonga_gettuple'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_getbitmap(internal)
+			RETURNS bigint
+			AS 'MODULE_PATHNAME', 'pgroonga_getbitmap'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_rescan(internal)
+			RETURNS void
+			AS 'MODULE_PATHNAME', 'pgroonga_rescan'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_endscan(internal)
+			RETURNS void
+			AS 'MODULE_PATHNAME', 'pgroonga_endscan'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_build(internal)
+			RETURNS internal
+			AS 'MODULE_PATHNAME', 'pgroonga_build'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_buildempty(internal)
+			RETURNS internal
+			AS 'MODULE_PATHNAME', 'pgroonga_buildempty'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_bulkdelete(internal)
+			RETURNS internal
+			AS 'MODULE_PATHNAME', 'pgroonga_bulkdelete'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_vacuumcleanup(internal)
+			RETURNS internal
+			AS 'MODULE_PATHNAME', 'pgroonga_vacuumcleanup'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_canreturn(internal)
+			RETURNS internal
+			AS 'MODULE_PATHNAME', 'pgroonga_canreturn'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_costestimate(internal)
+			RETURNS internal
+			AS 'MODULE_PATHNAME', 'pgroonga_costestimate'
+			LANGUAGE C;
+		CREATE FUNCTION pgroonga_options(internal)
+			RETURNS internal
+			AS 'MODULE_PATHNAME', 'pgroonga_options'
+			LANGUAGE C;
+
+		DELETE FROM pg_am WHERE amname = 'pgroonga';
+		INSERT INTO pg_am VALUES(
+			'pgroonga',	-- amname
+			30,		-- amstrategies
+			0,		-- amsupport
+			true,		-- amcanorder
+			true,		-- amcanorderbyop
+			true,		-- amcanbackward
+			true,		-- amcanunique
+			true,		-- amcanmulticol
+			true,		-- amoptionalkey
+			true,		-- amsearcharray
+			false,		-- amsearchnulls
+			false,		-- amstorage
+			true,		-- amclusterable
+			false,		-- ampredlocks
+			0,		-- amkeytype
+			'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
+		);
+END;
+$$;
+
+
+/* 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 DEFAULT FOR TYPE bool
+	USING pgroonga AS
+		OPERATOR 1 <,
+		OPERATOR 2 <=,
+		OPERATOR 3 =,
+		OPERATOR 4 >=,
+		OPERATOR 5 >;
+
+CREATE OPERATOR CLASS pgroonga_int2_ops DEFAULT FOR TYPE int2
+	USING pgroonga AS
+		OPERATOR 1 <,
+		OPERATOR 2 <=,
+		OPERATOR 3 =,
+		OPERATOR 4 >=,
+		OPERATOR 5 >;
+
+CREATE OPERATOR CLASS pgroonga_int4_ops DEFAULT FOR TYPE int4
+	USING pgroonga AS
+		OPERATOR 1 <,
+		OPERATOR 2 <=,
+		OPERATOR 3 =,
+		OPERATOR 4 >=,
+		OPERATOR 5 >;
+
+CREATE OPERATOR CLASS pgroonga_int8_ops DEFAULT FOR TYPE int8
+	USING pgroonga AS
+		OPERATOR 1 <,
+		OPERATOR 2 <=,
+		OPERATOR 3 =,
+		OPERATOR 4 >=,
+		OPERATOR 5 >;
+
+CREATE OPERATOR CLASS pgroonga_float4_ops DEFAULT FOR TYPE float4
+	USING pgroonga AS
+		OPERATOR 1 <,
+		OPERATOR 2 <=,
+		OPERATOR 3 =,
+		OPERATOR 4 >=,
+		OPERATOR 5 >;
+
+CREATE OPERATOR CLASS pgroonga_float8_ops DEFAULT FOR TYPE float8
+	USING pgroonga AS
+		OPERATOR 1 <,
+		OPERATOR 2 <=,
+		OPERATOR 3 =,
+		OPERATOR 4 >=,
+		OPERATOR 5 >;
+
+CREATE OPERATOR CLASS pgroonga_timestamp_ops DEFAULT FOR TYPE timestamp
+	USING pgroonga AS
+		OPERATOR 1 <,
+		OPERATOR 2 <=,
+		OPERATOR 3 =,
+		OPERATOR 4 >=,
+		OPERATOR 5 >;
+
+CREATE OPERATOR CLASS pgroonga_timestamptz_ops DEFAULT 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 @@ (
+			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;
+$$;
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index