[Groonga-commit] pgroonga/pgroonga at def7c85 [master] Change operator to &> from &@ for "vector @ scalar" in Groonga

Back to archive index

Kouhei Sutou null+****@clear*****
Thu Jun 1 22:11:25 JST 2017


Kouhei Sutou	2017-06-01 22:11:25 +0900 (Thu, 01 Jun 2017)

  New Revision: def7c85024924c20810d4a23ad4a1f65d4d206eb
  https://github.com/pgroonga/pgroonga/commit/def7c85024924c20810d4a23ad4a1f65d4d206eb

  Message:
    Change operator to &> from &@ for "vector @ scalar" in Groonga
    
    Because ">" is used for "contain" condition in PostgreSQL such as "@>"
    for JSONB.

  Modified files:
    data/pgroonga--1.2.0--1.2.1.sql
    data/pgroonga.sql
    src/pgroonga.c
    src/pgroonga.h
  Renamed files:
    expected/term-search/varchar-array/compatibility/v1/contain-v2/bitmapscan.out
      (from expected/term-search/varchar-array/compatibility/v1/match-v2/bitmapscan.out)
    expected/term-search/varchar-array/compatibility/v1/contain-v2/indexscan.out
      (from expected/term-search/varchar-array/compatibility/v1/match-v2/indexscan.out)
    expected/term-search/varchar-array/compatibility/v1/contain-v2/seqscan.out
      (from expected/term-search/varchar-array/compatibility/v1/match-v2/seqscan.out)
    expected/term-search/varchar-array/compatibility/v2/contain-v1/bitmapscan.out
      (from expected/term-search/varchar-array/compatibility/v2/match-v1/bitmapscan.out)
    expected/term-search/varchar-array/compatibility/v2/contain-v1/indexscan.out
      (from expected/term-search/varchar-array/compatibility/v2/match-v1/indexscan.out)
    expected/term-search/varchar-array/compatibility/v2/contain-v1/seqscan.out
      (from expected/term-search/varchar-array/compatibility/v2/match-v1/seqscan.out)
    expected/term-search/varchar-array/contain-v2/bitmapscan.out
      (from expected/term-search/varchar-array/match-v2/bitmapscan.out)
    expected/term-search/varchar-array/contain-v2/indexscan.out
      (from expected/term-search/varchar-array/match-v2/indexscan.out)
    expected/term-search/varchar-array/contain-v2/seqscan.out
      (from expected/term-search/varchar-array/match-v2/seqscan.out)
    expected/term-search/varchar-array/contain/bitmapscan.out
      (from expected/term-search/varchar-array/match/bitmapscan.out)
    expected/term-search/varchar-array/contain/indexscan.out
      (from expected/term-search/varchar-array/match/indexscan.out)
    expected/term-search/varchar-array/contain/seqscan.out
      (from expected/term-search/varchar-array/match/seqscan.out)
    sql/term-search/varchar-array/compatibility/v1/contain-v2/bitmapscan.sql
      (from sql/term-search/varchar-array/compatibility/v1/match-v2/bitmapscan.sql)
    sql/term-search/varchar-array/compatibility/v1/contain-v2/indexscan.sql
      (from sql/term-search/varchar-array/compatibility/v1/match-v2/indexscan.sql)
    sql/term-search/varchar-array/compatibility/v1/contain-v2/seqscan.sql
      (from sql/term-search/varchar-array/compatibility/v1/match-v2/seqscan.sql)
    sql/term-search/varchar-array/compatibility/v2/contain-v1/bitmapscan.sql
      (from sql/term-search/varchar-array/compatibility/v2/match-v1/bitmapscan.sql)
    sql/term-search/varchar-array/compatibility/v2/contain-v1/indexscan.sql
      (from sql/term-search/varchar-array/compatibility/v2/match-v1/indexscan.sql)
    sql/term-search/varchar-array/compatibility/v2/contain-v1/seqscan.sql
      (from sql/term-search/varchar-array/compatibility/v2/match-v1/seqscan.sql)
    sql/term-search/varchar-array/contain-v2/bitmapscan.sql
      (from sql/term-search/varchar-array/match-v2/bitmapscan.sql)
    sql/term-search/varchar-array/contain-v2/indexscan.sql
      (from sql/term-search/varchar-array/match-v2/indexscan.sql)
    sql/term-search/varchar-array/contain-v2/seqscan.sql
      (from sql/term-search/varchar-array/match-v2/seqscan.sql)
    sql/term-search/varchar-array/contain/bitmapscan.sql
      (from sql/term-search/varchar-array/match/bitmapscan.sql)
    sql/term-search/varchar-array/contain/indexscan.sql
      (from sql/term-search/varchar-array/match/indexscan.sql)
    sql/term-search/varchar-array/contain/seqscan.sql
      (from sql/term-search/varchar-array/match/seqscan.sql)

  Modified: data/pgroonga--1.2.0--1.2.1.sql (+7 -7)
