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