[Groonga-commit] pgroonga/pgroonga at e46145d [master] v2: support LIKE and ILIKE

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Feb 9 16:12:48 JST 2016


Kouhei Sutou	2016-02-09 16:12:48 +0900 (Tue, 09 Feb 2016)

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

  Message:
    v2: support LIKE and ILIKE

  Added files:
    expected/full-text-search/text/single/ilike_v2/begin-of-text/bitmapscan.out
    expected/full-text-search/text/single/ilike_v2/begin-of-text/indexscan.out
    expected/full-text-search/text/single/ilike_v2/begin-of-text/seqscan.out
    expected/full-text-search/text/single/ilike_v2/end-of-text/bitmapscan.out
    expected/full-text-search/text/single/ilike_v2/end-of-text/indexscan.out
    expected/full-text-search/text/single/ilike_v2/end-of-text/seqscan.out
    expected/full-text-search/text/single/ilike_v2/partial/bitmapscan.out
    expected/full-text-search/text/single/ilike_v2/partial/indexscan.out
    expected/full-text-search/text/single/ilike_v2/partial/seqscan.out
    expected/full-text-search/text/single/ilike_v2/underscore/bitmapscan.out
    expected/full-text-search/text/single/ilike_v2/underscore/indexscan.out
    expected/full-text-search/text/single/ilike_v2/underscore/seqscan.out
    expected/full-text-search/text/single/like_v2/begin-of-text/bitmapscan.out
    expected/full-text-search/text/single/like_v2/begin-of-text/indexscan.out
    expected/full-text-search/text/single/like_v2/begin-of-text/seqscan.out
    expected/full-text-search/text/single/like_v2/end-of-text/bitmapscan.out
    expected/full-text-search/text/single/like_v2/end-of-text/indexscan.out
    expected/full-text-search/text/single/like_v2/end-of-text/seqscan.out
    expected/full-text-search/text/single/like_v2/partial/bitmapscan.out
    expected/full-text-search/text/single/like_v2/partial/indexscan.out
    expected/full-text-search/text/single/like_v2/partial/seqscan.out
    expected/full-text-search/text/single/like_v2/underscore/bitmapscan.out
    expected/full-text-search/text/single/like_v2/underscore/indexscan.out
    expected/full-text-search/text/single/like_v2/underscore/seqscan.out
    sql/full-text-search/text/single/ilike_v2/begin-of-text/bitmapscan.sql
    sql/full-text-search/text/single/ilike_v2/begin-of-text/indexscan.sql
    sql/full-text-search/text/single/ilike_v2/begin-of-text/seqscan.sql
    sql/full-text-search/text/single/ilike_v2/end-of-text/bitmapscan.sql
    sql/full-text-search/text/single/ilike_v2/end-of-text/indexscan.sql
    sql/full-text-search/text/single/ilike_v2/end-of-text/seqscan.sql
    sql/full-text-search/text/single/ilike_v2/partial/bitmapscan.sql
    sql/full-text-search/text/single/ilike_v2/partial/indexscan.sql
    sql/full-text-search/text/single/ilike_v2/partial/seqscan.sql
    sql/full-text-search/text/single/ilike_v2/underscore/bitmapscan.sql
    sql/full-text-search/text/single/ilike_v2/underscore/indexscan.sql
    sql/full-text-search/text/single/ilike_v2/underscore/seqscan.sql
    sql/full-text-search/text/single/like_v2/begin-of-text/bitmapscan.sql
    sql/full-text-search/text/single/like_v2/begin-of-text/indexscan.sql
    sql/full-text-search/text/single/like_v2/begin-of-text/seqscan.sql
    sql/full-text-search/text/single/like_v2/end-of-text/bitmapscan.sql
    sql/full-text-search/text/single/like_v2/end-of-text/indexscan.sql
    sql/full-text-search/text/single/like_v2/end-of-text/seqscan.sql
    sql/full-text-search/text/single/like_v2/partial/bitmapscan.sql
    sql/full-text-search/text/single/like_v2/partial/indexscan.sql
    sql/full-text-search/text/single/like_v2/partial/seqscan.sql
    sql/full-text-search/text/single/like_v2/underscore/bitmapscan.sql
    sql/full-text-search/text/single/like_v2/underscore/indexscan.sql
    sql/full-text-search/text/single/like_v2/underscore/seqscan.sql
  Modified files:
    pgroonga.sql

  Added: expected/full-text-search/text/single/ilike_v2/begin-of-text/bitmapscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/begin-of-text/bitmapscan.out    2016-02-09 16:12:48 +0900 (43378a5)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE 'POSTGRESQL%';
