[Groonga-commit] pgroonga/pgroonga at 3ebb84f [master] Stop to create "pgroonga" schema

Back to archive index

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




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