===================================================================
--- data/pgroonga--1.2.0--1.2.1.sql    2017-05-29 16:01:36 +0900 (1c12a02)
+++ data/pgroonga--1.2.0--1.2.1.sql    2017-06-01 22:11:25 +0900 (dedf9c6)
@@ -299,7 +299,7 @@ BEGIN
 	SELECT amstrategies FROM pg_am LIMIT 0;
 EXCEPTION
 	WHEN syntax_error THEN
-		UPDATE pg_am SET amstrategies = 22
+		UPDATE pg_am SET amstrategies = 23
 		 WHERE amname = 'pgroonga';
 END;
 $$;
@@ -343,15 +343,15 @@ CREATE OPERATOR CLASS pgroonga.varchar_regexp_ops_v2 FOR TYPE varchar
 		OPERATOR 22 &~;
 
 -- Add pgroonga.varchar_array_term_search_ops_v2.
-CREATE FUNCTION pgroonga.match_varchar_array(varchar[], varchar)
+CREATE FUNCTION pgroonga.contain_varchar_array(varchar[], varchar)
 	RETURNS bool
-	AS 'MODULE_PATHNAME', 'pgroonga_match_varchar_array'
+	AS 'MODULE_PATHNAME', 'pgroonga_contain_varchar_array'
 	LANGUAGE C
 	IMMUTABLE
 	STRICT;
 