+ id |        content         
+----+------------------------
+  1 | PostgreSQL is a RDBMS.
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/begin-of-text/indexscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/begin-of-text/indexscan.out    2016-02-09 16:12:48 +0900 (e713a6c)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE 'POSTGRESQL%';
+ id |        content         
+----+------------------------
+  1 | PostgreSQL is a RDBMS.
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/begin-of-text/seqscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/begin-of-text/seqscan.out    2016-02-09 16:12:48 +0900 (e47b92a)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE 'POSTGRESQL%';
+ id |        content         
+----+------------------------
+  1 | PostgreSQL is a RDBMS.
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/end-of-text/bitmapscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/end-of-text/bitmapscan.out    2016-02-09 16:12:48 +0900 (792acfb)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA';
+ id |                       content                        
+----+------------------------------------------------------
+  3 | PGroonga is a PostgreSQL extension that uses Groonga
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/end-of-text/indexscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/end-of-text/indexscan.out    2016-02-09 16:12:48 +0900 (8e34918)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA';
+ id |                       content                        
+----+------------------------------------------------------
+  3 | PGroonga is a PostgreSQL extension that uses Groonga
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/end-of-text/seqscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/end-of-text/seqscan.out    2016-02-09 16:12:48 +0900 (7dccd81)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA';
+ id |                       content                        
+----+------------------------------------------------------
+  3 | PGroonga is a PostgreSQL extension that uses Groonga
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/partial/bitmapscan.out (+24 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/partial/bitmapscan.out    2016-02-09 16:12:48 +0900 (fe04e8e)
@@ -0,0 +1,24 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA%';
+ id |                        content                        
+----+-------------------------------------------------------
+  2 | Groonga is fast full text search engine.
+  3 | PGroonga is a PostgreSQL extension that uses Groonga.
+  4 | groonga command is provided.
+(3 rows)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/partial/indexscan.out (+24 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/partial/indexscan.out    2016-02-09 16:12:48 +0900 (c70f6e5)
@@ -0,0 +1,24 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA%';
+ id |                        content                        
+----+-------------------------------------------------------
+  2 | Groonga is fast full text search engine.
+  3 | PGroonga is a PostgreSQL extension that uses Groonga.
+  4 | groonga command is provided.
+(3 rows)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/partial/seqscan.out (+24 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/partial/seqscan.out    2016-02-09 16:12:48 +0900 (77d80b9)
@@ -0,0 +1,24 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA%';
+ id |                        content                        
+----+-------------------------------------------------------
+  2 | Groonga is fast full text search engine.
+  3 | PGroonga is a PostgreSQL extension that uses Groonga.
+  4 | groonga command is provided.
+(3 rows)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/underscore/bitmapscan.out (+21 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/underscore/bitmapscan.out    2016-02-09 16:12:48 +0900 (1dd8060)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '_';
+ id | content 
+----+---------
+  2 | a
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/underscore/indexscan.out (+21 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/underscore/indexscan.out    2016-02-09 16:12:48 +0900 (15d9f46)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '_';
+ id | content 
+----+---------
+  2 | a
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/ilike_v2/underscore/seqscan.out (+21 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/ilike_v2/underscore/seqscan.out    2016-02-09 16:12:48 +0900 (52c99ec)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '_';
+ id | content 
+----+---------
+  2 | a
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/begin-of-text/bitmapscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/begin-of-text/bitmapscan.out    2016-02-09 16:12:48 +0900 (4536ff8)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE 'PostgreSQL%';
+ id |        content         
+----+------------------------
+  1 | PostgreSQL is a RDBMS.
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/begin-of-text/indexscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/begin-of-text/indexscan.out    2016-02-09 16:12:48 +0900 (c4dbfc1)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE 'PostgreSQL%';
+ id |        content         
+----+------------------------
+  1 | PostgreSQL is a RDBMS.
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/begin-of-text/seqscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/begin-of-text/seqscan.out    2016-02-09 16:12:48 +0900 (9c97110)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE 'PostgreSQL%';
+ id |        content         
+----+------------------------
+  1 | PostgreSQL is a RDBMS.
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/end-of-text/bitmapscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/end-of-text/bitmapscan.out    2016-02-09 16:12:48 +0900 (9b95fed)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%Groonga';
+ id |                       content                        
+----+------------------------------------------------------
+  3 | PGroonga is a PostgreSQL extension that uses Groonga
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/end-of-text/indexscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/end-of-text/indexscan.out    2016-02-09 16:12:48 +0900 (cd86fae)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%Groonga';
+ id |                       content                        
+----+------------------------------------------------------
+  3 | PGroonga is a PostgreSQL extension that uses Groonga
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/end-of-text/seqscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/end-of-text/seqscan.out    2016-02-09 16:12:48 +0900 (8a80828)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%Groonga';
+ id |                       content                        
+----+------------------------------------------------------
+  3 | PGroonga is a PostgreSQL extension that uses Groonga
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/partial/bitmapscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/partial/bitmapscan.out    2016-02-09 16:12:48 +0900 (2274cfe)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%groonga%';
+ id |           content            
+----+------------------------------
+  4 | groonga command is provided.
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/partial/indexscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/partial/indexscan.out    2016-02-09 16:12:48 +0900 (71dd58a)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%groonga%';
+ id |           content            
+----+------------------------------
+  4 | groonga command is provided.
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/partial/seqscan.out (+22 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/partial/seqscan.out    2016-02-09 16:12:48 +0900 (c79b982)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%groonga%';
+ id |           content            
+----+------------------------------
+  4 | groonga command is provided.
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/underscore/bitmapscan.out (+21 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/underscore/bitmapscan.out    2016-02-09 16:12:48 +0900 (f225bb8)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '_';
+ id | content 
+----+---------
+  2 | a
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/underscore/indexscan.out (+21 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/underscore/indexscan.out    2016-02-09 16:12:48 +0900 (a8b2b05)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '_';
+ id | content 
+----+---------
+  2 | a
+(1 row)
+
+DROP TABLE memos;

  Added: expected/full-text-search/text/single/like_v2/underscore/seqscan.out (+21 -0) 100644
===================================================================
--- /dev/null
+++ expected/full-text-search/text/single/like_v2/underscore/seqscan.out    2016-02-09 16:12:48 +0900 (3ad6ffe)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '_';
+ id | content 
+----+---------
+  2 | a
+(1 row)
+
+DROP TABLE memos;

  Modified: pgroonga.sql (+2 -0)
===================================================================
--- pgroonga.sql    2016-02-07 15:35:32 +0900 (511f806)
+++ pgroonga.sql    2016-02-09 16:12:48 +0900 (291564f)
@@ -403,5 +403,7 @@ CREATE OPERATOR &@> (
 
 CREATE OPERATOR CLASS pgroonga.text_full_text_search_ops_v2 FOR TYPE text
 	USING pgroonga AS
+		OPERATOR 6 pg_catalog.~~,
+		OPERATOR 7 pg_catalog.~~*,
 		OPERATOR 12 &?> (text, text[]),
 		OPERATOR 13 &@> (text, text[]);

  Added: sql/full-text-search/text/single/ilike_v2/begin-of-text/bitmapscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/begin-of-text/bitmapscan.sql    2016-02-09 16:12:48 +0900 (bd258c2)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE 'POSTGRESQL%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/begin-of-text/indexscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/begin-of-text/indexscan.sql    2016-02-09 16:12:48 +0900 (977551d)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE 'POSTGRESQL%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/begin-of-text/seqscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/begin-of-text/seqscan.sql    2016-02-09 16:12:48 +0900 (3eaae7e)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE 'POSTGRESQL%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/end-of-text/bitmapscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/end-of-text/bitmapscan.sql    2016-02-09 16:12:48 +0900 (bc85a2d)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/end-of-text/indexscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/end-of-text/indexscan.sql    2016-02-09 16:12:48 +0900 (f638c58)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/end-of-text/seqscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/end-of-text/seqscan.sql    2016-02-09 16:12:48 +0900 (2db093c)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/partial/bitmapscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/partial/bitmapscan.sql    2016-02-09 16:12:48 +0900 (9609063)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/partial/indexscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/partial/indexscan.sql    2016-02-09 16:12:48 +0900 (e38daf6)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/partial/seqscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/partial/seqscan.sql    2016-02-09 16:12:48 +0900 (f45171e)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '%GROONGA%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/underscore/bitmapscan.sql (+21 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/underscore/bitmapscan.sql    2016-02-09 16:12:48 +0900 (51dbe7e)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '_';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/underscore/indexscan.sql (+21 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/underscore/indexscan.sql    2016-02-09 16:12:48 +0900 (70a0187)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '_';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/ilike_v2/underscore/seqscan.sql (+21 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/ilike_v2/underscore/seqscan.sql    2016-02-09 16:12:48 +0900 (00d2048)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content ILIKE '_';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/begin-of-text/bitmapscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/begin-of-text/bitmapscan.sql    2016-02-09 16:12:48 +0900 (a754f12)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE 'PostgreSQL%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/begin-of-text/indexscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/begin-of-text/indexscan.sql    2016-02-09 16:12:48 +0900 (a24db43)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE 'PostgreSQL%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/begin-of-text/seqscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/begin-of-text/seqscan.sql    2016-02-09 16:12:48 +0900 (c96eee2)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE 'PostgreSQL%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/end-of-text/bitmapscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/end-of-text/bitmapscan.sql    2016-02-09 16:12:48 +0900 (1474fea)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%Groonga';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/end-of-text/indexscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/end-of-text/indexscan.sql    2016-02-09 16:12:48 +0900 (3a576e6)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%Groonga';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/end-of-text/seqscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/end-of-text/seqscan.sql    2016-02-09 16:12:48 +0900 (cf2ddb2)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga');
+INSERT INTO memos VALUES (4, 'groonga command is provided');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%Groonga';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/partial/bitmapscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/partial/bitmapscan.sql    2016-02-09 16:12:48 +0900 (ca05a15)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%groonga%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/partial/indexscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/partial/indexscan.sql    2016-02-09 16:12:48 +0900 (0e8c07a)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%groonga%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/partial/seqscan.sql (+22 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/partial/seqscan.sql    2016-02-09 16:12:48 +0900 (ca2506e)
@@ -0,0 +1,22 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.');
+INSERT INTO memos VALUES (2, 'Groonga is fast full text search engine.');
+INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.');
+INSERT INTO memos VALUES (4, 'groonga command is provided.');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '%groonga%';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/underscore/bitmapscan.sql (+21 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/underscore/bitmapscan.sql    2016-02-09 16:12:48 +0900 (cd97aa1)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = off;
+SET enable_bitmapscan = on;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '_';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/underscore/indexscan.sql (+21 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/underscore/indexscan.sql    2016-02-09 16:12:48 +0900 (8cac572)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = off;
+SET enable_indexscan = on;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '_';
+
+DROP TABLE memos;

  Added: sql/full-text-search/text/single/like_v2/underscore/seqscan.sql (+21 -0) 100644
===================================================================
--- /dev/null
+++ sql/full-text-search/text/single/like_v2/underscore/seqscan.sql    2016-02-09 16:12:48 +0900 (660020d)
@@ -0,0 +1,21 @@
+CREATE TABLE memos (
+  id integer,
+  content text
+);
+
+INSERT INTO memos VALUES (1, '');
+INSERT INTO memos VALUES (2, 'a');
+INSERT INTO memos VALUES (3, 'ab');
+
+CREATE INDEX grnindex ON memos
+ USING pgroonga (content pgroonga.text_full_text_search_ops_v2);
+
+SET enable_seqscan = on;
+SET enable_indexscan = off;
+SET enable_bitmapscan = off;
+
+SELECT id, content
+  FROM memos
+ WHERE content LIKE '_';
+
+DROP TABLE memos;
-------------- next part --------------
HTML����������������������������...
Download 



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