-CREATE OPERATOR &@ (
-	PROCEDURE = pgroonga.match_varchar_array,
+CREATE OPERATOR &> (
+	PROCEDURE = pgroonga.contain_varchar_array,
 	LEFTARG = varchar[],
 	RIGHTARG = varchar
 );
@@ -360,12 +360,12 @@ CREATE OPERATOR CLASS pgroonga.varchar_array_term_search_ops_v2
 	FOR TYPE varchar[]
 	USING pgroonga AS
 		OPERATOR 8 %% (varchar[], varchar), -- For backward compatibility
-		OPERATOR 12 &@ (varchar[], varchar);
+		OPERATOR 23 &> (varchar[], varchar);
 
 -- Add v2 compatible operators to full text search ops for varchar
 ALTER OPERATOR FAMILY pgroonga.varchar_array_ops USING pgroonga
 	ADD
-		OPERATOR 12 &@ (varchar[], varchar);
+		OPERATOR 23 &> (varchar[], varchar);
 
 -- Rename "pgroonga_match_jsonb" to "pgroonga_match_script_jsonb"
 DO LANGUAGE plpgsql $$

  Modified: data/pgroonga.sql (+7 -7)
===================================================================
--- data/pgroonga.sql    2017-05-29 16:01:36 +0900 (2c22d8e)
+++ data/pgroonga.sql    2017-06-01 22:11:25 +0900 (54f30d1)
@@ -318,15 +318,15 @@ CREATE OPERATOR &@ (
 	RIGHTARG = varchar
 );
 
-CREATE FUNCTION pgroonga.match_varchar_array(varchar[], varchar)
+CREATE FUNCTION pgroonga.contain_varchar_array(varchar[], varchar)
 	RETURNS bool
-	AS 'MODULE_PATHNAME', 'pgroonga_match_varchar_array'
+	AS 'MODULE_PATHNAME', 'pgroonga_contain_varchar_array'
 	LANGUAGE C
 	IMMUTABLE
 	STRICT;
 
-CREATE OPERATOR &@ (
-	PROCEDURE = pgroonga.match_varchar_array,
+CREATE OPERATOR &> (
+	PROCEDURE = pgroonga.contain_varchar_array,
 	LEFTARG = varchar[],
 	RIGHTARG = varchar
 );
@@ -793,7 +793,7 @@ EXCEPTION
 		DELETE FROM pg_am WHERE amname = 'pgroonga';
 		INSERT INTO pg_am VALUES(
 			'pgroonga',	-- amname
-			22,		-- amstrategies
+			23,		-- amstrategies
 			0,		-- amsupport
 			true,		-- amcanorder
 			true,		-- amcanorderbyop
@@ -866,7 +866,7 @@ CREATE OPERATOR CLASS pgroonga.varchar_array_ops
 	FOR TYPE varchar[]
 	USING pgroonga AS
 		OPERATOR 8 %% (varchar[], varchar),
-		OPERATOR 12 &@ (varchar[], varchar);
+		OPERATOR 23 &> (varchar[], varchar);
 
 CREATE OPERATOR CLASS pgroonga.bool_ops DEFAULT FOR TYPE bool
 	USING pgroonga AS
@@ -1038,7 +1038,7 @@ CREATE OPERATOR CLASS pgroonga.varchar_array_term_search_ops_v2
 	FOR TYPE varchar[]
 	USING pgroonga AS
 		OPERATOR 8 %% (varchar[], varchar), -- For backward compatibility
-		OPERATOR 12 &@ (varchar[], varchar);
+		OPERATOR 23 &> (varchar[], varchar);
 
 CREATE OPERATOR CLASS pgroonga.varchar_regexp_ops_v2 FOR TYPE varchar
 	USING pgroonga AS

  Renamed: expected/term-search/varchar-array/compatibility/v1/contain-v2/bitmapscan.out (+4 -4) 83%
===================================================================
--- expected/term-search/varchar-array/compatibility/v1/match-v2/bitmapscan.out    2017-05-29 16:01:36 +0900 (19ad7d5)
+++ expected/term-search/varchar-array/compatibility/v1/contain-v2/bitmapscan.out    2017-06-01 22:11:25 +0900 (cd6f849)
@@ -13,18 +13,18 @@ SET enable_bitmapscan = on;
 EXPLAIN (COSTS OFF)
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
                          QUERY PLAN                         
 ------------------------------------------------------------
  Bitmap Heap Scan on memos
-   Recheck Cond: (tags &@ 'Groonga'::character varying)
+   Recheck Cond: (tags &> 'Groonga'::character varying)
    ->  Bitmap Index Scan on pgroonga_memos_index
-         Index Cond: (tags &@ 'Groonga'::character varying)
+         Index Cond: (tags &> 'Groonga'::character varying)
 (4 rows)
 
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
   title   |         tags         
 ----------+----------------------
  Groonga  | {Groonga}

  Renamed: expected/term-search/varchar-array/compatibility/v1/contain-v2/indexscan.out (+3 -3) 88%
===================================================================
--- expected/term-search/varchar-array/compatibility/v1/match-v2/indexscan.out    2017-05-29 16:01:36 +0900 (4672067)
+++ expected/term-search/varchar-array/compatibility/v1/contain-v2/indexscan.out    2017-06-01 22:11:25 +0900 (82fb82e)
@@ -13,16 +13,16 @@ SET enable_bitmapscan = off;
 EXPLAIN (COSTS OFF)
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
                       QUERY PLAN                      
 ------------------------------------------------------
  Index Scan using pgroonga_memos_index on memos
-   Index Cond: (tags &@ 'Groonga'::character varying)
+   Index Cond: (tags &> 'Groonga'::character varying)
 (2 rows)
 
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
   title   |         tags         
 ----------+----------------------
  Groonga  | {Groonga}

  Renamed: expected/term-search/varchar-array/compatibility/v1/contain-v2/seqscan.out (+1 -1) 95%
===================================================================
--- expected/term-search/varchar-array/compatibility/v1/match-v2/seqscan.out    2017-05-29 16:01:36 +0900 (4ff2f3b)
+++ expected/term-search/varchar-array/compatibility/v1/contain-v2/seqscan.out    2017-06-01 22:11:25 +0900 (badcdc3)
@@ -12,7 +12,7 @@ SET enable_indexscan = off;
 SET enable_bitmapscan = off;
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
   title   |         tags         
 ----------+----------------------
  Groonga  | {Groonga}

  Renamed: expected/term-search/varchar-array/compatibility/v2/contain-v1/bitmapscan.out (+0 -0) 100%
===================================================================

  Renamed: expected/term-search/varchar-array/compatibility/v2/contain-v1/indexscan.out (+0 -0) 100%
===================================================================

  Renamed: expected/term-search/varchar-array/compatibility/v2/contain-v1/seqscan.out (+0 -0) 100%
===================================================================

  Renamed: expected/term-search/varchar-array/contain-v2/bitmapscan.out (+4 -4) 84%
===================================================================
--- expected/term-search/varchar-array/match-v2/bitmapscan.out    2017-05-29 16:01:36 +0900 (79d9827)
+++ expected/term-search/varchar-array/contain-v2/bitmapscan.out    2017-06-01 22:11:25 +0900 (99e6ee0)
@@ -13,18 +13,18 @@ SET enable_bitmapscan = on;
 EXPLAIN (COSTS OFF)
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
                          QUERY PLAN                         
 ------------------------------------------------------------
  Bitmap Heap Scan on memos
-   Recheck Cond: (tags &@ 'Groonga'::character varying)
+   Recheck Cond: (tags &> 'Groonga'::character varying)
    ->  Bitmap Index Scan on pgroonga_memos_index
-         Index Cond: (tags &@ 'Groonga'::character varying)
+         Index Cond: (tags &> 'Groonga'::character varying)
 (4 rows)
 
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
   title   |         tags         
 ----------+----------------------
  Groonga  | {Groonga}

  Renamed: expected/term-search/varchar-array/contain-v2/indexscan.out (+3 -3) 88%
===================================================================
--- expected/term-search/varchar-array/match-v2/indexscan.out    2017-05-29 16:01:36 +0900 (1a6c246)
+++ expected/term-search/varchar-array/contain-v2/indexscan.out    2017-06-01 22:11:25 +0900 (c9d1827)
@@ -13,16 +13,16 @@ SET enable_bitmapscan = off;
 EXPLAIN (COSTS OFF)
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
                       QUERY PLAN                      
 ------------------------------------------------------
  Index Scan using pgroonga_memos_index on memos
-   Index Cond: (tags &@ 'Groonga'::character varying)
+   Index Cond: (tags &> 'Groonga'::character varying)
 (2 rows)
 
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
   title   |         tags         
 ----------+----------------------
  Groonga  | {Groonga}

  Renamed: expected/term-search/varchar-array/contain-v2/seqscan.out (+1 -1) 96%
===================================================================
--- expected/term-search/varchar-array/match-v2/seqscan.out    2017-05-29 16:01:36 +0900 (5eba35d)
+++ expected/term-search/varchar-array/contain-v2/seqscan.out    2017-06-01 22:11:25 +0900 (ee56d25)
@@ -12,7 +12,7 @@ SET enable_indexscan = off;
 SET enable_bitmapscan = off;
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
   title   |         tags         
 ----------+----------------------
  Groonga  | {Groonga}

  Renamed: expected/term-search/varchar-array/contain/bitmapscan.out (+0 -0) 100%
===================================================================

  Renamed: expected/term-search/varchar-array/contain/indexscan.out (+0 -0) 100%
===================================================================

  Renamed: expected/term-search/varchar-array/contain/seqscan.out (+0 -0) 100%
===================================================================

  Renamed: sql/term-search/varchar-array/compatibility/v1/contain-v2/bitmapscan.sql (+2 -2) 91%
===================================================================
--- sql/term-search/varchar-array/compatibility/v1/match-v2/bitmapscan.sql    2017-05-29 16:01:36 +0900 (7f95ae0)
+++ sql/term-search/varchar-array/compatibility/v1/contain-v2/bitmapscan.sql    2017-06-01 22:11:25 +0900 (3cc0d93)
@@ -17,10 +17,10 @@ SET enable_bitmapscan = on;
 EXPLAIN (COSTS OFF)
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
 
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
 
 DROP TABLE memos;

  Renamed: sql/term-search/varchar-array/compatibility/v1/contain-v2/indexscan.sql (+2 -2) 91%
===================================================================
--- sql/term-search/varchar-array/compatibility/v1/match-v2/indexscan.sql    2017-05-29 16:01:36 +0900 (dd9f486)
+++ sql/term-search/varchar-array/compatibility/v1/contain-v2/indexscan.sql    2017-06-01 22:11:25 +0900 (d78e699)
@@ -17,10 +17,10 @@ SET enable_bitmapscan = off;
 EXPLAIN (COSTS OFF)
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
 
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
 
 DROP TABLE memos;

  Renamed: sql/term-search/varchar-array/compatibility/v1/contain-v2/seqscan.sql (+1 -1) 94%
===================================================================
--- sql/term-search/varchar-array/compatibility/v1/match-v2/seqscan.sql    2017-05-29 16:01:36 +0900 (cd344c8)
+++ sql/term-search/varchar-array/compatibility/v1/contain-v2/seqscan.sql    2017-06-01 22:11:25 +0900 (8bc1784)
@@ -16,6 +16,6 @@ SET enable_bitmapscan = off;
 
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
 
 DROP TABLE memos;

  Renamed: sql/term-search/varchar-array/compatibility/v2/contain-v1/bitmapscan.sql (+0 -0) 100%
===================================================================

  Renamed: sql/term-search/varchar-array/compatibility/v2/contain-v1/indexscan.sql (+0 -0) 100%
===================================================================

  Renamed: sql/term-search/varchar-array/compatibility/v2/contain-v1/seqscan.sql (+0 -0) 100%
===================================================================

  Renamed: sql/term-search/varchar-array/contain-v2/bitmapscan.sql (+2 -2) 91%
===================================================================
--- sql/term-search/varchar-array/match-v2/bitmapscan.sql    2017-05-29 16:01:36 +0900 (0ee0d4a)
+++ sql/term-search/varchar-array/contain-v2/bitmapscan.sql    2017-06-01 22:11:25 +0900 (4b3b3aa)
@@ -17,10 +17,10 @@ SET enable_bitmapscan = on;
 EXPLAIN (COSTS OFF)
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
 
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
 
 DROP TABLE memos;

  Renamed: sql/term-search/varchar-array/contain-v2/indexscan.sql (+2 -2) 91%
===================================================================
--- sql/term-search/varchar-array/match-v2/indexscan.sql    2017-05-29 16:01:36 +0900 (4934c47)
+++ sql/term-search/varchar-array/contain-v2/indexscan.sql    2017-06-01 22:11:25 +0900 (2bd2ef0)
@@ -17,10 +17,10 @@ SET enable_bitmapscan = off;
 EXPLAIN (COSTS OFF)
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
 
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
 
 DROP TABLE memos;

  Renamed: sql/term-search/varchar-array/contain-v2/seqscan.sql (+1 -1) 95%
===================================================================
--- sql/term-search/varchar-array/match-v2/seqscan.sql    2017-05-29 16:01:36 +0900 (c6a0a83)
+++ sql/term-search/varchar-array/contain-v2/seqscan.sql    2017-06-01 22:11:25 +0900 (cbbcc60)
@@ -16,6 +16,6 @@ SET enable_bitmapscan = off;
 
 SELECT title, tags
   FROM memos
- WHERE tags &@ 'Groonga';
+ WHERE tags &> 'Groonga';
 
 DROP TABLE memos;

  Renamed: sql/term-search/varchar-array/contain/bitmapscan.sql (+0 -0) 100%
===================================================================

  Renamed: sql/term-search/varchar-array/contain/indexscan.sql (+0 -0) 100%
===================================================================

  Renamed: sql/term-search/varchar-array/contain/seqscan.sql (+0 -0) 100%
===================================================================

  Modified: src/pgroonga.c (+32 -7)
===================================================================
--- src/pgroonga.c    2017-05-29 16:01:36 +0900 (64defe7)
+++ src/pgroonga.c    2017-06-01 22:11:25 +0900 (b68bab4)
@@ -188,7 +188,7 @@ PGRN_FUNCTION_INFO_V1(pgroonga_match_regexp_varchar);
 PGRN_FUNCTION_INFO_V1(pgroonga_match_text);
 PGRN_FUNCTION_INFO_V1(pgroonga_match_text_array);
 PGRN_FUNCTION_INFO_V1(pgroonga_match_varchar);
-PGRN_FUNCTION_INFO_V1(pgroonga_match_varchar_array);
+PGRN_FUNCTION_INFO_V1(pgroonga_contain_varchar_array);
 PGRN_FUNCTION_INFO_V1(pgroonga_query_text);
 PGRN_FUNCTION_INFO_V1(pgroonga_query_text_array);
 PGRN_FUNCTION_INFO_V1(pgroonga_query_varchar);
@@ -1595,6 +1595,28 @@ pgroonga_match_term_text_array(PG_FUNCTION_ARGS)
 	PG_RETURN_BOOL(matched);
 }
 
+static bool
+pgroonga_equal_raw(const char *text1, unsigned int text1Size,
+				   const char *text2, unsigned int text2Size)
+{
+	grn_bool matched;
+	grn_obj text1Buffer;
+	grn_obj text2Buffer;
+
+	GRN_TEXT_INIT(&text1Buffer, GRN_OBJ_DO_SHALLOW_COPY);
+	GRN_TEXT_SET(ctx, &text1Buffer, text1, text1Size);
+
+	GRN_TEXT_INIT(&text2Buffer, GRN_OBJ_DO_SHALLOW_COPY);
+	GRN_TEXT_SET(ctx, &text2Buffer, text2, text2Size);
+
+	matched = grn_operator_exec_match(ctx, &text1Buffer, &text2Buffer);
+
+	GRN_OBJ_FIN(ctx, &text1Buffer);
+	GRN_OBJ_FIN(ctx, &text2Buffer);
+
+	return matched;
+}
+
 /**
  * pgroonga.match_term(target varchar, term varchar) : bool
  */
@@ -1606,8 +1628,8 @@ pgroonga_match_term_varchar(PG_FUNCTION_ARGS)
 	grn_bool matched;
 
 	matched =
-		pgroonga_match_term_raw(VARDATA_ANY(target), VARSIZE_ANY_EXHDR(target),
-								VARDATA_ANY(term), VARSIZE_ANY_EXHDR(term));
+		pgroonga_equal_raw(VARDATA_ANY(target), VARSIZE_ANY_EXHDR(target),
+						   VARDATA_ANY(term), VARSIZE_ANY_EXHDR(term));
 	PG_RETURN_BOOL(matched);
 }
 
@@ -1625,7 +1647,7 @@ pgroonga_match_term_varchar_array(PG_FUNCTION_ARGS)
 		pgroonga_execute_binary_operator_string_array(targets,
 													  VARDATA_ANY(term),
 													  VARSIZE_ANY_EXHDR(term),
-													  pgroonga_match_term_raw);
+													  pgroonga_equal_raw);
 	PG_RETURN_BOOL(matched);
 }
 
@@ -1853,10 +1875,10 @@ pgroonga_match_varchar(PG_FUNCTION_ARGS)
 }
 
 /**
- * pgroonga.match_varchar_array(target varchar[], term varchar) : bool
+ * pgroonga.contain_varchar_array(target varchar[], term varchar) : bool
  */
 Datum
-pgroonga_match_varchar_array(PG_FUNCTION_ARGS)
+pgroonga_contain_varchar_array(PG_FUNCTION_ARGS)
 {
 	ArrayType *targets = PG_GETARG_ARRAYTYPE_P(0);
 	VarChar *term = PG_GETARG_VARCHAR_PP(1);
@@ -1866,7 +1888,7 @@ pgroonga_match_varchar_array(PG_FUNCTION_ARGS)
 		pgroonga_execute_binary_operator_string_array(targets,
 													  VARDATA_ANY(term),
 													  VARSIZE_ANY_EXHDR(term),
-													  pgroonga_match_term_raw);
+													  pgroonga_equal_raw);
 	PG_RETURN_BOOL(matched);
 }
 
@@ -3366,6 +3388,9 @@ PGrnSearchBuildCondition(Relation index,
 	case PGrnMatchInStrategyV2Number:
 		operator = GRN_OP_MATCH;
 		break;
+	case PGrnContainStrategyV2Number:
+		operator = GRN_OP_MATCH;
+		break;
 	default:
 		ereport(ERROR,
 				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),

  Modified: src/pgroonga.h (+3 -2)
===================================================================
--- src/pgroonga.h    2017-05-29 16:01:36 +0900 (7272bee)
+++ src/pgroonga.h    2017-06-01 22:11:25 +0900 (695fca8)
@@ -34,9 +34,10 @@
 #define PGrnQueryInStrategyV2Number		19	/* operator &?> (query in Groonga) */
 #define PGrnPrefixInStrategyV2Number	20	/* operator &^>  (prefix search) */
 #define PGrnPrefixRKInStrategyV2Number	21	/* operator &^~> (prefix RK search) */
-#define PGrnRegexpStrategyV2Number		22	/* operator &~ (@~ in Groonga)  */
+#define PGrnRegexpStrategyV2Number		22	/* operator &~ (@~ in Groonga) */
+#define PGrnContainStrategyV2Number		23	/* operator &> (@ for vector in Groonga) */
 
-#define PGRN_N_STRATEGIES PGrnRegexpStrategyV2Number
+#define PGRN_N_STRATEGIES PGrnContainStrategyV2Number
 
 /* file and table names */
 #define PGrnLogPathDefault				"pgroonga.log"
-------------- next part --------------
HTML����������������������������...
Download 



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