Kouhei Sutou
null+****@clear*****
Thu Aug 10 14:49:35 JST 2017
Kouhei Sutou 2017-08-10 14:49:35 +0900 (Thu, 10 Aug 2017) New Revision: 16fdff35c0a16e6d9fcc7ed6f10834cf8f8dd033 https://github.com/pgroonga/pgroonga/commit/16fdff35c0a16e6d9fcc7ed6f10834cf8f8dd033 Message: test: add compatibility tests for pgroonga.XXX Added files: expected/compatibility/schema/column-name/japanese.out expected/compatibility/schema/compare/integer/multiple/greater-than-equal/multiple.out expected/compatibility/schema/compare/integer/order-by-limit/asc.out expected/compatibility/schema/compare/integer/order-by-limit/desc.out expected/compatibility/schema/compare/integer/single/between/bitmapscan.out expected/compatibility/schema/compare/integer/single/between/indexscan.out expected/compatibility/schema/compare/integer/single/greater-than-equal/multiple.out expected/compatibility/schema/compare/integer/single/in/bitmapscan.out expected/compatibility/schema/compare/integer/single/in/indexscan.out expected/compatibility/schema/compare/integer/single/less-than-equal/bitmapscan.out expected/compatibility/schema/compare/integer/single/less-than-equal/indexscan.out expected/compatibility/schema/compare/integer/single/less-than-equal/multiple.out expected/compatibility/schema/compare/timestamp-with-time-zone/single/between/bitmapscan.out expected/compatibility/schema/compare/timestamp-with-time-zone/single/between/indexscan.out expected/compatibility/schema/compare/timestamp/single/between/bitmapscan.out expected/compatibility/schema/compare/timestamp/single/between/indexscan.out expected/compatibility/schema/compare/varchar/single/equal/bitmapscan.out expected/compatibility/schema/compare/varchar/single/equal/indexscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/seqscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/indexscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/seqscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/seqscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/indexscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/seqscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2-greater/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2-greater/indexscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2-greater/seqscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/seqscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/indexscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/seqscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/seqscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/seqscan.out expected/compatibility/schema/full-text-search/text-array/match-in-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/match-in-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/match-in-v2/seqscan.out expected/compatibility/schema/full-text-search/text-array/match-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/match-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/match-v2/seqscan.out expected/compatibility/schema/full-text-search/text-array/match/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/match/indexscan.out expected/compatibility/schema/full-text-search/text-array/match/seqscan.out expected/compatibility/schema/full-text-search/text-array/query-in-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/query-in-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/query-in-v2/seqscan.out expected/compatibility/schema/full-text-search/text-array/query-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/query-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/query-v2/seqscan.out expected/compatibility/schema/full-text-search/text-array/query/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/query/indexscan.out expected/compatibility/schema/full-text-search/text-array/query/seqscan.out expected/compatibility/schema/full-text-search/text-array/script-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/script-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/script-v2/seqscan.out expected/compatibility/schema/full-text-search/text-array/similar-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text-array/similar-v2/indexscan.out expected/compatibility/schema/full-text-search/text-array/similar-v2/seqscan.out expected/compatibility/schema/full-text-search/text/multiple/match/bitmapscan.out expected/compatibility/schema/full-text-search/text/multiple/match/indexscan.out expected/compatibility/schema/full-text-search/text/multiple/match/seqscan.out expected/compatibility/schema/full-text-search/text/multiple/update.out expected/compatibility/schema/full-text-search/text/single/and/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/and/indexscan.out expected/compatibility/schema/full-text-search/text/single/and/seqscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/indexscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/seqscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/indexscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/seqscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/indexscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/seqscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/indexscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/seqscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/indexscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/seqscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/indexscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/seqscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/partial/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/partial/indexscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/partial/seqscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/indexscan.out expected/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/seqscan.out expected/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/indexscan.out expected/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/seqscan.out expected/compatibility/schema/full-text-search/text/single/ilike/end-of-text/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/ilike/end-of-text/indexscan.out expected/compatibility/schema/full-text-search/text/single/ilike/end-of-text/seqscan.out expected/compatibility/schema/full-text-search/text/single/ilike/partial/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/ilike/partial/indexscan.out expected/compatibility/schema/full-text-search/text/single/ilike/partial/seqscan.out expected/compatibility/schema/full-text-search/text/single/ilike/underscore/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/ilike/underscore/indexscan.out expected/compatibility/schema/full-text-search/text/single/ilike/underscore/seqscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/indexscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/seqscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/indexscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/seqscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/partial/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/partial/indexscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/partial/seqscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/underscore/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/underscore/indexscan.out expected/compatibility/schema/full-text-search/text/single/like-v2/underscore/seqscan.out expected/compatibility/schema/full-text-search/text/single/like/begin-of-text/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/like/begin-of-text/indexscan.out expected/compatibility/schema/full-text-search/text/single/like/begin-of-text/seqscan.out expected/compatibility/schema/full-text-search/text/single/like/end-of-text/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/like/end-of-text/indexscan.out expected/compatibility/schema/full-text-search/text/single/like/end-of-text/seqscan.out expected/compatibility/schema/full-text-search/text/single/like/partial/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/like/partial/indexscan.out expected/compatibility/schema/full-text-search/text/single/like/partial/seqscan.out expected/compatibility/schema/full-text-search/text/single/like/underscore/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/like/underscore/indexscan.out expected/compatibility/schema/full-text-search/text/single/like/underscore/seqscan.out expected/compatibility/schema/full-text-search/text/single/match-in-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/match-in-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/match-in-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/match-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/match-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/match-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/match/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/match/indexscan.out expected/compatibility/schema/full-text-search/text/single/match/seqscan.out expected/compatibility/schema/full-text-search/text/single/query-in-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/query-in-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/query-in-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/query-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/query-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/query-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/query/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/query/indexscan.out expected/compatibility/schema/full-text-search/text/single/query/seqscan.out expected/compatibility/schema/full-text-search/text/single/script-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/script-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/script-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/similar-v2/bitmapscan.out expected/compatibility/schema/full-text-search/text/single/similar-v2/indexscan.out expected/compatibility/schema/full-text-search/text/single/similar-v2/seqscan.out expected/compatibility/schema/full-text-search/text/single/truncate.out expected/compatibility/schema/full-text-search/text/single/update.out expected/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/seqscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/indexscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/seqscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/seqscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/indexscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/seqscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2-greater/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2-greater/indexscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2-greater/seqscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/seqscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/indexscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/seqscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/seqscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/seqscan.out expected/compatibility/schema/full-text-search/varchar/match-in-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/match-in-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/match-in-v2/seqscan.out expected/compatibility/schema/full-text-search/varchar/match-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/match-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/match-v2/seqscan.out expected/compatibility/schema/full-text-search/varchar/query-in-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/query-in-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/query-in-v2/seqscan.out expected/compatibility/schema/full-text-search/varchar/query-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/query-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/query-v2/seqscan.out expected/compatibility/schema/full-text-search/varchar/script-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/script-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/script-v2/seqscan.out expected/compatibility/schema/full-text-search/varchar/similar-v2/bitmapscan.out expected/compatibility/schema/full-text-search/varchar/similar-v2/indexscan.out expected/compatibility/schema/full-text-search/varchar/similar-v2/seqscan.out expected/compatibility/schema/function/command/after-truncate.out expected/compatibility/schema/function/command/arguments.out expected/compatibility/schema/function/command/select.out expected/compatibility/schema/function/flush/jsonb.out expected/compatibility/schema/function/flush/multiple.out expected/compatibility/schema/function/flush/nonexistent.out expected/compatibility/schema/function/flush/single.out expected/compatibility/schema/function/query-expand/existent.out expected/compatibility/schema/function/query-expand/hash-index.out expected/compatibility/schema/function/query-expand/mix.out expected/compatibility/schema/function/query-expand/multiple-terms.out expected/compatibility/schema/function/query-expand/no-index.out expected/compatibility/schema/function/query-expand/nonexistent.out expected/compatibility/schema/function/query-expand/normal-index.out expected/compatibility/schema/function/query-expand/normalize-with-primary-key.out expected/compatibility/schema/function/query-expand/normalize.out expected/compatibility/schema/function/query-expand/not-text-array-synonyms.out expected/compatibility/schema/function/score/and.out expected/compatibility/schema/function/score/composite-primary-key/like.out expected/compatibility/schema/function/score/composite-primary-key/match.out expected/compatibility/schema/function/score/hot-updated.out expected/compatibility/schema/function/score/or.out expected/compatibility/schema/function/score/primary-key/not-head.out expected/compatibility/schema/function/score/primary-key/text.out expected/compatibility/schema/function/score/updated.out expected/compatibility/schema/groonga-function/tuple-is-alive/and.out expected/compatibility/schema/groonga-function/tuple-is-alive/or.out expected/compatibility/schema/index-scan/kill-prior-tuple.out expected/compatibility/schema/jsonb/compatibility/v1/match-v2/element/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/match-v2/element/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/match-v2/element/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/match-v2/value/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/match-v2/value/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/match-v2/value/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2/element/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2/element/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2/element/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2/value/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2/value/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/query-v2/value/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/delete/multiple-values.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/full-text-search/default.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/full-text-search/disable.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/object/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/object/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/object/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/seqscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/indexscan.out expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/seqscan.out expected/compatibility/schema/jsonb/compatibility/v2/query-v2/element/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v2/query-v2/element/indexscan.out expected/compatibility/schema/jsonb/compatibility/v2/query-v2/element/seqscan.out expected/compatibility/schema/jsonb/compatibility/v2/query-v2/value/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v2/query-v2/value/indexscan.out expected/compatibility/schema/jsonb/compatibility/v2/query-v2/value/seqscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/delete/multiple-values.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/indexscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/seqscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/indexscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/seqscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/indexscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/seqscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/full-text-search/default.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/full-text-search/disable.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/object/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/object/indexscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/object/seqscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/indexscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/seqscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/indexscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/seqscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/bitmapscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/indexscan.out expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/seqscan.out expected/compatibility/schema/jsonb/contain-v2/array/empty.out expected/compatibility/schema/jsonb/contain-v2/array/multiple-elements.out expected/compatibility/schema/jsonb/contain-v2/object/empty.out expected/compatibility/schema/jsonb/contain/array/empty.out expected/compatibility/schema/jsonb/contain/array/multiple-elements.out expected/compatibility/schema/jsonb/contain/object/empty.out expected/compatibility/schema/jsonb/invalid/multicolumn-index.out expected/compatibility/schema/jsonb/match-v2/element/bitmapscan.out expected/compatibility/schema/jsonb/match-v2/element/indexscan.out expected/compatibility/schema/jsonb/match-v2/element/seqscan.out expected/compatibility/schema/jsonb/match-v2/value/bitmapscan.out expected/compatibility/schema/jsonb/match-v2/value/indexscan.out expected/compatibility/schema/jsonb/match-v2/value/seqscan.out expected/compatibility/schema/jsonb/null/insert.out expected/compatibility/schema/jsonb/null/select.out expected/compatibility/schema/jsonb/query-v2/element/bitmapscan.out expected/compatibility/schema/jsonb/query-v2/element/indexscan.out expected/compatibility/schema/jsonb/query-v2/element/seqscan.out expected/compatibility/schema/jsonb/query-v2/value/bitmapscan.out expected/compatibility/schema/jsonb/query-v2/value/indexscan.out expected/compatibility/schema/jsonb/query-v2/value/seqscan.out expected/compatibility/schema/jsonb/script-v2/delete/multiple-values.out expected/compatibility/schema/jsonb/script-v2/element/boolean/bitmapscan.out expected/compatibility/schema/jsonb/script-v2/element/boolean/indexscan.out expected/compatibility/schema/jsonb/script-v2/element/boolean/seqscan.out expected/compatibility/schema/jsonb/script-v2/element/number/bitmapscan.out expected/compatibility/schema/jsonb/script-v2/element/number/indexscan.out expected/compatibility/schema/jsonb/script-v2/element/number/seqscan.out expected/compatibility/schema/jsonb/script-v2/element/string/bitmapscan.out expected/compatibility/schema/jsonb/script-v2/element/string/indexscan.out expected/compatibility/schema/jsonb/script-v2/element/string/seqscan.out expected/compatibility/schema/jsonb/script-v2/full-text-search/default.out expected/compatibility/schema/jsonb/script-v2/full-text-search/disable.out expected/compatibility/schema/jsonb/script-v2/object/bitmapscan.out expected/compatibility/schema/jsonb/script-v2/object/indexscan.out expected/compatibility/schema/jsonb/script-v2/object/seqscan.out expected/compatibility/schema/jsonb/script-v2/value/boolean/bitmapscan.out expected/compatibility/schema/jsonb/script-v2/value/boolean/indexscan.out expected/compatibility/schema/jsonb/script-v2/value/boolean/seqscan.out expected/compatibility/schema/jsonb/script-v2/value/number/bitmapscan.out expected/compatibility/schema/jsonb/script-v2/value/number/indexscan.out expected/compatibility/schema/jsonb/script-v2/value/number/seqscan.out expected/compatibility/schema/jsonb/script-v2/value/string/bitmapscan.out expected/compatibility/schema/jsonb/script-v2/value/string/indexscan.out expected/compatibility/schema/jsonb/script-v2/value/string/seqscan.out expected/compatibility/schema/jsonb/script/delete/multiple-values.out expected/compatibility/schema/jsonb/script/element/boolean/bitmapscan.out expected/compatibility/schema/jsonb/script/element/boolean/indexscan.out expected/compatibility/schema/jsonb/script/element/boolean/seqscan.out expected/compatibility/schema/jsonb/script/element/number/bitmapscan.out expected/compatibility/schema/jsonb/script/element/number/indexscan.out expected/compatibility/schema/jsonb/script/element/number/seqscan.out expected/compatibility/schema/jsonb/script/element/string/bitmapscan.out expected/compatibility/schema/jsonb/script/element/string/indexscan.out expected/compatibility/schema/jsonb/script/element/string/seqscan.out expected/compatibility/schema/jsonb/script/full-text-search/default.out expected/compatibility/schema/jsonb/script/full-text-search/disable.out expected/compatibility/schema/jsonb/script/object/bitmapscan.out expected/compatibility/schema/jsonb/script/object/indexscan.out expected/compatibility/schema/jsonb/script/object/seqscan.out expected/compatibility/schema/jsonb/script/value/boolean/bitmapscan.out expected/compatibility/schema/jsonb/script/value/boolean/indexscan.out expected/compatibility/schema/jsonb/script/value/boolean/seqscan.out expected/compatibility/schema/jsonb/script/value/number/bitmapscan.out expected/compatibility/schema/jsonb/script/value/number/indexscan.out expected/compatibility/schema/jsonb/script/value/number/seqscan.out expected/compatibility/schema/jsonb/script/value/string/bitmapscan.out expected/compatibility/schema/jsonb/script/value/string/indexscan.out expected/compatibility/schema/jsonb/script/value/string/seqscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/indexscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/seqscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/bitmapscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/indexscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/seqscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/indexscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/seqscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/bitmapscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/indexscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/seqscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/bitmapscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/indexscan.out expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/seqscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/indexscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/seqscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/bitmapscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/indexscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/seqscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/indexscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/seqscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/bitmapscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/indexscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/seqscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/bitmapscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/indexscan.out expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/seqscan.out expected/compatibility/schema/regexp/text/ilike-v2/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/ilike-v2/begin-of-text/indexscan.out expected/compatibility/schema/regexp/text/ilike-v2/begin-of-text/seqscan.out expected/compatibility/schema/regexp/text/ilike-v2/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/ilike-v2/end-of-text/indexscan.out expected/compatibility/schema/regexp/text/ilike-v2/end-of-text/seqscan.out expected/compatibility/schema/regexp/text/ilike-v2/exact/bitmapscan.out expected/compatibility/schema/regexp/text/ilike-v2/exact/indexscan.out expected/compatibility/schema/regexp/text/ilike-v2/exact/seqscan.out expected/compatibility/schema/regexp/text/ilike-v2/partial/bitmapscan.out expected/compatibility/schema/regexp/text/ilike-v2/partial/indexscan.out expected/compatibility/schema/regexp/text/ilike-v2/partial/seqscan.out expected/compatibility/schema/regexp/text/ilike/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/ilike/begin-of-text/indexscan.out expected/compatibility/schema/regexp/text/ilike/begin-of-text/seqscan.out expected/compatibility/schema/regexp/text/ilike/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/ilike/end-of-text/indexscan.out expected/compatibility/schema/regexp/text/ilike/end-of-text/seqscan.out expected/compatibility/schema/regexp/text/ilike/exact/bitmapscan.out expected/compatibility/schema/regexp/text/ilike/exact/indexscan.out expected/compatibility/schema/regexp/text/ilike/exact/seqscan.out expected/compatibility/schema/regexp/text/ilike/partial/bitmapscan.out expected/compatibility/schema/regexp/text/ilike/partial/indexscan.out expected/compatibility/schema/regexp/text/ilike/partial/seqscan.out expected/compatibility/schema/regexp/text/like-v2/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/like-v2/begin-of-text/indexscan.out expected/compatibility/schema/regexp/text/like-v2/begin-of-text/seqscan.out expected/compatibility/schema/regexp/text/like-v2/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/like-v2/end-of-text/indexscan.out expected/compatibility/schema/regexp/text/like-v2/end-of-text/seqscan.out expected/compatibility/schema/regexp/text/like-v2/exact/bitmapscan.out expected/compatibility/schema/regexp/text/like-v2/exact/indexscan.out expected/compatibility/schema/regexp/text/like-v2/exact/seqscan.out expected/compatibility/schema/regexp/text/like-v2/partial/bitmapscan.out expected/compatibility/schema/regexp/text/like-v2/partial/indexscan.out expected/compatibility/schema/regexp/text/like-v2/partial/seqscan.out expected/compatibility/schema/regexp/text/like/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/like/begin-of-text/indexscan.out expected/compatibility/schema/regexp/text/like/begin-of-text/seqscan.out expected/compatibility/schema/regexp/text/like/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/like/end-of-text/indexscan.out expected/compatibility/schema/regexp/text/like/end-of-text/seqscan.out expected/compatibility/schema/regexp/text/like/exact/bitmapscan.out expected/compatibility/schema/regexp/text/like/exact/indexscan.out expected/compatibility/schema/regexp/text/like/exact/seqscan.out expected/compatibility/schema/regexp/text/like/partial/bitmapscan.out expected/compatibility/schema/regexp/text/like/partial/indexscan.out expected/compatibility/schema/regexp/text/like/partial/seqscan.out expected/compatibility/schema/regexp/text/regexp-v2/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/regexp-v2/begin-of-text/indexscan.out expected/compatibility/schema/regexp/text/regexp-v2/begin-of-text/seqscan.out expected/compatibility/schema/regexp/text/regexp-v2/dot/bitmapscan.out expected/compatibility/schema/regexp/text/regexp-v2/dot/indexscan.out expected/compatibility/schema/regexp/text/regexp-v2/dot/seqscan.out expected/compatibility/schema/regexp/text/regexp-v2/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/regexp-v2/end-of-text/indexscan.out expected/compatibility/schema/regexp/text/regexp-v2/end-of-text/seqscan.out expected/compatibility/schema/regexp/text/regexp-v2/exact/bitmapscan.out expected/compatibility/schema/regexp/text/regexp-v2/exact/indexscan.out expected/compatibility/schema/regexp/text/regexp-v2/exact/seqscan.out expected/compatibility/schema/regexp/text/regexp-v2/partial/bitmapscan.out expected/compatibility/schema/regexp/text/regexp-v2/partial/indexscan.out expected/compatibility/schema/regexp/text/regexp-v2/partial/seqscan.out expected/compatibility/schema/regexp/text/regexp/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/regexp/begin-of-text/indexscan.out expected/compatibility/schema/regexp/text/regexp/begin-of-text/seqscan.out expected/compatibility/schema/regexp/text/regexp/dot/bitmapscan.out expected/compatibility/schema/regexp/text/regexp/dot/indexscan.out expected/compatibility/schema/regexp/text/regexp/dot/seqscan.out expected/compatibility/schema/regexp/text/regexp/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/text/regexp/end-of-text/indexscan.out expected/compatibility/schema/regexp/text/regexp/end-of-text/seqscan.out expected/compatibility/schema/regexp/text/regexp/exact/bitmapscan.out expected/compatibility/schema/regexp/text/regexp/exact/indexscan.out expected/compatibility/schema/regexp/text/regexp/exact/seqscan.out expected/compatibility/schema/regexp/text/regexp/partial/bitmapscan.out expected/compatibility/schema/regexp/text/regexp/partial/indexscan.out expected/compatibility/schema/regexp/text/regexp/partial/seqscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/indexscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/seqscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/bitmapscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/indexscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/seqscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/indexscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/seqscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/bitmapscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/indexscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/seqscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/bitmapscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/indexscan.out expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/seqscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/indexscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/seqscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/bitmapscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/indexscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/seqscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/indexscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/seqscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/bitmapscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/indexscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/seqscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/bitmapscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/indexscan.out expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/seqscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/bitmapscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/indexscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/seqscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/dot/bitmapscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/dot/indexscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/dot/seqscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/bitmapscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/indexscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/seqscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/exact/bitmapscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/exact/indexscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/exact/seqscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/partial/bitmapscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/partial/indexscan.out expected/compatibility/schema/regexp/varchar/regexp-v2/partial/seqscan.out expected/compatibility/schema/reindex/analyze.out expected/compatibility/schema/term-search/text-array/combined/bitmapscan.out expected/compatibility/schema/term-search/text-array/combined/seqscan.out expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/bitmapscan.out expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/indexscan.out expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/seqscan.out expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix/bitmapscan.out expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix/indexscan.out expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix/seqscan.out expected/compatibility/schema/term-search/text-array/prefix-in/bitmapscan.out expected/compatibility/schema/term-search/text-array/prefix-in/indexscan.out expected/compatibility/schema/term-search/text-array/prefix-in/seqscan-empty-array.out expected/compatibility/schema/term-search/text-array/prefix-in/seqscan.out expected/compatibility/schema/term-search/text-array/prefix-rk-in/bitmapscan.out expected/compatibility/schema/term-search/text-array/prefix-rk-in/indexscan.out expected/compatibility/schema/term-search/text-array/prefix-rk-in/seqscan.out expected/compatibility/schema/term-search/text-array/prefix-rk/bitmapscan.out expected/compatibility/schema/term-search/text-array/prefix-rk/indexscan.out expected/compatibility/schema/term-search/text-array/prefix-rk/seqscan.out expected/compatibility/schema/term-search/text-array/prefix/bitmapscan.out expected/compatibility/schema/term-search/text-array/prefix/indexscan.out expected/compatibility/schema/term-search/text-array/prefix/seqscan.out expected/compatibility/schema/term-search/text/combined/bitmapscan.out expected/compatibility/schema/term-search/text/combined/indexscan.out expected/compatibility/schema/term-search/text/combined/seqscan.out expected/compatibility/schema/term-search/text/options/tokenizer/ignored.out expected/compatibility/schema/term-search/text/prefix-in/bitmapscan.out expected/compatibility/schema/term-search/text/prefix-in/indexscan.out expected/compatibility/schema/term-search/text/prefix-in/seqscan.out expected/compatibility/schema/term-search/text/prefix-rk-in/bitmapscan.out expected/compatibility/schema/term-search/text/prefix-rk-in/indexscan.out expected/compatibility/schema/term-search/text/prefix-rk-in/seqscan.out expected/compatibility/schema/term-search/text/prefix-rk/bitmapscan.out expected/compatibility/schema/term-search/text/prefix-rk/indexscan.out expected/compatibility/schema/term-search/text/prefix-rk/seqscan.out expected/compatibility/schema/term-search/text/prefix/bitmapscan.out expected/compatibility/schema/term-search/text/prefix/indexscan.out expected/compatibility/schema/term-search/text/prefix/seqscan.out expected/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/bitmapscan.out expected/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/indexscan.out expected/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/seqscan.out expected/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/bitmapscan.out expected/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/indexscan.out expected/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/seqscan.out expected/compatibility/schema/term-search/varchar-array/contain-v2/bitmapscan.out expected/compatibility/schema/term-search/varchar-array/contain-v2/indexscan.out expected/compatibility/schema/term-search/varchar-array/contain-v2/seqscan.out expected/compatibility/schema/term-search/varchar-array/contain/bitmapscan.out expected/compatibility/schema/term-search/varchar-array/contain/indexscan.out expected/compatibility/schema/term-search/varchar-array/contain/seqscan.out expected/compatibility/schema/vacuum/tablespace.out.in sql/compatibility/schema/column-name/japanese.sql sql/compatibility/schema/compare/integer/multiple/greater-than-equal/multiple.sql sql/compatibility/schema/compare/integer/order-by-limit/asc.sql sql/compatibility/schema/compare/integer/order-by-limit/desc.sql sql/compatibility/schema/compare/integer/single/between/bitmapscan.sql sql/compatibility/schema/compare/integer/single/between/indexscan.sql sql/compatibility/schema/compare/integer/single/greater-than-equal/multiple.sql sql/compatibility/schema/compare/integer/single/in/bitmapscan.sql sql/compatibility/schema/compare/integer/single/in/indexscan.sql sql/compatibility/schema/compare/integer/single/less-than-equal/bitmapscan.sql sql/compatibility/schema/compare/integer/single/less-than-equal/indexscan.sql sql/compatibility/schema/compare/integer/single/less-than-equal/multiple.sql sql/compatibility/schema/compare/timestamp-with-time-zone/single/between/bitmapscan.sql sql/compatibility/schema/compare/timestamp-with-time-zone/single/between/indexscan.sql sql/compatibility/schema/compare/timestamp/single/between/bitmapscan.sql sql/compatibility/schema/compare/timestamp/single/between/indexscan.sql sql/compatibility/schema/compare/varchar/single/equal/bitmapscan.sql sql/compatibility/schema/compare/varchar/single/equal/indexscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/seqscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/indexscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/seqscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/seqscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/indexscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/seqscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/seqscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/indexscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/seqscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/seqscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/seqscan.sql sql/compatibility/schema/full-text-search/text-array/match-in-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/match-in-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/match-in-v2/seqscan.sql sql/compatibility/schema/full-text-search/text-array/match-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/match-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/match-v2/seqscan.sql sql/compatibility/schema/full-text-search/text-array/match/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/match/indexscan.sql sql/compatibility/schema/full-text-search/text-array/match/seqscan.sql sql/compatibility/schema/full-text-search/text-array/query-in-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/query-in-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/query-in-v2/seqscan.sql sql/compatibility/schema/full-text-search/text-array/query-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/query-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/query-v2/seqscan.sql sql/compatibility/schema/full-text-search/text-array/query/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/query/indexscan.sql sql/compatibility/schema/full-text-search/text-array/query/seqscan.sql sql/compatibility/schema/full-text-search/text-array/script-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/script-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/script-v2/seqscan.sql sql/compatibility/schema/full-text-search/text-array/similar-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text-array/similar-v2/indexscan.sql sql/compatibility/schema/full-text-search/text-array/similar-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/multiple/match/bitmapscan.sql sql/compatibility/schema/full-text-search/text/multiple/match/indexscan.sql sql/compatibility/schema/full-text-search/text/multiple/update.sql sql/compatibility/schema/full-text-search/text/single/and/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/and/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/seqscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/seqscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/seqscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/seqscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/indexscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/seqscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/indexscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/seqscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/partial/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/partial/indexscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/partial/seqscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/indexscan.sql sql/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/seqscan.sql sql/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/indexscan.sql sql/compatibility/schema/full-text-search/text/single/ilike/end-of-text/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/ilike/end-of-text/indexscan.sql sql/compatibility/schema/full-text-search/text/single/ilike/partial/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/ilike/partial/indexscan.sql sql/compatibility/schema/full-text-search/text/single/ilike/underscore/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/ilike/underscore/indexscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/indexscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/seqscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/indexscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/seqscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/partial/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/partial/indexscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/partial/seqscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/underscore/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/underscore/indexscan.sql sql/compatibility/schema/full-text-search/text/single/like-v2/underscore/seqscan.sql sql/compatibility/schema/full-text-search/text/single/like/begin-of-text/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/like/begin-of-text/indexscan.sql sql/compatibility/schema/full-text-search/text/single/like/end-of-text/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/like/end-of-text/indexscan.sql sql/compatibility/schema/full-text-search/text/single/like/partial/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/like/partial/indexscan.sql sql/compatibility/schema/full-text-search/text/single/like/underscore/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/like/underscore/indexscan.sql sql/compatibility/schema/full-text-search/text/single/match-in-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/match-in-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/match-in-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/match-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/match-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/match-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/match/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/match/indexscan.sql sql/compatibility/schema/full-text-search/text/single/query-in-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/query-in-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/query-in-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/query-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/query-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/query-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/query/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/query/indexscan.sql sql/compatibility/schema/full-text-search/text/single/script-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/script-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/script-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/similar-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/text/single/similar-v2/indexscan.sql sql/compatibility/schema/full-text-search/text/single/similar-v2/seqscan.sql sql/compatibility/schema/full-text-search/text/single/truncate.sql sql/compatibility/schema/full-text-search/text/single/update.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/seqscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/indexscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/seqscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/seqscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/indexscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/seqscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/seqscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/indexscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/seqscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/seqscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/seqscan.sql sql/compatibility/schema/full-text-search/varchar/match-in-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/match-in-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/match-in-v2/seqscan.sql sql/compatibility/schema/full-text-search/varchar/match-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/match-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/match-v2/seqscan.sql sql/compatibility/schema/full-text-search/varchar/query-in-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/query-in-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/query-in-v2/seqscan.sql sql/compatibility/schema/full-text-search/varchar/query-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/query-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/query-v2/seqscan.sql sql/compatibility/schema/full-text-search/varchar/script-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/script-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/script-v2/seqscan.sql sql/compatibility/schema/full-text-search/varchar/similar-v2/bitmapscan.sql sql/compatibility/schema/full-text-search/varchar/similar-v2/indexscan.sql sql/compatibility/schema/full-text-search/varchar/similar-v2/seqscan.sql sql/compatibility/schema/function/command/after-truncate.sql sql/compatibility/schema/function/command/arguments.sql sql/compatibility/schema/function/command/select.sql sql/compatibility/schema/function/flush/jsonb.sql sql/compatibility/schema/function/flush/multiple.sql sql/compatibility/schema/function/flush/single.sql sql/compatibility/schema/function/query-expand/normalize-with-primary-key.sql sql/compatibility/schema/function/query-expand/normalize.sql sql/compatibility/schema/function/score/and.sql sql/compatibility/schema/function/score/composite-primary-key/like.sql sql/compatibility/schema/function/score/composite-primary-key/match.sql sql/compatibility/schema/function/score/hot-updated.sql sql/compatibility/schema/function/score/or.sql sql/compatibility/schema/function/score/primary-key/not-head.sql sql/compatibility/schema/function/score/primary-key/text.sql sql/compatibility/schema/function/score/updated.sql sql/compatibility/schema/groonga-function/tuple-is-alive/and.sql sql/compatibility/schema/groonga-function/tuple-is-alive/or.sql sql/compatibility/schema/index-scan/kill-prior-tuple.sql sql/compatibility/schema/jsonb/compatibility/v1/match-v2/element/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/match-v2/element/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/match-v2/element/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/match-v2/value/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/match-v2/value/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/match-v2/value/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2/element/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2/element/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2/element/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2/value/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2/value/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/query-v2/value/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/delete/multiple-values.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/full-text-search/#default.sql# sql/compatibility/schema/jsonb/compatibility/v1/script-v2/full-text-search/default.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/full-text-search/disable.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/object/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/object/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/object/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v2/query-v2/element/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v2/query-v2/element/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v2/query-v2/element/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v2/query-v2/value/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v2/query-v2/value/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v2/query-v2/value/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/delete/multiple-values.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/full-text-search/default.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/full-text-search/disable.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/object/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/object/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/object/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/seqscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/bitmapscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/indexscan.sql sql/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/seqscan.sql sql/compatibility/schema/jsonb/contain-v2/array/empty.sql sql/compatibility/schema/jsonb/contain-v2/array/multiple-elements.sql sql/compatibility/schema/jsonb/contain-v2/object/empty.sql sql/compatibility/schema/jsonb/contain/array/empty.sql sql/compatibility/schema/jsonb/contain/array/multiple-elements.sql sql/compatibility/schema/jsonb/contain/object/empty.sql sql/compatibility/schema/jsonb/invalid/multicolumn-index.sql sql/compatibility/schema/jsonb/match-v2/element/bitmapscan.sql sql/compatibility/schema/jsonb/match-v2/element/indexscan.sql sql/compatibility/schema/jsonb/match-v2/element/seqscan.sql sql/compatibility/schema/jsonb/match-v2/value/bitmapscan.sql sql/compatibility/schema/jsonb/match-v2/value/indexscan.sql sql/compatibility/schema/jsonb/match-v2/value/seqscan.sql sql/compatibility/schema/jsonb/null/insert.sql sql/compatibility/schema/jsonb/null/select.sql sql/compatibility/schema/jsonb/query-v2/element/bitmapscan.sql sql/compatibility/schema/jsonb/query-v2/element/indexscan.sql sql/compatibility/schema/jsonb/query-v2/element/seqscan.sql sql/compatibility/schema/jsonb/query-v2/value/bitmapscan.sql sql/compatibility/schema/jsonb/query-v2/value/indexscan.sql sql/compatibility/schema/jsonb/query-v2/value/seqscan.sql sql/compatibility/schema/jsonb/script-v2/delete/multiple-values.sql sql/compatibility/schema/jsonb/script-v2/element/boolean/bitmapscan.sql sql/compatibility/schema/jsonb/script-v2/element/boolean/indexscan.sql sql/compatibility/schema/jsonb/script-v2/element/boolean/seqscan.sql sql/compatibility/schema/jsonb/script-v2/element/number/bitmapscan.sql sql/compatibility/schema/jsonb/script-v2/element/number/indexscan.sql sql/compatibility/schema/jsonb/script-v2/element/number/seqscan.sql sql/compatibility/schema/jsonb/script-v2/element/string/bitmapscan.sql sql/compatibility/schema/jsonb/script-v2/element/string/indexscan.sql sql/compatibility/schema/jsonb/script-v2/element/string/seqscan.sql sql/compatibility/schema/jsonb/script-v2/full-text-search/default.sql sql/compatibility/schema/jsonb/script-v2/full-text-search/disable.sql sql/compatibility/schema/jsonb/script-v2/object/bitmapscan.sql sql/compatibility/schema/jsonb/script-v2/object/indexscan.sql sql/compatibility/schema/jsonb/script-v2/object/seqscan.sql sql/compatibility/schema/jsonb/script-v2/value/boolean/bitmapscan.sql sql/compatibility/schema/jsonb/script-v2/value/boolean/indexscan.sql sql/compatibility/schema/jsonb/script-v2/value/boolean/seqscan.sql sql/compatibility/schema/jsonb/script-v2/value/number/bitmapscan.sql sql/compatibility/schema/jsonb/script-v2/value/number/indexscan.sql sql/compatibility/schema/jsonb/script-v2/value/number/seqscan.sql sql/compatibility/schema/jsonb/script-v2/value/string/bitmapscan.sql sql/compatibility/schema/jsonb/script-v2/value/string/indexscan.sql sql/compatibility/schema/jsonb/script-v2/value/string/seqscan.sql sql/compatibility/schema/jsonb/script/delete/multiple-values.sql sql/compatibility/schema/jsonb/script/element/boolean/bitmapscan.sql sql/compatibility/schema/jsonb/script/element/boolean/indexscan.sql sql/compatibility/schema/jsonb/script/element/boolean/seqscan.sql sql/compatibility/schema/jsonb/script/element/number/bitmapscan.sql sql/compatibility/schema/jsonb/script/element/number/indexscan.sql sql/compatibility/schema/jsonb/script/element/number/seqscan.sql sql/compatibility/schema/jsonb/script/element/string/bitmapscan.sql sql/compatibility/schema/jsonb/script/element/string/indexscan.sql sql/compatibility/schema/jsonb/script/element/string/seqscan.sql sql/compatibility/schema/jsonb/script/full-text-search/default.sql sql/compatibility/schema/jsonb/script/full-text-search/disable.sql sql/compatibility/schema/jsonb/script/object/bitmapscan.sql sql/compatibility/schema/jsonb/script/object/indexscan.sql sql/compatibility/schema/jsonb/script/object/seqscan.sql sql/compatibility/schema/jsonb/script/value/boolean/bitmapscan.sql sql/compatibility/schema/jsonb/script/value/boolean/indexscan.sql sql/compatibility/schema/jsonb/script/value/boolean/seqscan.sql sql/compatibility/schema/jsonb/script/value/number/bitmapscan.sql sql/compatibility/schema/jsonb/script/value/number/indexscan.sql sql/compatibility/schema/jsonb/script/value/number/seqscan.sql sql/compatibility/schema/jsonb/script/value/string/bitmapscan.sql sql/compatibility/schema/jsonb/script/value/string/indexscan.sql sql/compatibility/schema/jsonb/script/value/string/seqscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/bitmapscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/indexscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/seqscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/indexscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/seqscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/bitmapscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/indexscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/seqscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/bitmapscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/indexscan.sql sql/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/seqscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/bitmapscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/indexscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/seqscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/indexscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/seqscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/bitmapscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/indexscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/seqscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/bitmapscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/indexscan.sql sql/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/seqscan.sql sql/compatibility/schema/regexp/text/ilike-v2/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/ilike-v2/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/text/ilike-v2/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/text/ilike-v2/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/ilike-v2/end-of-text/indexscan.sql sql/compatibility/schema/regexp/text/ilike-v2/end-of-text/seqscan.sql sql/compatibility/schema/regexp/text/ilike-v2/exact/bitmapscan.sql sql/compatibility/schema/regexp/text/ilike-v2/exact/indexscan.sql sql/compatibility/schema/regexp/text/ilike-v2/exact/seqscan.sql sql/compatibility/schema/regexp/text/ilike-v2/partial/bitmapscan.sql sql/compatibility/schema/regexp/text/ilike-v2/partial/indexscan.sql sql/compatibility/schema/regexp/text/ilike-v2/partial/seqscan.sql sql/compatibility/schema/regexp/text/ilike/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/ilike/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/text/ilike/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/text/ilike/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/ilike/end-of-text/indexscan.sql sql/compatibility/schema/regexp/text/ilike/end-of-text/seqscan.sql sql/compatibility/schema/regexp/text/ilike/exact/bitmapscan.sql sql/compatibility/schema/regexp/text/ilike/exact/indexscan.sql sql/compatibility/schema/regexp/text/ilike/exact/seqscan.sql sql/compatibility/schema/regexp/text/ilike/partial/bitmapscan.sql sql/compatibility/schema/regexp/text/ilike/partial/indexscan.sql sql/compatibility/schema/regexp/text/ilike/partial/seqscan.sql sql/compatibility/schema/regexp/text/like-v2/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/like-v2/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/text/like-v2/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/text/like-v2/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/like-v2/end-of-text/indexscan.sql sql/compatibility/schema/regexp/text/like-v2/end-of-text/seqscan.sql sql/compatibility/schema/regexp/text/like-v2/exact/bitmapscan.sql sql/compatibility/schema/regexp/text/like-v2/exact/indexscan.sql sql/compatibility/schema/regexp/text/like-v2/exact/seqscan.sql sql/compatibility/schema/regexp/text/like-v2/partial/bitmapscan.sql sql/compatibility/schema/regexp/text/like-v2/partial/indexscan.sql sql/compatibility/schema/regexp/text/like-v2/partial/seqscan.sql sql/compatibility/schema/regexp/text/like/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/like/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/text/like/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/text/like/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/like/end-of-text/indexscan.sql sql/compatibility/schema/regexp/text/like/end-of-text/seqscan.sql sql/compatibility/schema/regexp/text/like/exact/bitmapscan.sql sql/compatibility/schema/regexp/text/like/exact/indexscan.sql sql/compatibility/schema/regexp/text/like/exact/seqscan.sql sql/compatibility/schema/regexp/text/like/partial/bitmapscan.sql sql/compatibility/schema/regexp/text/like/partial/indexscan.sql sql/compatibility/schema/regexp/text/like/partial/seqscan.sql sql/compatibility/schema/regexp/text/regexp-v2/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/regexp-v2/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/text/regexp-v2/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/text/regexp-v2/dot/bitmapscan.sql sql/compatibility/schema/regexp/text/regexp-v2/dot/indexscan.sql sql/compatibility/schema/regexp/text/regexp-v2/dot/seqscan.sql sql/compatibility/schema/regexp/text/regexp-v2/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/regexp-v2/end-of-text/indexscan.sql sql/compatibility/schema/regexp/text/regexp-v2/end-of-text/seqscan.sql sql/compatibility/schema/regexp/text/regexp-v2/exact/bitmapscan.sql sql/compatibility/schema/regexp/text/regexp-v2/exact/indexscan.sql sql/compatibility/schema/regexp/text/regexp-v2/exact/seqscan.sql sql/compatibility/schema/regexp/text/regexp-v2/partial/bitmapscan.sql sql/compatibility/schema/regexp/text/regexp-v2/partial/indexscan.sql sql/compatibility/schema/regexp/text/regexp-v2/partial/seqscan.sql sql/compatibility/schema/regexp/text/regexp/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/regexp/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/text/regexp/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/text/regexp/dot/bitmapscan.sql sql/compatibility/schema/regexp/text/regexp/dot/indexscan.sql sql/compatibility/schema/regexp/text/regexp/dot/seqscan.sql sql/compatibility/schema/regexp/text/regexp/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/text/regexp/end-of-text/indexscan.sql sql/compatibility/schema/regexp/text/regexp/end-of-text/seqscan.sql sql/compatibility/schema/regexp/text/regexp/exact/bitmapscan.sql sql/compatibility/schema/regexp/text/regexp/exact/indexscan.sql sql/compatibility/schema/regexp/text/regexp/exact/seqscan.sql sql/compatibility/schema/regexp/text/regexp/partial/bitmapscan.sql sql/compatibility/schema/regexp/text/regexp/partial/indexscan.sql sql/compatibility/schema/regexp/text/regexp/partial/seqscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/bitmapscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/indexscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/seqscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/indexscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/seqscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/bitmapscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/indexscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/seqscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/bitmapscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/indexscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/seqscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/bitmapscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/indexscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/seqscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/indexscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/seqscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/bitmapscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/indexscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/seqscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/bitmapscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/indexscan.sql sql/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/seqscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/bitmapscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/indexscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/seqscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/dot/bitmapscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/dot/indexscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/dot/seqscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/bitmapscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/indexscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/seqscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/exact/bitmapscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/exact/indexscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/exact/seqscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/partial/bitmapscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/partial/indexscan.sql sql/compatibility/schema/regexp/varchar/regexp-v2/partial/seqscan.sql sql/compatibility/schema/reindex/analyze.sql sql/compatibility/schema/term-search/text-array/combined/bitmapscan.sql sql/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/bitmapscan.sql sql/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/indexscan.sql sql/compatibility/schema/term-search/text-array/compatibility/v2/prefix/bitmapscan.sql sql/compatibility/schema/term-search/text-array/compatibility/v2/prefix/indexscan.sql sql/compatibility/schema/term-search/text-array/prefix-in/bitmapscan.sql sql/compatibility/schema/term-search/text-array/prefix-in/indexscan.sql sql/compatibility/schema/term-search/text-array/prefix-rk-in/bitmapscan.sql sql/compatibility/schema/term-search/text-array/prefix-rk-in/indexscan.sql sql/compatibility/schema/term-search/text-array/prefix-rk/bitmapscan.sql sql/compatibility/schema/term-search/text-array/prefix-rk/indexscan.sql sql/compatibility/schema/term-search/text-array/prefix/bitmapscan.sql sql/compatibility/schema/term-search/text-array/prefix/indexscan.sql sql/compatibility/schema/term-search/text/combined/bitmapscan.sql sql/compatibility/schema/term-search/text/combined/indexscan.sql sql/compatibility/schema/term-search/text/options/tokenizer/ignored.sql sql/compatibility/schema/term-search/text/prefix-in/bitmapscan.sql sql/compatibility/schema/term-search/text/prefix-in/indexscan.sql sql/compatibility/schema/term-search/text/prefix-rk-in/bitmapscan.sql sql/compatibility/schema/term-search/text/prefix-rk-in/indexscan.sql sql/compatibility/schema/term-search/text/prefix-rk/bitmapscan.sql sql/compatibility/schema/term-search/text/prefix-rk/indexscan.sql sql/compatibility/schema/term-search/text/prefix/bitmapscan.sql sql/compatibility/schema/term-search/text/prefix/indexscan.sql sql/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/bitmapscan.sql sql/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/indexscan.sql sql/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/bitmapscan.sql sql/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/indexscan.sql sql/compatibility/schema/term-search/varchar-array/contain-v2/bitmapscan.sql sql/compatibility/schema/term-search/varchar-array/contain-v2/indexscan.sql sql/compatibility/schema/term-search/varchar-array/contain-v2/seqscan.sql sql/compatibility/schema/term-search/varchar-array/contain/bitmapscan.sql sql/compatibility/schema/term-search/varchar-array/contain/indexscan.sql sql/compatibility/schema/vacuum/tablespace.sql.in Modified files: pgroonga.mk Added: expected/compatibility/schema/column-name/japanese.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/column-name/japanese.out 2017-08-10 14:49:35 +0900 (7a3827a) @@ -0,0 +1,21 @@ +CREATE TABLE メモ ( + id integer, + コンテンツ text +); +INSERT INTO メモ VALUES (1, 'PostgreSQLはRDBMSです。'); +INSERT INTO メモ VALUES (2, 'Groongaは高速な全文検索エンジンです。'); +INSERT INTO メモ VALUES (3, 'PGroongaはGroongaを使うPostgreSQLの拡張機能です。'); +CREATE INDEX 全文検索索引 ON メモ + USING pgroonga (コンテンツ pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, コンテンツ + FROM メモ + WHERE コンテンツ %% '全文検索'; + id | コンテンツ +----+--------------------------------------- + 2 | Groongaは高速な全文検索エンジンです。 +(1 row) + +DROP TABLE メモ; Added: expected/compatibility/schema/compare/integer/multiple/greater-than-equal/multiple.out (+35 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/multiple/greater-than-equal/multiple.out 2017-08-10 14:49:35 +0900 (ed35c76) @@ -0,0 +1,35 @@ +CREATE TABLE numbers ( + number1 integer, + number2 integer +); +INSERT INTO numbers VALUES (2, 20); +INSERT INTO numbers VALUES (7, 70); +INSERT INTO numbers VALUES (6, 60); +INSERT INTO numbers VALUES (4, 40); +INSERT INTO numbers VALUES (5, 50); +INSERT INTO numbers VALUES (8, 80); +INSERT INTO numbers VALUES (1, 10); +INSERT INTO numbers VALUES (10, 100); +INSERT INTO numbers VALUES (3, 30); +INSERT INTO numbers VALUES (9, 90); +CREATE INDEX grnindex ON numbers + USING pgroonga (number1 pgroonga.int4_ops, + number2 pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT number1, number2 + FROM numbers + WHERE number1 >= 3 AND number2 >= 50 + ORDER BY number1 ASC; + number1 | number2 +---------+--------- + 5 | 50 + 6 | 60 + 7 | 70 + 8 | 80 + 9 | 90 + 10 | 100 +(6 rows) + +DROP TABLE numbers; Added: expected/compatibility/schema/compare/integer/order-by-limit/asc.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/order-by-limit/asc.out 2017-08-10 14:49:35 +0900 (f354c1c) @@ -0,0 +1,31 @@ +CREATE TABLE ids ( + id integer +); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SELECT id + FROM ids + ORDER BY id ASC + LIMIT 5; + id +---- + 1 + 2 + 3 + 4 + 5 +(5 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/compare/integer/order-by-limit/desc.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/order-by-limit/desc.out 2017-08-10 14:49:35 +0900 (dd5af12) @@ -0,0 +1,31 @@ +CREATE TABLE ids ( + id integer +); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SELECT id + FROM ids + ORDER BY id DESC + LIMIT 5; + id +---- + 10 + 9 + 8 + 7 + 6 +(5 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/compare/integer/single/between/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/single/between/bitmapscan.out 2017-08-10 14:49:35 +0900 (ca973c3) @@ -0,0 +1,34 @@ +CREATE TABLE ids ( + id integer +); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id + FROM ids + WHERE id BETWEEN 3 AND 9 + ORDER BY id ASC; + id +---- + 3 + 4 + 5 + 6 + 7 + 8 + 9 +(7 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/compare/integer/single/between/indexscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/single/between/indexscan.out 2017-08-10 14:49:35 +0900 (8e3d28e) @@ -0,0 +1,34 @@ +CREATE TABLE ids ( + id integer +); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id + FROM ids + WHERE id BETWEEN 3 AND 9 + ORDER BY id ASC; + id +---- + 3 + 4 + 5 + 6 + 7 + 8 + 9 +(7 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/compare/integer/single/greater-than-equal/multiple.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/single/greater-than-equal/multiple.out 2017-08-10 14:49:35 +0900 (0e06050) @@ -0,0 +1,33 @@ +CREATE TABLE ids ( + id integer +); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id + FROM ids + WHERE id >= 3 AND id >= 5 + ORDER BY id ASC; + id +---- + 5 + 6 + 7 + 8 + 9 + 10 +(6 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/compare/integer/single/in/bitmapscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/single/in/bitmapscan.out 2017-08-10 14:49:35 +0900 (4b4ef0b) @@ -0,0 +1,30 @@ +CREATE TABLE ids ( + id integer +); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); +CREATE INDEX pgroonga_index ON ids + USING pgroonga (id pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id + FROM ids + WHERE id IN (6, 1, 7) + ORDER BY id ASC; + id +---- + 1 + 6 + 7 +(3 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/compare/integer/single/in/indexscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/single/in/indexscan.out 2017-08-10 14:49:35 +0900 (bd5bb3f) @@ -0,0 +1,30 @@ +CREATE TABLE ids ( + id integer +); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); +CREATE INDEX pgroonga_index ON ids + USING pgroonga (id pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id + FROM ids + WHERE id IN (6, 1, 7) + ORDER BY id ASC; + id +---- + 1 + 6 + 7 +(3 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/compare/integer/single/less-than-equal/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/single/less-than-equal/bitmapscan.out 2017-08-10 14:49:35 +0900 (2f75ef1) @@ -0,0 +1,21 @@ +CREATE TABLE ids ( + id integer +); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (3); +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id + FROM ids + WHERE id <= 2; + id +---- + 1 + 2 +(2 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/compare/integer/single/less-than-equal/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/single/less-than-equal/indexscan.out 2017-08-10 14:49:35 +0900 (0090946) @@ -0,0 +1,21 @@ +CREATE TABLE ids ( + id integer +); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (3); +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id + FROM ids + WHERE id <= 2; + id +---- + 1 + 2 +(2 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/compare/integer/single/less-than-equal/multiple.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/integer/single/less-than-equal/multiple.out 2017-08-10 14:49:35 +0900 (8c4cbed) @@ -0,0 +1,30 @@ +CREATE TABLE ids ( + id integer +); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id + FROM ids + WHERE id <= 5 AND id <= 3 + ORDER BY id ASC; + id +---- + 1 + 2 + 3 +(3 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/compare/timestamp-with-time-zone/single/between/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/timestamp-with-time-zone/single/between/bitmapscan.out 2017-08-10 14:49:35 +0900 (6e2f2f7) @@ -0,0 +1,34 @@ +CREATE TABLE logs ( + created_at timestamp with time zone +); +INSERT INTO logs VALUES ('2015-02-14 10:44:10+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:09+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:02+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:04+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:01+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:05+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:07+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:06+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:03+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:08+09:00'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (created_at pgroonga.timestamptz_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT created_at + FROM logs + WHERE created_at BETWEEN '2015-02-14 10:44:03+09:00' AND '2015-02-14 10:44:09+09:00' + ORDER BY created_at ASC; + created_at +------------------------------ + Fri Feb 13 17:44:03 2015 PST + Fri Feb 13 17:44:04 2015 PST + Fri Feb 13 17:44:05 2015 PST + Fri Feb 13 17:44:06 2015 PST + Fri Feb 13 17:44:07 2015 PST + Fri Feb 13 17:44:08 2015 PST + Fri Feb 13 17:44:09 2015 PST +(7 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/compare/timestamp-with-time-zone/single/between/indexscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/timestamp-with-time-zone/single/between/indexscan.out 2017-08-10 14:49:35 +0900 (39e0789) @@ -0,0 +1,34 @@ +CREATE TABLE logs ( + created_at timestamp with time zone +); +INSERT INTO logs VALUES ('2015-02-14 10:44:10+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:09+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:02+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:04+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:01+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:05+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:07+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:06+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:03+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:08+09:00'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (created_at pgroonga.timestamptz_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT created_at + FROM logs + WHERE created_at BETWEEN '2015-02-14 10:44:03+09:00' AND '2015-02-14 10:44:09+09:00' + ORDER BY created_at ASC; + created_at +------------------------------ + Fri Feb 13 17:44:03 2015 PST + Fri Feb 13 17:44:04 2015 PST + Fri Feb 13 17:44:05 2015 PST + Fri Feb 13 17:44:06 2015 PST + Fri Feb 13 17:44:07 2015 PST + Fri Feb 13 17:44:08 2015 PST + Fri Feb 13 17:44:09 2015 PST +(7 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/compare/timestamp/single/between/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/timestamp/single/between/bitmapscan.out 2017-08-10 14:49:35 +0900 (711e09f) @@ -0,0 +1,34 @@ +CREATE TABLE logs ( + created_at timestamp +); +INSERT INTO logs VALUES ('2015-02-14 10:44:10'); +INSERT INTO logs VALUES ('2015-02-14 10:44:09'); +INSERT INTO logs VALUES ('2015-02-14 10:44:02'); +INSERT INTO logs VALUES ('2015-02-14 10:44:04'); +INSERT INTO logs VALUES ('2015-02-14 10:44:01'); +INSERT INTO logs VALUES ('2015-02-14 10:44:05'); +INSERT INTO logs VALUES ('2015-02-14 10:44:07'); +INSERT INTO logs VALUES ('2015-02-14 10:44:06'); +INSERT INTO logs VALUES ('2015-02-14 10:44:03'); +INSERT INTO logs VALUES ('2015-02-14 10:44:08'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (created_at pgroonga.timestamp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT created_at + FROM logs + WHERE created_at BETWEEN '2015-02-14 10:44:03' AND '2015-02-14 10:44:09' + ORDER BY created_at ASC; + created_at +-------------------------- + Sat Feb 14 10:44:03 2015 + Sat Feb 14 10:44:04 2015 + Sat Feb 14 10:44:05 2015 + Sat Feb 14 10:44:06 2015 + Sat Feb 14 10:44:07 2015 + Sat Feb 14 10:44:08 2015 + Sat Feb 14 10:44:09 2015 +(7 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/compare/timestamp/single/between/indexscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/timestamp/single/between/indexscan.out 2017-08-10 14:49:35 +0900 (e60d7e0) @@ -0,0 +1,34 @@ +CREATE TABLE logs ( + created_at timestamp +); +INSERT INTO logs VALUES ('2015-02-14 10:44:10'); +INSERT INTO logs VALUES ('2015-02-14 10:44:09'); +INSERT INTO logs VALUES ('2015-02-14 10:44:02'); +INSERT INTO logs VALUES ('2015-02-14 10:44:04'); +INSERT INTO logs VALUES ('2015-02-14 10:44:01'); +INSERT INTO logs VALUES ('2015-02-14 10:44:05'); +INSERT INTO logs VALUES ('2015-02-14 10:44:07'); +INSERT INTO logs VALUES ('2015-02-14 10:44:06'); +INSERT INTO logs VALUES ('2015-02-14 10:44:03'); +INSERT INTO logs VALUES ('2015-02-14 10:44:08'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (created_at pgroonga.timestamp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT created_at + FROM logs + WHERE created_at BETWEEN '2015-02-14 10:44:03' AND '2015-02-14 10:44:09' + ORDER BY created_at ASC; + created_at +-------------------------- + Sat Feb 14 10:44:03 2015 + Sat Feb 14 10:44:04 2015 + Sat Feb 14 10:44:05 2015 + Sat Feb 14 10:44:06 2015 + Sat Feb 14 10:44:07 2015 + Sat Feb 14 10:44:08 2015 + Sat Feb 14 10:44:09 2015 +(7 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/compare/varchar/single/equal/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/varchar/single/equal/bitmapscan.out 2017-08-10 14:49:35 +0900 (8f0d861) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + title varchar(1023) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (title pgroonga.varchar_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, title + FROM memos + WHERE title = 'Groonga'; + id | title +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/compare/varchar/single/equal/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/compare/varchar/single/equal/indexscan.out 2017-08-10 14:49:35 +0900 (356c649) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + title varchar(1023) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (title pgroonga.varchar_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, title + FROM memos + WHERE title = 'Groonga'; + id | title +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (e343ff6) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + QUERY PLAN +--------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents &@ 'Groonga'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &@ 'Groonga'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/indexscan.out 2017-08-10 14:49:35 +0900 (e28afb5) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + QUERY PLAN +------------------------------------------------ + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &@ 'Groonga'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/seqscan.out 2017-08-10 14:49:35 +0900 (091842b) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/bitmapscan.out 2017-08-10 14:49:35 +0900 (fa3b330) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents &? 'rdbms OR engine'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &? 'rdbms OR engine'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/indexscan.out 2017-08-10 14:49:35 +0900 (fe3f85e) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------- + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &? 'rdbms OR engine'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/seqscan.out 2017-08-10 14:49:35 +0900 (56921aa) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (09bde68) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + QUERY PLAN +------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (contents &@~ 'rdbms OR engine'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &@~ 'rdbms OR engine'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/indexscan.out 2017-08-10 14:49:35 +0900 (22bc38e) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + QUERY PLAN +------------------------------------------------------ + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &@~ 'rdbms OR engine'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/seqscan.out 2017-08-10 14:49:35 +0900 (6a27e4d) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/bitmapscan.out 2017-08-10 14:49:35 +0900 (fa58bba) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + QUERY PLAN +--------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents %% 'Groonga'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents %% 'Groonga'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/indexscan.out 2017-08-10 14:49:35 +0900 (92b10ee) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + QUERY PLAN +------------------------------------------------ + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents %% 'Groonga'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/seqscan.out 2017-08-10 14:49:35 +0900 (ac1c217) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2-greater/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2-greater/bitmapscan.out 2017-08-10 14:49:35 +0900 (265bf72) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &?> Array['rdbms', 'groonga engine']; + QUERY PLAN +----------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents &?> '{rdbms,"groonga engine"}'::text[]) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &?> '{rdbms,"groonga engine"}'::text[]) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &?> Array['rdbms', 'groonga engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2-greater/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2-greater/indexscan.out 2017-08-10 14:49:35 +0900 (8ab3fd5) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &?> Array['rdbms', 'groonga engine']; + QUERY PLAN +----------------------------------------------------------------- + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &?> '{rdbms,"groonga engine"}'::text[]) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &?> Array['rdbms', 'groonga engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2-greater/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2-greater/seqscan.out 2017-08-10 14:49:35 +0900 (454cb2f) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &?> Array['rdbms', 'groonga engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (e7ab7df) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &?| Array['rdbms', 'groonga engine']; + QUERY PLAN +----------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents &?| '{rdbms,"groonga engine"}'::text[]) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &?| '{rdbms,"groonga engine"}'::text[]) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &?| Array['rdbms', 'groonga engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/indexscan.out 2017-08-10 14:49:35 +0900 (f8d58e0) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &?| Array['rdbms', 'groonga engine']; + QUERY PLAN +----------------------------------------------------------------- + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &?| '{rdbms,"groonga engine"}'::text[]) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &?| Array['rdbms', 'groonga engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/seqscan.out 2017-08-10 14:49:35 +0900 (f476857) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &?| Array['rdbms', 'groonga engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/bitmapscan.out 2017-08-10 14:49:35 +0900 (2d9d4e6) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents @@ 'rdbms OR engine'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents @@ 'rdbms OR engine'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/indexscan.out 2017-08-10 14:49:35 +0900 (6cd86ab) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------- + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents @@ 'rdbms OR engine'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/seqscan.out 2017-08-10 14:49:35 +0900 (4fec269) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (99b16c7) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents &? 'rdbms OR engine'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &? 'rdbms OR engine'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/indexscan.out 2017-08-10 14:49:35 +0900 (cc9f907) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------- + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &? 'rdbms OR engine'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/seqscan.out 2017-08-10 14:49:35 +0900 (b5881a8) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (fb4c2d8) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &~? 'Mroonga: A MySQL plugin that uses Groonga'; + QUERY PLAN +-------------------------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents &~? 'Mroonga: A MySQL plugin that uses Groonga'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &~? 'Mroonga: A MySQL plugin that uses Groonga'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &~? 'Mroonga: A MySQL plugin that uses Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/indexscan.out 2017-08-10 14:49:35 +0900 (1c17544) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &~? 'Mroonga: A MySQL plugin that uses Groonga'; + QUERY PLAN +-------------------------------------------------------------------------------- + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &~? 'Mroonga: A MySQL plugin that uses Groonga'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &~? 'Mroonga: A MySQL plugin that uses Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/seqscan.out 2017-08-10 14:49:35 +0900 (0f1b9a6) @@ -0,0 +1,23 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &~? 'Mroonga: A MySQL plugin that uses Groonga'; +ERROR: pgroonga: similar search is available only in index scan +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/match-in-v2/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/match-in-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (4665ca3) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@| Array['rdbms', 'engine']; + QUERY PLAN +------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents &@| '{rdbms,engine}'::text[]) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &@| '{rdbms,engine}'::text[]) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &@| Array['rdbms', 'engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/match-in-v2/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/match-in-v2/indexscan.out 2017-08-10 14:49:35 +0900 (fe9ccad) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@| Array['rdbms', 'engine']; + QUERY PLAN +------------------------------------------------------- + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &@| '{rdbms,engine}'::text[]) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &@| Array['rdbms', 'engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/match-in-v2/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/match-in-v2/seqscan.out 2017-08-10 14:49:35 +0900 (1eb62c2) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &@| Array['rdbms', 'engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/match-v2/bitmapscan.out (+45 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/match-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (af8dd7e) @@ -0,0 +1,45 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +INSERT INTO memos + VALUES ('empty', + ARRAY[]::text[]); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + QUERY PLAN +--------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents &@ 'Groonga'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &@ 'Groonga'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/match-v2/indexscan.out (+43 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/match-v2/indexscan.out 2017-08-10 14:49:35 +0900 (79f1bbe) @@ -0,0 +1,43 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +INSERT INTO memos + VALUES ('empty', + ARRAY[]::text[]); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + QUERY PLAN +------------------------------------------------ + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &@ 'Groonga'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/match-v2/seqscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/match-v2/seqscan.out 2017-08-10 14:49:35 +0900 (6b4fd29) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +INSERT INTO memos + VALUES ('empty', + ARRAY[]::text[]); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/match/bitmapscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/match/bitmapscan.out 2017-08-10 14:49:35 +0900 (4cfbc8a) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/match/indexscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/match/indexscan.out 2017-08-10 14:49:35 +0900 (554414e) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/match/seqscan.out (+28 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/match/seqscan.out 2017-08-10 14:49:35 +0900 (8e438d7) @@ -0,0 +1,28 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/query-in-v2/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/query-in-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (eec7cd5) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~| Array['rdbms', 'groonga engine']; + QUERY PLAN +------------------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (contents &@~| '{rdbms,"groonga engine"}'::text[]) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &@~| '{rdbms,"groonga engine"}'::text[]) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &@~| Array['rdbms', 'groonga engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/query-in-v2/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/query-in-v2/indexscan.out 2017-08-10 14:49:35 +0900 (80a1fae) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~| Array['rdbms', 'groonga engine']; + QUERY PLAN +------------------------------------------------------------------ + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &@~| '{rdbms,"groonga engine"}'::text[]) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &@~| Array['rdbms', 'groonga engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/query-in-v2/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/query-in-v2/seqscan.out 2017-08-10 14:49:35 +0900 (eba2186) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &@~| Array['rdbms', 'groonga engine']; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/query-v2/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/query-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (0dfd075) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + QUERY PLAN +------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (contents &@~ 'rdbms OR engine'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &@~ 'rdbms OR engine'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/query-v2/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/query-v2/indexscan.out 2017-08-10 14:49:35 +0900 (4cdc470) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + QUERY PLAN +------------------------------------------------------ + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &@~ 'rdbms OR engine'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/query-v2/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/query-v2/seqscan.out 2017-08-10 14:49:35 +0900 (8dd6e77) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/query/bitmapscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/query/bitmapscan.out 2017-08-10 14:49:35 +0900 (58799e8) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/query/indexscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/query/indexscan.out 2017-08-10 14:49:35 +0900 (7ce2056) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/query/seqscan.out (+28 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/query/seqscan.out 2017-08-10 14:49:35 +0900 (d075647) @@ -0,0 +1,28 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/script-v2/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/script-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (03ba3fd) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &` 'contents @ "rdbms" || contents @ "engine"'; + QUERY PLAN +------------------------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents &` 'contents @ "rdbms" || contents @ "engine"'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &` 'contents @ "rdbms" || contents @ "engine"'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &` 'contents @ "rdbms" || contents @ "engine"'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/script-v2/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/script-v2/indexscan.out 2017-08-10 14:49:35 +0900 (8451781) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &` 'contents @ "rdbms" || contents @ "engine"'; + QUERY PLAN +------------------------------------------------------------------------------- + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &` 'contents @ "rdbms" || contents @ "engine"'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &` 'contents @ "rdbms" || contents @ "engine"'; + title | contents +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/script-v2/seqscan.out (+30 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/script-v2/seqscan.out 2017-08-10 14:49:35 +0900 (68d89c9) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + title text, + text text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (text pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, text + FROM memos + WHERE text &` 'text @ "rdbms" || text @ "engine"'; + title | text +------------+------------------------------------------------------------------------------------------- + PostgreSQL | {"PostgreSQL is an OSS RDBMS","PostgreSQL has partial full-text search support"} + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/similar-v2/bitmapscan.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/similar-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (ae76c33) @@ -0,0 +1,42 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@* 'Mroonga: A MySQL plugin that uses Groonga'; + QUERY PLAN +-------------------------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (contents &@* 'Mroonga: A MySQL plugin that uses Groonga'::text) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (contents &@* 'Mroonga: A MySQL plugin that uses Groonga'::text) +(4 rows) + +SELECT title, contents + FROM memos + WHERE contents &@* 'Mroonga: A MySQL plugin that uses Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/similar-v2/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/similar-v2/indexscan.out 2017-08-10 14:49:35 +0900 (1632a15) @@ -0,0 +1,40 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@* 'Mroonga: A MySQL plugin that uses Groonga'; + QUERY PLAN +-------------------------------------------------------------------------------- + Index Scan using pgroonga_memos_index on memos + Index Cond: (contents &@* 'Mroonga: A MySQL plugin that uses Groonga'::text) +(2 rows) + +SELECT title, contents + FROM memos + WHERE contents &@* 'Mroonga: A MySQL plugin that uses Groonga'; + title | contents +----------+-------------------------------------------------------------------------------------------------------------------------- + Groonga | {"Groonga is an OSS full-text search engine","Groonga has full full-text search support"} + PGroonga | {"PGroonga is an OSS PostgreSQL extension","PGroonga adds full full-text search support based on Groonga to PostgreSQL"} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text-array/similar-v2/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text-array/similar-v2/seqscan.out 2017-08-10 14:49:35 +0900 (7ee3b85) @@ -0,0 +1,23 @@ +CREATE TABLE memos ( + title text, + contents text[] +); +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, contents + FROM memos + WHERE contents &@* 'Mroonga: A MySQL plugin that uses Groonga'; +ERROR: pgroonga: similar search is available only in index scan +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/multiple/match/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/multiple/match/bitmapscan.out 2017-08-10 14:49:35 +0900 (33b1c8b) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + title text, + 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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (title pgroonga.text_full_text_search_ops_v2, + content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, title, content + FROM memos + WHERE title %% 'Groonga'; + id | title | content +----+---------+---------------------------------- + 2 | Groonga | is fast full text search engine. +(1 row) + +SELECT id, title, content + FROM memos + WHERE content %% 'Groonga'; + id | title | content +----+----------+---------------------------------------------- + 3 | PGroonga | is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/multiple/match/indexscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/multiple/match/indexscan.out 2017-08-10 14:49:35 +0900 (d100641) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + title text, + 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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (title pgroonga.text_full_text_search_ops_v2, + content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, title, content + FROM memos + WHERE title %% 'Groonga'; + id | title | content +----+---------+---------------------------------- + 2 | Groonga | is fast full text search engine. +(1 row) + +SELECT id, title, content + FROM memos + WHERE content %% 'Groonga'; + id | title | content +----+----------+---------------------------------------------- + 3 | PGroonga | is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/multiple/match/seqscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/multiple/match/seqscan.out 2017-08-10 14:49:35 +0900 (dc6da9e) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + title text, + 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.'); +CREATE INDEX grnindex ON memos USING pgroonga (title, content); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, title, content + FROM memos + WHERE title %% 'Groonga'; + id | title | content +----+----------+---------------------------------------------- + 2 | Groonga | is fast full text search engine. + 3 | PGroonga | is a PostgreSQL extension that uses Groonga. +(2 rows) + +SELECT id, title, content + FROM memos + WHERE content %% 'Groonga'; + id | title | content +----+----------+---------------------------------------------- + 3 | PGroonga | is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/multiple/update.out (+46 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/multiple/update.out 2017-08-10 14:49:35 +0900 (9079dda) @@ -0,0 +1,46 @@ +CREATE TABLE memos ( + id integer, + title text, + 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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (title pgroonga.text_full_text_search_ops_v2, + content pgroonga.text_full_text_search_ops_v2); +UPDATE memos + SET title = 'Mroonga', + content = 'is a MySQL plugin that uses Groonga.' + WHERE id = 3; +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, title, content + FROM memos + WHERE content %% 'Groonga'; + id | title | content +----+---------+-------------------------------------- + 3 | Mroonga | is a MySQL plugin that uses Groonga. +(1 row) + +SELECT id, title, content + FROM memos + WHERE title %% 'Mroonga'; + id | title | content +----+---------+-------------------------------------- + 3 | Mroonga | is a MySQL plugin that uses Groonga. +(1 row) + +SELECT id, title, content + FROM memos + WHERE content %% 'MySQL'; + id | title | content +----+---------+-------------------------------------- + 3 | Mroonga | is a MySQL plugin that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/and/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/and/bitmapscan.out 2017-08-10 14:49:35 +0900 (0584a2a) @@ -0,0 +1,21 @@ +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.'); +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 %% 'PGroonga' AND content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/and/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/and/indexscan.out 2017-08-10 14:49:35 +0900 (4dbe64c) @@ -0,0 +1,21 @@ +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.'); +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 %% 'PGroonga' AND content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/and/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/and/seqscan.out 2017-08-10 14:49:35 +0900 (945b133) @@ -0,0 +1,20 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content %% 'PGroonga' AND content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (5d0944c) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + QUERY PLAN +-------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &@ 'Groonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &@ 'Groonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/indexscan.out 2017-08-10 14:49:35 +0900 (6de8fd4) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + QUERY PLAN +-------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &@ 'Groonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/seqscan.out 2017-08-10 14:49:35 +0900 (de19034) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/bitmapscan.out 2017-08-10 14:49:35 +0900 (09d1a76) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + QUERY PLAN +---------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &? 'rdbms OR engine'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &? 'rdbms OR engine'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/indexscan.out 2017-08-10 14:49:35 +0900 (ac40d2c) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + QUERY PLAN +---------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &? 'rdbms OR engine'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/seqscan.out 2017-08-10 14:49:35 +0900 (552025e) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (8dc4fc2) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &@~ 'rdbms OR engine'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &@~ 'rdbms OR engine'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/indexscan.out 2017-08-10 14:49:35 +0900 (61e3553) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &@~ 'rdbms OR engine'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/seqscan.out 2017-08-10 14:49:35 +0900 (e6cd259) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (17f3783) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@> Array['rdbms', 'engine']; + QUERY PLAN +------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (content &@> '{rdbms,engine}'::text[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (content &@> '{rdbms,engine}'::text[]) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@> Array['rdbms', 'engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/indexscan.out 2017-08-10 14:49:35 +0900 (c5ebcc1) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@> Array['rdbms', 'engine']; + QUERY PLAN +------------------------------------------------------ + Index Scan using pgrn_index on memos + Index Cond: (content &@> '{rdbms,engine}'::text[]) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@> Array['rdbms', 'engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/seqscan.out 2017-08-10 14:49:35 +0900 (d830ff5) @@ -0,0 +1,20 @@ +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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@> Array['rdbms', 'engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/bitmapscan.out 2017-08-10 14:49:35 +0900 (8a1f03e) @@ -0,0 +1,34 @@ +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.'); +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; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + QUERY PLAN +-------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content %% 'Groonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content %% 'Groonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/indexscan.out 2017-08-10 14:49:35 +0900 (8c606e9) @@ -0,0 +1,32 @@ +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.'); +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; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + QUERY PLAN +-------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content %% 'Groonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/seqscan.out 2017-08-10 14:49:35 +0900 (24c78d3) @@ -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.'); +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 %% 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/bitmapscan.out 2017-08-10 14:49:35 +0900 (e96c2d4) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']; + QUERY PLAN +---------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &?> '{rdbms,"groonga engine"}'::text[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (content &?> '{rdbms,"groonga engine"}'::text[]) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/indexscan.out 2017-08-10 14:49:35 +0900 (245ae2c) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']; + QUERY PLAN +---------------------------------------------------------------- + Index Scan using pgrn_index on memos + Index Cond: (content &?> '{rdbms,"groonga engine"}'::text[]) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. + 1 | PostgreSQL is a RDBMS. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/seqscan.out 2017-08-10 14:49:35 +0900 (071b37e) @@ -0,0 +1,20 @@ +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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (4a7734f) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']; + QUERY PLAN +---------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &?| '{rdbms,"groonga engine"}'::text[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (content &?| '{rdbms,"groonga engine"}'::text[]) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/indexscan.out 2017-08-10 14:49:35 +0900 (dddc69e) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']; + QUERY PLAN +---------------------------------------------------------------- + Index Scan using pgrn_index on memos + Index Cond: (content &?| '{rdbms,"groonga engine"}'::text[]) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. + 1 | PostgreSQL is a RDBMS. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/seqscan.out 2017-08-10 14:49:35 +0900 (8906877) @@ -0,0 +1,20 @@ +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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/bitmapscan.out 2017-08-10 14:49:35 +0900 (a11a233) @@ -0,0 +1,34 @@ +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.'); +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; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + QUERY PLAN +---------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @@ 'rdbms OR engine'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content @@ 'rdbms OR engine'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/indexscan.out 2017-08-10 14:49:35 +0900 (97931ca) @@ -0,0 +1,32 @@ +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.'); +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; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + QUERY PLAN +---------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @@ 'rdbms OR engine'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/seqscan.out 2017-08-10 14:49:35 +0900 (b8578bf) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +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.'); +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 @@ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (fe45e47) @@ -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.'); +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 &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/indexscan.out 2017-08-10 14:49:35 +0900 (6caf0ef) @@ -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.'); +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 &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/seqscan.out 2017-08-10 14:49:35 +0900 (6ccbba1) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +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.'); +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 &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (c55ff11) @@ -0,0 +1,21 @@ +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.'); +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 &~? 'Mroonga is a MySQL plugin that uses Groonga.'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/indexscan.out 2017-08-10 14:49:35 +0900 (f594dd5) @@ -0,0 +1,21 @@ +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.'); +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 &~? 'Mroonga is a MySQL plugin that uses Groonga.'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/seqscan.out (+17 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/seqscan.out 2017-08-10 14:49:35 +0900 (3186fc7) @@ -0,0 +1,17 @@ +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.'); +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 &~? 'Mroonga is a MySQL plugin that uses Groonga.'; +ERROR: pgroonga: similar search available only in index scan +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/indexscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/seqscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/indexscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/seqscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/partial/bitmapscan.out (+24 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/partial/bitmapscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/partial/indexscan.out (+24 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/partial/indexscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/partial/seqscan.out (+24 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/partial/seqscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/bitmapscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/indexscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/seqscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (5e12d60) @@ -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); +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/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (0217de7) @@ -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); +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/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (7d03065) @@ -0,0 +1,21 @@ +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); +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/compatibility/schema/full-text-search/text/single/ilike/end-of-text/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (12f6113) @@ -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); +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/compatibility/schema/full-text-search/text/single/ilike/end-of-text/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (3330f95) @@ -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); +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/compatibility/schema/full-text-search/text/single/ilike/end-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (976cc37) @@ -0,0 +1,21 @@ +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); +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/compatibility/schema/full-text-search/text/single/ilike/partial/bitmapscan.out (+24 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (ea4db72) @@ -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); +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/compatibility/schema/full-text-search/text/single/ilike/partial/indexscan.out (+24 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/partial/indexscan.out 2017-08-10 14:49:35 +0900 (2a95a1f) @@ -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); +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/compatibility/schema/full-text-search/text/single/ilike/partial/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/partial/seqscan.out 2017-08-10 14:49:35 +0900 (0962ba7) @@ -0,0 +1,23 @@ +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); +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/compatibility/schema/full-text-search/text/single/ilike/underscore/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/underscore/bitmapscan.out 2017-08-10 14:49:35 +0900 (502ab25) @@ -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); +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/compatibility/schema/full-text-search/text/single/ilike/underscore/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/underscore/indexscan.out 2017-08-10 14:49:35 +0900 (3ebd584) @@ -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); +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/compatibility/schema/full-text-search/text/single/ilike/underscore/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/ilike/underscore/seqscan.out 2017-08-10 14:49:35 +0900 (839b4c5) @@ -0,0 +1,20 @@ +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); +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/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/indexscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/seqscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/indexscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/seqscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/partial/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/partial/bitmapscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/partial/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/partial/indexscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/partial/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/partial/seqscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/underscore/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/underscore/bitmapscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/underscore/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/underscore/indexscan.out 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/underscore/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like-v2/underscore/seqscan.out 2017-08-10 14:49:35 +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; Added: expected/compatibility/schema/full-text-search/text/single/like/begin-of-text/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (6db050c) @@ -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); +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/compatibility/schema/full-text-search/text/single/like/begin-of-text/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (6e215af) @@ -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); +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/compatibility/schema/full-text-search/text/single/like/begin-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (06b7347) @@ -0,0 +1,21 @@ +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); +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/compatibility/schema/full-text-search/text/single/like/end-of-text/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (ae885b4) @@ -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); +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/compatibility/schema/full-text-search/text/single/like/end-of-text/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (d79cb5a) @@ -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); +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/compatibility/schema/full-text-search/text/single/like/end-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (335d867) @@ -0,0 +1,21 @@ +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); +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/compatibility/schema/full-text-search/text/single/like/partial/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (2236742) @@ -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); +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/compatibility/schema/full-text-search/text/single/like/partial/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/partial/indexscan.out 2017-08-10 14:49:35 +0900 (504b6e5) @@ -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); +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/compatibility/schema/full-text-search/text/single/like/partial/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/partial/seqscan.out 2017-08-10 14:49:35 +0900 (df93bba) @@ -0,0 +1,21 @@ +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); +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/compatibility/schema/full-text-search/text/single/like/underscore/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/underscore/bitmapscan.out 2017-08-10 14:49:35 +0900 (1d53f52) @@ -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); +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/compatibility/schema/full-text-search/text/single/like/underscore/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/underscore/indexscan.out 2017-08-10 14:49:35 +0900 (3c40637) @@ -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); +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/compatibility/schema/full-text-search/text/single/like/underscore/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/like/underscore/seqscan.out 2017-08-10 14:49:35 +0900 (19b151c) @@ -0,0 +1,20 @@ +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); +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; Added: expected/compatibility/schema/full-text-search/text/single/match-in-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/match-in-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (25e3720) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']; + QUERY PLAN +------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (content &@| '{rdbms,engine}'::text[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (content &@| '{rdbms,engine}'::text[]) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/match-in-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/match-in-v2/indexscan.out 2017-08-10 14:49:35 +0900 (72010d4) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']; + QUERY PLAN +------------------------------------------------------ + Index Scan using pgrn_index on memos + Index Cond: (content &@| '{rdbms,engine}'::text[]) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/match-in-v2/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/match-in-v2/seqscan.out 2017-08-10 14:49:35 +0900 (c1bbe31) @@ -0,0 +1,20 @@ +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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/match-v2/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/match-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (c9feae5) @@ -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.'); +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 &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/match-v2/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/match-v2/indexscan.out 2017-08-10 14:49:35 +0900 (ffdc2c9) @@ -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.'); +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 &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/match-v2/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/match-v2/seqscan.out 2017-08-10 14:49:35 +0900 (b14508d) @@ -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.'); +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 &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/match/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/match/bitmapscan.out 2017-08-10 14:49:35 +0900 (30642c4) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/match/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/match/indexscan.out 2017-08-10 14:49:35 +0900 (f0e922a) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/match/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/match/seqscan.out 2017-08-10 14:49:35 +0900 (bcdef3b) @@ -0,0 +1,21 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/query-in-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/query-in-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (e3f90e3) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']; + QUERY PLAN +----------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &@~| '{rdbms,"groonga engine"}'::text[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (content &@~| '{rdbms,"groonga engine"}'::text[]) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/query-in-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/query-in-v2/indexscan.out 2017-08-10 14:49:35 +0900 (d868603) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']; + QUERY PLAN +----------------------------------------------------------------- + Index Scan using pgrn_index on memos + Index Cond: (content &@~| '{rdbms,"groonga engine"}'::text[]) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. + 1 | PostgreSQL is a RDBMS. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/query-in-v2/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/query-in-v2/seqscan.out 2017-08-10 14:49:35 +0900 (1699172) @@ -0,0 +1,20 @@ +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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/query-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/query-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (9b9364c) @@ -0,0 +1,34 @@ +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.'); +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; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &@~ 'rdbms OR engine'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &@~ 'rdbms OR engine'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/query-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/query-v2/indexscan.out 2017-08-10 14:49:35 +0900 (dbd130d) @@ -0,0 +1,32 @@ +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.'); +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; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &@~ 'rdbms OR engine'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/query-v2/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/query-v2/seqscan.out 2017-08-10 14:49:35 +0900 (1d0708b) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +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.'); +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 &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/query/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/query/bitmapscan.out 2017-08-10 14:49:35 +0900 (cbe061a) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/query/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/query/indexscan.out 2017-08-10 14:49:35 +0900 (f92d081) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/query/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/query/seqscan.out 2017-08-10 14:49:35 +0900 (559018e) @@ -0,0 +1,22 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/script-v2/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/script-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (6594e30) @@ -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.'); +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 &` 'content @ "rdbms" || content @ "engine"'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/script-v2/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/script-v2/indexscan.out 2017-08-10 14:49:35 +0900 (cd0d49f) @@ -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.'); +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 &` 'content @ "rdbms" || content @ "engine"'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/script-v2/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/script-v2/seqscan.out 2017-08-10 14:49:35 +0900 (3012904) @@ -0,0 +1,20 @@ +CREATE TABLE memos ( + id integer, + text 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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, text + FROM memos + WHERE text &` 'text @ "rdbms" || text @ "engine"'; + id | text +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/similar-v2/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/similar-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (4e389eb) @@ -0,0 +1,33 @@ +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.'); +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; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + QUERY PLAN +---------------------------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &@* 'Mroonga is a MySQL plugin that uses Groonga.'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &@* 'Mroonga is a MySQL plugin that uses Groonga.'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/similar-v2/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/similar-v2/indexscan.out 2017-08-10 14:49:35 +0900 (d0a3b79) @@ -0,0 +1,31 @@ +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.'); +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; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + QUERY PLAN +---------------------------------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &@* 'Mroonga is a MySQL plugin that uses Groonga.'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/similar-v2/seqscan.out (+17 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/similar-v2/seqscan.out 2017-08-10 14:49:35 +0900 (626a097) @@ -0,0 +1,17 @@ +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.'); +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 &@* 'Mroonga is a MySQL plugin that uses Groonga.'; +ERROR: pgroonga: similar search available only in index scan +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/truncate.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/truncate.out 2017-08-10 14:49:35 +0900 (c35b088) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +TRUNCATE memos; +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.'); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content %% 'PostgreSQL'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/text/single/update.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/text/single/update.out 2017-08-10 14:49:35 +0900 (494a402) @@ -0,0 +1,31 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +UPDATE memos SET content = 'Mroonga is a MySQL plugin that uses Groonga.' + WHERE id = 3; +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content %% 'PostgreSQL'; + id | content +----+------------------------ + 1 | PostgreSQL is a RDBMS. +(1 row) + +SELECT id, content + FROM memos + WHERE content %% 'MySQL'; + id | content +----+---------------------------------------------- + 3 | Mroonga is a MySQL plugin that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (1cb84af) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/indexscan.out 2017-08-10 14:49:35 +0900 (4722483) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v1/match-v2/seqscan.out 2017-08-10 14:49:35 +0900 (8a36dee) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/bitmapscan.out 2017-08-10 14:49:35 +0900 (ab95025) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/indexscan.out 2017-08-10 14:49:35 +0900 (8516491) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2-question/seqscan.out 2017-08-10 14:49:35 +0900 (831c77e) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (28eddad) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + QUERY PLAN +------------------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (content &@~ 'rdbms OR engine'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &@~ 'rdbms OR engine'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/indexscan.out 2017-08-10 14:49:35 +0900 (57bf988) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + QUERY PLAN +------------------------------------------------------------------ + Index Scan using grnindex on memos + Index Cond: (content &@~ 'rdbms OR engine'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v1/query-v2/seqscan.out 2017-08-10 14:49:35 +0900 (e741e75) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/bitmapscan.out 2017-08-10 14:49:35 +0900 (55fa165) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + QUERY PLAN +--------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content %% 'Groonga'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content %% 'Groonga'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/indexscan.out 2017-08-10 14:49:35 +0900 (d9e40c6) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + QUERY PLAN +--------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content %% 'Groonga'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/match-v1/seqscan.out 2017-08-10 14:49:35 +0900 (c68d33b) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2-greater/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2-greater/bitmapscan.out 2017-08-10 14:49:35 +0900 (46b5716) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']::varchar[]; + QUERY PLAN +----------------------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &?> '{rdbms,"groonga engine"}'::character varying[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (content &?> '{rdbms,"groonga engine"}'::character varying[]) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']::varchar[]; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2-greater/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2-greater/indexscan.out 2017-08-10 14:49:35 +0900 (9bcc3d6) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']::varchar[]; + QUERY PLAN +----------------------------------------------------------------------------- + Index Scan using pgrn_index on memos + Index Cond: (content &?> '{rdbms,"groonga engine"}'::character varying[]) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']::varchar[]; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. + 1 | PostgreSQL is a RDBMS. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2-greater/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2-greater/seqscan.out 2017-08-10 14:49:35 +0900 (0e3cbf3) @@ -0,0 +1,20 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']::varchar[]; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (e778d1c) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']::varchar[]; + QUERY PLAN +----------------------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &?| '{rdbms,"groonga engine"}'::character varying[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (content &?| '{rdbms,"groonga engine"}'::character varying[]) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']::varchar[]; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/indexscan.out 2017-08-10 14:49:35 +0900 (8d28603) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']::varchar[]; + QUERY PLAN +----------------------------------------------------------------------------- + Index Scan using pgrn_index on memos + Index Cond: (content &?| '{rdbms,"groonga engine"}'::character varying[]) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']::varchar[]; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. + 1 | PostgreSQL is a RDBMS. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-in-v2/seqscan.out 2017-08-10 14:49:35 +0900 (77b80a3) @@ -0,0 +1,20 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']::varchar[]; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/bitmapscan.out 2017-08-10 14:49:35 +0900 (e2db945) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @@ 'rdbms OR engine'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content @@ 'rdbms OR engine'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/indexscan.out 2017-08-10 14:49:35 +0900 (a087ee6) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @@ 'rdbms OR engine'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v1/seqscan.out 2017-08-10 14:49:35 +0900 (52d938b) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (d262b24) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &? 'rdbms OR engine'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &? 'rdbms OR engine'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/indexscan.out 2017-08-10 14:49:35 +0900 (3772066) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + QUERY PLAN +----------------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &? 'rdbms OR engine'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/query-v2/seqscan.out 2017-08-10 14:49:35 +0900 (280d1ab) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (f509319) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~? 'Mroonga is a MySQL plugin that uses Groonga.'; + QUERY PLAN +----------------------------------------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~? 'Mroonga is a MySQL plugin that uses Groonga.'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~? 'Mroonga is a MySQL plugin that uses Groonga.'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~? 'Mroonga is a MySQL plugin that uses Groonga.'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/indexscan.out 2017-08-10 14:49:35 +0900 (acc9eb1) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~? 'Mroonga is a MySQL plugin that uses Groonga.'; + QUERY PLAN +----------------------------------------------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~? 'Mroonga is a MySQL plugin that uses Groonga.'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~? 'Mroonga is a MySQL plugin that uses Groonga.'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/seqscan.out (+17 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/compatibility/v2/similar-v2/seqscan.out 2017-08-10 14:49:35 +0900 (07c98a6) @@ -0,0 +1,17 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~? 'Mroonga is a MySQL plugin that uses Groonga.'; +ERROR: pgroonga: similar search is available only in index scan +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/match-in-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/match-in-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (954762d) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']::varchar[]; + QUERY PLAN +------------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &@| '{rdbms,engine}'::character varying[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (content &@| '{rdbms,engine}'::character varying[]) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']::varchar[]; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/match-in-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/match-in-v2/indexscan.out 2017-08-10 14:49:35 +0900 (834f358) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']::varchar[]; + QUERY PLAN +------------------------------------------------------------------- + Index Scan using pgrn_index on memos + Index Cond: (content &@| '{rdbms,engine}'::character varying[]) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']::varchar[]; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/match-in-v2/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/match-in-v2/seqscan.out 2017-08-10 14:49:35 +0900 (2d7a247) @@ -0,0 +1,20 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']::varchar[]; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/match-v2/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/match-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (cc03b18) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/match-v2/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/match-v2/indexscan.out 2017-08-10 14:49:35 +0900 (f150ee9) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/match-v2/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/match-v2/seqscan.out 2017-08-10 14:49:35 +0900 (2b60aaf) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/query-in-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/query-in-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (a94de91) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']::varchar[]; + QUERY PLAN +------------------------------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (content &@~| '{rdbms,"groonga engine"}'::character varying[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (content &@~| '{rdbms,"groonga engine"}'::character varying[]) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']::varchar[]; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/query-in-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/query-in-v2/indexscan.out 2017-08-10 14:49:35 +0900 (804ab96) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']::varchar[]; + QUERY PLAN +------------------------------------------------------------------------------ + Index Scan using pgrn_index on memos + Index Cond: (content &@~| '{rdbms,"groonga engine"}'::character varying[]) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']::varchar[]; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. + 1 | PostgreSQL is a RDBMS. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/query-in-v2/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/query-in-v2/seqscan.out 2017-08-10 14:49:35 +0900 (7438e10) @@ -0,0 +1,20 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']::varchar[]; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/query-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/query-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (eea8239) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + QUERY PLAN +------------------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (content &@~ 'rdbms OR engine'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &@~ 'rdbms OR engine'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/query-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/query-v2/indexscan.out 2017-08-10 14:49:35 +0900 (6880745) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + QUERY PLAN +------------------------------------------------------------------ + Index Scan using grnindex on memos + Index Cond: (content &@~ 'rdbms OR engine'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/query-v2/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/query-v2/seqscan.out 2017-08-10 14:49:35 +0900 (2f125b9) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/script-v2/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/script-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (da678b4) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content &` 'content @ "rdbms" || content @ "engine"'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/script-v2/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/script-v2/indexscan.out 2017-08-10 14:49:35 +0900 (780a0e4) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &` 'content @ "rdbms" || content @ "engine"'; + id | content +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/script-v2/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/script-v2/seqscan.out 2017-08-10 14:49:35 +0900 (afa0d48) @@ -0,0 +1,20 @@ +CREATE TABLE memos ( + id integer, + text varchar(256) +); +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.'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, text + FROM memos + WHERE text &` 'text @ "rdbms" || text @ "engine"'; + id | text +----+------------------------------------------ + 1 | PostgreSQL is a RDBMS. + 2 | Groonga is fast full text search engine. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/similar-v2/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/similar-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (9f016a6) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + QUERY PLAN +----------------------------------------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &@* 'Mroonga is a MySQL plugin that uses Groonga.'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &@* 'Mroonga is a MySQL plugin that uses Groonga.'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/similar-v2/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/similar-v2/indexscan.out 2017-08-10 14:49:35 +0900 (977c971) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + QUERY PLAN +----------------------------------------------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &@* 'Mroonga is a MySQL plugin that uses Groonga.'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/full-text-search/varchar/similar-v2/seqscan.out (+17 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/full-text-search/varchar/similar-v2/seqscan.out 2017-08-10 14:49:35 +0900 (d9b7da6) @@ -0,0 +1,17 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_full_text_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; +ERROR: pgroonga: similar search is available only in index scan +DROP TABLE memos; Added: expected/compatibility/schema/function/command/after-truncate.out (+19 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/command/after-truncate.out 2017-08-10 14:49:35 +0900 (ae624cf) @@ -0,0 +1,19 @@ +CREATE TABLE memos ( + content text +); +CREATE INDEX pgroonga_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +TRUNCATE memos; +INSERT INTO memos VALUES ('PostgreSQL is a RDBMS.'); +INSERT INTO memos VALUES ('Groonga is fast full text search engine.'); +INSERT INTO memos VALUES ('PGroonga is a PostgreSQL extension that uses Groonga.'); +SELECT pgroonga.command('select ' || + pgroonga.table_name('pgroonga_index') || + ' --output_columns content')::json->>1 + AS body; + body +-------------------------------------------------------------------------------------------------------------------------------------------------------------------- + [[[3],[["content","LongText"]],["PostgreSQL is a RDBMS."],["Groonga is fast full text search engine."],["PGroonga is a PostgreSQL extension that uses Groonga."]]] +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/function/command/arguments.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/command/arguments.out 2017-08-10 14:49:35 +0900 (cbc082f) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + content text +); +INSERT INTO memos VALUES ('PostgreSQL is a RDBMS.'); +INSERT INTO memos VALUES ('Groonga is fast full text search engine.'); +INSERT INTO memos VALUES ('PGroonga is a PostgreSQL extension that uses Groonga.'); +CREATE INDEX pgroonga_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SELECT pgroonga.command('select', + ARRAY[ + 'table', + pgroonga.table_name('pgroonga_index'), + 'output_columns', + '_id, content' + ])::json->>1 + AS body; + body +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + [[[3],[["_id","UInt32"],["content","LongText"]],[1,"PostgreSQL is a RDBMS."],[2,"Groonga is fast full text search engine."],[3,"PGroonga is a PostgreSQL extension that uses Groonga."]]] +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/function/command/select.out (+18 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/command/select.out 2017-08-10 14:49:35 +0900 (e963720) @@ -0,0 +1,18 @@ +CREATE TABLE memos ( + content text +); +INSERT INTO memos VALUES ('PostgreSQL is a RDBMS.'); +INSERT INTO memos VALUES ('Groonga is fast full text search engine.'); +INSERT INTO memos VALUES ('PGroonga is a PostgreSQL extension that uses Groonga.'); +CREATE INDEX pgroonga_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SELECT pgroonga.command('select ' || + pgroonga.table_name('pgroonga_index') || + ' --output_columns content')::json->>1 + AS body; + body +-------------------------------------------------------------------------------------------------------------------------------------------------------------------- + [[[3],[["content","LongText"]],["PostgreSQL is a RDBMS."],["Groonga is fast full text search engine."],["PGroonga is a PostgreSQL extension that uses Groonga."]]] +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/function/flush/jsonb.out (+16 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/flush/jsonb.out 2017-08-10 14:49:35 +0900 (1eab26f) @@ -0,0 +1,16 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": "Hello World"}'); +INSERT INTO logs VALUES (2, '{"message": "This is a pen"}'); +INSERT INTO logs VALUES (3, '{"message": "Good-by World"}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops); +SELECT pgroonga.flush('pgroonga_index'); + flush +------- + t +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/function/flush/multiple.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/flush/multiple.out 2017-08-10 14:49:35 +0900 (ae1dd28) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + title text, + 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.'); +CREATE INDEX pgroonga_index ON memos + USING pgroonga (title pgroonga.text_full_text_search_ops, + content pgroonga.text_full_text_search_ops); +SELECT pgroonga.flush('pgroonga_index'); + flush +------- + t +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/function/flush/nonexistent.out (+2 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/flush/nonexistent.out 2017-08-10 14:49:35 +0900 (a08efbe) @@ -0,0 +1,2 @@ +SELECT pgroonga.flush('pgroonga_index'); +ERROR: relation "pgroonga_index" does not exist Added: expected/compatibility/schema/function/flush/single.out (+16 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/flush/single.out 2017-08-10 14:49:35 +0900 (1d582da) @@ -0,0 +1,16 @@ +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.'); +CREATE INDEX pgroonga_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SELECT pgroonga.flush('pgroonga_index'); + flush +------- + t +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/function/query-expand/existent.out (+12 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/query-expand/existent.out 2017-08-10 14:49:35 +0900 (3e85506) @@ -0,0 +1,12 @@ +CREATE TABLE synonyms ( + term text PRIMARY KEY, + synonyms text[] +); +INSERT INTO synonyms VALUES ('Groonga', ARRAY['Groonga', 'Senna']); +SELECT pgroonga.query_expand('synonyms', 'term', 'synonyms', 'Groonga'); + query_expand +------------------------ + ((Groonga) OR (Senna)) +(1 row) + +DROP TABLE synonyms; Added: expected/compatibility/schema/function/query-expand/hash-index.out (+13 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/query-expand/hash-index.out 2017-08-10 14:49:35 +0900 (05696a5) @@ -0,0 +1,13 @@ +CREATE UNLOGGED TABLE synonyms ( + term text, + synonyms text[] +); +CREATE INDEX synonyms_term_index ON synonyms USING hash (term); +INSERT INTO synonyms VALUES ('Groonga', ARRAY['Groonga', 'Senna']); +SELECT pgroonga.query_expand('synonyms', 'term', 'synonyms', 'Groonga'); + query_expand +------------------------ + ((Groonga) OR (Senna)) +(1 row) + +DROP TABLE synonyms; Added: expected/compatibility/schema/function/query-expand/mix.out (+14 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/query-expand/mix.out 2017-08-10 14:49:35 +0900 (ec0f4b6) @@ -0,0 +1,14 @@ +CREATE TABLE synonyms ( + term text PRIMARY KEY, + synonyms text[] +); +INSERT INTO synonyms VALUES ('Mroonga', ARRAY['Mroonga', 'Groonga MySQL']); +INSERT INTO synonyms VALUES ('PGroonga', ARRAY['PGroonga', 'Groonga PostgreSQL']); +SELECT pgroonga.query_expand('synonyms', 'term', 'synonyms', + 'Ruby (Mroonga OR PGroonga)'); + query_expand +------------------------------------------------------------------------------- + Ruby (((Mroonga) OR (Groonga MySQL)) OR ((PGroonga) OR (Groonga PostgreSQL))) +(1 row) + +DROP TABLE synonyms; Added: expected/compatibility/schema/function/query-expand/multiple-terms.out (+14 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/query-expand/multiple-terms.out 2017-08-10 14:49:35 +0900 (150413e) @@ -0,0 +1,14 @@ +CREATE TABLE synonyms ( + term text, + synonyms text[] +); +CREATE INDEX synonyms_term_index ON synonyms (term); +INSERT INTO synonyms VALUES ('Groonga', ARRAY['Groonga', 'Senna']); +INSERT INTO synonyms VALUES ('Groonga', ARRAY['Mroonga', 'PGroonga', 'Rroonga']); +SELECT pgroonga.query_expand('synonyms', 'term', 'synonyms', 'Groonga'); + query_expand +---------------------------------------------------------------- + ((Mroonga) OR (PGroonga) OR (Rroonga) OR (Groonga) OR (Senna)) +(1 row) + +DROP TABLE synonyms; Added: expected/compatibility/schema/function/query-expand/no-index.out (+12 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/query-expand/no-index.out 2017-08-10 14:49:35 +0900 (71175ba) @@ -0,0 +1,12 @@ +CREATE TABLE synonyms ( + term text, + synonyms text[] +); +INSERT INTO synonyms VALUES ('Groonga', ARRAY['Groonga', 'Senna']); +SELECT pgroonga.query_expand('synonyms', 'term', 'synonyms', 'Groonga'); + query_expand +------------------------ + ((Groonga) OR (Senna)) +(1 row) + +DROP TABLE synonyms; Added: expected/compatibility/schema/function/query-expand/nonexistent.out (+11 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/query-expand/nonexistent.out 2017-08-10 14:49:35 +0900 (b1719e9) @@ -0,0 +1,11 @@ +CREATE TABLE synonyms ( + term text PRIMARY KEY, + synonyms text[] +); +SELECT pgroonga.query_expand('synonyms', 'term', 'synonyms', 'Groonga'); + query_expand +-------------- + Groonga +(1 row) + +DROP TABLE synonyms; Added: expected/compatibility/schema/function/query-expand/normal-index.out (+13 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/query-expand/normal-index.out 2017-08-10 14:49:35 +0900 (7411537) @@ -0,0 +1,13 @@ +CREATE TABLE synonyms ( + term text, + synonyms text[] +); +CREATE INDEX synonyms_term_index ON synonyms (term); +INSERT INTO synonyms VALUES ('Groonga', ARRAY['Groonga', 'Senna']); +SELECT pgroonga.query_expand('synonyms', 'term', 'synonyms', 'Groonga'); + query_expand +------------------------ + ((Groonga) OR (Senna)) +(1 row) + +DROP TABLE synonyms; Added: expected/compatibility/schema/function/query-expand/normalize-with-primary-key.out (+15 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/query-expand/normalize-with-primary-key.out 2017-08-10 14:49:35 +0900 (682c383) @@ -0,0 +1,15 @@ +CREATE TABLE synonyms ( + term text PRIMARY KEY, + synonyms text[] +); +CREATE INDEX synonyms_term_index ON synonyms + USING pgroonga (term pgroonga.text_term_search_ops_v2); +INSERT INTO synonyms VALUES ('Groonga', ARRAY['Groonga', 'Senna']); +INSERT INTO synonyms VALUES ('GROONGA', ARRAY['"Full text search"']); +SELECT pgroonga.query_expand('synonyms', 'term', 'synonyms', 'groonga'); + query_expand +------------------------------------------------ + ((Groonga) OR (Senna) OR ("Full text search")) +(1 row) + +DROP TABLE synonyms; Added: expected/compatibility/schema/function/query-expand/normalize.out (+15 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/query-expand/normalize.out 2017-08-10 14:49:35 +0900 (57c5d47) @@ -0,0 +1,15 @@ +CREATE TABLE synonyms ( + term text, + synonyms text[] +); +CREATE INDEX synonyms_term_index ON synonyms + USING pgroonga (term pgroonga.text_term_search_ops_v2); +INSERT INTO synonyms VALUES ('Groonga', ARRAY['Groonga', 'Senna']); +INSERT INTO synonyms VALUES ('GROONGA', ARRAY['"Full text search"']); +SELECT pgroonga.query_expand('synonyms', 'term', 'synonyms', 'groonga'); + query_expand +------------------------------------------------ + ((Groonga) OR (Senna) OR ("Full text search")) +(1 row) + +DROP TABLE synonyms; Added: expected/compatibility/schema/function/query-expand/not-text-array-synonyms.out (+7 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/query-expand/not-text-array-synonyms.out 2017-08-10 14:49:35 +0900 (4699062) @@ -0,0 +1,7 @@ +CREATE TABLE synonyms ( + term text PRIMARY KEY, + synonym text +); +SELECT pgroonga.query_expand('synonyms', 'term', 'synonym', 'Groonga'); +ERROR: pgroonga: query_expand: synonyms column isn't text[] type: <synonyms>.<synonym> +DROP TABLE synonyms; Added: expected/compatibility/schema/function/score/and.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/score/and.out 2017-08-10 14:49:35 +0900 (2fce89b) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer PRIMARY KEY, + 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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (id pgroonga.int4_ops, + content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content, pgroonga.score(memos) + FROM memos + WHERE content %% 'PGroonga' AND content %% 'Groonga'; + id | content | score +----+-------------------------------------------------------+------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. | 2 +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/function/score/composite-primary-key/like.out (+29 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/score/composite-primary-key/like.out 2017-08-10 14:49:35 +0900 (8f49a35) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + created_date varchar(10), + slug varchar(100), + content text, + PRIMARY KEY (created_date, slug) +); +INSERT INTO memos VALUES + ('2015-11-19', 'postgresql', 'PostgreSQL is a RDBMS.'); +INSERT INTO memos VALUES + ('2015-11-19', 'groonga', 'Groonga is fast full text search engine.'); +INSERT INTO memos VALUES + ('2015-11-19', 'pgroonga', 'PGroonga is a PostgreSQL extension that uses Groonga.'); +CREATE INDEX grnindex ON memos + USING pgroonga (created_date pgroonga.varchar_ops, + slug pgroonga.varchar_ops, + content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT created_date, slug, content, pgroonga.score(memos) + FROM memos + WHERE content LIKE '%Groonga%'; + created_date | slug | content | score +--------------+----------+-------------------------------------------------------+------- + 2015-11-19 | groonga | Groonga is fast full text search engine. | 1 + 2015-11-19 | pgroonga | PGroonga is a PostgreSQL extension that uses Groonga. | 1 +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/function/score/composite-primary-key/match.out (+29 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/score/composite-primary-key/match.out 2017-08-10 14:49:35 +0900 (5bd4305) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + created_date varchar(10), + slug varchar(100), + content text, + PRIMARY KEY (created_date, slug) +); +INSERT INTO memos VALUES + ('2015-11-19', 'postgresql', 'PostgreSQL is a RDBMS.'); +INSERT INTO memos VALUES + ('2015-11-19', 'groonga', 'Groonga is fast full text search engine.'); +INSERT INTO memos VALUES + ('2015-11-19', 'pgroonga', 'PGroonga is a PostgreSQL extension that uses Groonga.'); +CREATE INDEX grnindex ON memos + USING pgroonga (created_date pgroonga.varchar_ops, + slug pgroonga.varchar_ops, + content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT created_date, slug, content, pgroonga.score(memos) + FROM memos + WHERE content %% 'Groonga'; + created_date | slug | content | score +--------------+----------+-------------------------------------------------------+------- + 2015-11-19 | groonga | Groonga is fast full text search engine. | 1 + 2015-11-19 | pgroonga | PGroonga is a PostgreSQL extension that uses Groonga. | 1 +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/function/score/hot-updated.out (+26 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/score/hot-updated.out 2017-08-10 14:49:35 +0900 (0f365e4) @@ -0,0 +1,26 @@ +CREATE TABLE memos ( + id integer PRIMARY KEY, + tag varchar(256), + content text +); +CREATE INDEX grnindex ON memos + USING pgroonga (id pgroonga.int4_ops, + content pgroonga.text_full_text_search_ops); +INSERT INTO memos VALUES (1, 'pgsql', 'PostgreSQL is a RDBMS.'); +INSERT INTO memos VALUES (2, 'groonga', 'Groonga is fast full text search engine.'); +INSERT INTO memos VALUES (3, 'pgsql', 'PGroonga is a PostgreSQL extension that uses Groonga.'); +UPDATE memos SET tag = 'groonga' + WHERE id = 3; +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content, pgroonga.score(memos) + FROM memos + WHERE content @@ 'PGroonga OR Groonga'; + id | content | score +----+-------------------------------------------------------+------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. | 2 + 2 | Groonga is fast full text search engine. | 1 +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/function/score/or.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/score/or.out 2017-08-10 14:49:35 +0900 (cb0f536) @@ -0,0 +1,23 @@ +CREATE TABLE memos ( + id integer PRIMARY KEY, + 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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (id pgroonga.int4_ops, + content pgroonga.text_full_text_search_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content, pgroonga.score(memos) + FROM memos + WHERE content %% 'PGroonga' OR content %% 'Groonga'; + id | content | score +----+-------------------------------------------------------+------- + 2 | Groonga is fast full text search engine. | 1 + 3 | PGroonga is a PostgreSQL extension that uses Groonga. | 2 +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/function/score/primary-key/not-head.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/score/primary-key/not-head.out 2017-08-10 14:49:35 +0900 (58a51f7) @@ -0,0 +1,23 @@ +CREATE TABLE memos ( + content text, + id int PRIMARY KEY +); +CREATE INDEX pgroonga_index ON memos + USING pgroonga (id pgroonga.int4_ops, + content pgroonga.text_full_text_search_ops); +INSERT INTO memos (id, content) VALUES (1, 'PostgreSQL is a RDBMS.'); +INSERT INTO memos (id, content) VALUES (2, 'Groonga is fast full text search engine.'); +INSERT INTO memos (id, content) VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga.'); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content, pgroonga.score(memos) + FROM memos + WHERE content &@~ 'PGroonga OR Groonga'; + id | content | score +----+-------------------------------------------------------+------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. | 2 + 2 | Groonga is fast full text search engine. | 1 +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/function/score/primary-key/text.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/score/primary-key/text.out 2017-08-10 14:49:35 +0900 (28fa944) @@ -0,0 +1,23 @@ +CREATE TABLE memos ( + id text PRIMARY KEY, + content text +); +CREATE INDEX pgroonga_index ON memos + USING pgroonga (id pgroonga.text_term_search_ops_v2, + content pgroonga.text_full_text_search_ops); +INSERT INTO memos VALUES ('a', 'PostgreSQL is a RDBMS.'); +INSERT INTO memos VALUES ('b', 'Groonga is fast full text search engine.'); +INSERT INTO memos VALUES ('c', 'PGroonga is a PostgreSQL extension that uses Groonga.'); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content, pgroonga.score(memos) + FROM memos + WHERE content &@~ 'PGroonga OR Groonga'; + id | content | score +----+-------------------------------------------------------+------- + c | PGroonga is a PostgreSQL extension that uses Groonga. | 2 + b | Groonga is fast full text search engine. | 1 +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/function/score/updated.out (+25 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/function/score/updated.out 2017-08-10 14:49:35 +0900 (d3fcbd4) @@ -0,0 +1,25 @@ +CREATE TABLE memos ( + id integer PRIMARY KEY, + content text +); +CREATE INDEX grnindex ON memos + USING pgroonga (id pgroonga.int4_ops, + content pgroonga.text_full_text_search_ops); +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.'); +UPDATE memos SET content = 'Mroonga is a MySQL plugin that uses Groonga.' + WHERE id = 3; +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content, pgroonga.score(memos) + FROM memos + WHERE content @@ 'PGroonga OR Mroonga OR Groonga'; + id | content | score +----+----------------------------------------------+------- + 3 | Mroonga is a MySQL plugin that uses Groonga. | 2 + 2 | Groonga is fast full text search engine. | 1 +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/groonga-function/tuple-is-alive/and.out (+25 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/groonga-function/tuple-is-alive/and.out 2017-08-10 14:49:35 +0900 (91e3e6f) @@ -0,0 +1,25 @@ +CREATE TABLE memos ( + id int PRIMARY KEY, + 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.'); +CREATE INDEX pgroonga_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +UPDATE memos + SET content = 'Mroonga is a MySQL storage engine that uses Groonga.' + WHERE id = 3; +SELECT pgroonga.command('select ' || + pgroonga.table_name('pgroonga_index') || + ' --match_columns content' + ' --query Groonga' + ' --filter "pgroonga_tuple_is_alive(ctid)"' + ' --output_columns content')::json->>1 + AS body; + body +---------------------------------------------------------------------------------------------------------------------------------------- + [[[2],[["content","LongText"]],["Groonga is fast full text search engine."],["Mroonga is a MySQL storage engine that uses Groonga."]]] +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/groonga-function/tuple-is-alive/or.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/groonga-function/tuple-is-alive/or.out 2017-08-10 14:49:35 +0900 (ae08bc8) @@ -0,0 +1,23 @@ +CREATE TABLE memos ( + id int PRIMARY KEY, + 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.'); +CREATE INDEX pgroonga_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +UPDATE memos + SET content = 'Mroonga is a MySQL storage engine that uses Groonga.' + WHERE id = 3; +SELECT pgroonga.command('select ' || + pgroonga.table_name('pgroonga_index') || + ' --filter "pgroonga_tuple_is_alive(ctid)"' + ' --output_columns content')::json->>1 + AS body; + body +------------------------------------------------------------------------------------------------------------------------------------------------------------------- + [[[3],[["content","LongText"]],["PostgreSQL is a RDBMS."],["Groonga is fast full text search engine."],["Mroonga is a MySQL storage engine that uses Groonga."]]] +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/index-scan/kill-prior-tuple.out (+55 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/index-scan/kill-prior-tuple.out 2017-08-10 14:49:35 +0900 (d8fbd72) @@ -0,0 +1,55 @@ +CREATE TABLE ids ( + id integer, + memo text +); +CREATE INDEX pgroonga_index ON ids + USING pgroonga (id pgroonga.int4_ops, + memo pgroonga.text_full_text_search_ops); +INSERT INTO ids VALUES (2, 'a'); +INSERT INTO ids VALUES (7, 'a'); +INSERT INTO ids VALUES (6, 'a'); +INSERT INTO ids VALUES (4, 'a'); +INSERT INTO ids VALUES (5, 'a'); +INSERT INTO ids VALUES (8, 'a'); +INSERT INTO ids VALUES (1, 'a'); +INSERT INTO ids VALUES (10, 'a'); +INSERT INTO ids VALUES (3, 'a'); +INSERT INTO ids VALUES (9, 'a'); +INSERT INTO ids VALUES (12, 'a'); +INSERT INTO ids VALUES (17, 'a'); +INSERT INTO ids VALUES (16, 'a'); +INSERT INTO ids VALUES (14, 'a'); +INSERT INTO ids VALUES (15, 'a'); +INSERT INTO ids VALUES (18, 'a'); +INSERT INTO ids VALUES (11, 'a'); +INSERT INTO ids VALUES (110, 'a'); +INSERT INTO ids VALUES (13, 'a'); +INSERT INTO ids VALUES (19, 'a'); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +UPDATE ids SET memo = 'b' WHERE id = 10; +UPDATE ids SET memo = 'b' WHERE id = 5; +UPDATE ids SET memo = 'b' WHERE id = 6; +SELECT * FROM ids WHERE 2 <= id and memo @@ 'a'; + id | memo +-----+------ + 2 | a + 3 | a + 4 | a + 7 | a + 8 | a + 9 | a + 11 | a + 12 | a + 13 | a + 14 | a + 15 | a + 16 | a + 17 | a + 18 | a + 19 | a + 110 | a +(16 rows) + +DROP TABLE ids; Added: expected/compatibility/schema/jsonb/compatibility/v1/match-v2/element/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/match-v2/element/bitmapscan.out 2017-08-10 14:49:35 +0900 (ab6bff1) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + QUERY PLAN +-------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &@ 'app'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &@ 'app'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/match-v2/element/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/match-v2/element/indexscan.out 2017-08-10 14:49:35 +0900 (9452e44) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + QUERY PLAN +------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &@ 'app'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/match-v2/element/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/match-v2/element/seqscan.out 2017-08-10 14:49:35 +0900 (df4164a) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/match-v2/value/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/match-v2/value/bitmapscan.out 2017-08-10 14:49:35 +0900 (f9dd126) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + QUERY PLAN +-------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &@ 'app'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &@ 'app'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/match-v2/value/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/match-v2/value/indexscan.out 2017-08-10 14:49:35 +0900 (609271a) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + QUERY PLAN +------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &@ 'app'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/match-v2/value/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/match-v2/value/seqscan.out 2017-08-10 14:49:35 +0900 (24c85e8) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/bitmapscan.out 2017-08-10 14:49:35 +0900 (b558489) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &? 'banana OR peach' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &? 'banana OR peach'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &? 'banana OR peach'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &? 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/indexscan.out 2017-08-10 14:49:35 +0900 (ac29df1) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &? 'banana OR peach' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &? 'banana OR peach'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &? 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/element/seqscan.out 2017-08-10 14:49:35 +0900 (da01d1d) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &? 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/bitmapscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/bitmapscan.out 2017-08-10 14:49:35 +0900 (267a508) @@ -0,0 +1,40 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &? 'apple OR banana' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &? 'apple OR banana'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &? 'apple OR banana'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &? 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/indexscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/indexscan.out 2017-08-10 14:49:35 +0900 (5777897) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &? 'apple OR banana' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &? 'apple OR banana'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &? 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2-question/value/seqscan.out 2017-08-10 14:49:35 +0900 (2cab725) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &? 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2/element/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2/element/bitmapscan.out 2017-08-10 14:49:35 +0900 (61ca850) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@~ 'banana OR peach' + ORDER BY id; + QUERY PLAN +--------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &@~ 'banana OR peach'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &@~ 'banana OR peach'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &@~ 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2/element/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2/element/indexscan.out 2017-08-10 14:49:35 +0900 (01a0041) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@~ 'banana OR peach' + ORDER BY id; + QUERY PLAN +--------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &@~ 'banana OR peach'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &@~ 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2/element/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2/element/seqscan.out 2017-08-10 14:49:35 +0900 (0ff7fbb) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &@~ 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2/value/bitmapscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2/value/bitmapscan.out 2017-08-10 14:49:35 +0900 (bef1c16) @@ -0,0 +1,40 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@~ 'apple OR banana' + ORDER BY id; + QUERY PLAN +--------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &@~ 'apple OR banana'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &@~ 'apple OR banana'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &@~ 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2/value/indexscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2/value/indexscan.out 2017-08-10 14:49:35 +0900 (835886e) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@~ 'apple OR banana' + ORDER BY id; + QUERY PLAN +--------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &@~ 'apple OR banana'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &@~ 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/query-v2/value/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/query-v2/value/seqscan.out 2017-08-10 14:49:35 +0900 (3920467) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &@~ 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/delete/multiple-values.out (+24 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/delete/multiple-values.out 2017-08-10 14:49:35 +0900 (d55a23e) @@ -0,0 +1,24 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +DELETE FROM fruits WHERE id = 1; +VACUUM; +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] +(1 row) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/bitmapscan.out 2017-08-10 14:49:35 +0900 (51060a4) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/indexscan.out 2017-08-10 14:49:35 +0900 (54977a8) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/boolean/seqscan.out 2017-08-10 14:49:35 +0900 (483805a) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/bitmapscan.out 2017-08-10 14:49:35 +0900 (a4fa3ed) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/indexscan.out 2017-08-10 14:49:35 +0900 (74aeb0e) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/number/seqscan.out 2017-08-10 14:49:35 +0900 (2adcbf3) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/bitmapscan.out 2017-08-10 14:49:35 +0900 (08bd1ce) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/indexscan.out 2017-08-10 14:49:35 +0900 (3e6da99) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/element/string/seqscan.out 2017-08-10 14:49:35 +0900 (5aedbca) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/full-text-search/default.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/full-text-search/default.out 2017-08-10 14:49:35 +0900 (b84a1ab) @@ -0,0 +1,23 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": "Hello World"}'); +INSERT INTO logs VALUES (2, '{"message": "This is a pen"}'); +INSERT INTO logs VALUES (3, '{"message": "Good-by World"}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record &` 'string @ "world"' + ORDER BY id; + id | record +----+------------------------------ + 1 | {"message": "Hello World"} + 3 | {"message": "Good-by World"} +(2 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/full-text-search/disable.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/full-text-search/disable.out 2017-08-10 14:49:35 +0900 (f8da67a) @@ -0,0 +1,31 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": "Hello World"}'); +INSERT INTO logs VALUES (2, '{"message": "This is a pen"}'); +INSERT INTO logs VALUES (3, '{"message": "Good-by World"}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops) + WITH (tokenizer = ''); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record &` 'string @ "world"' + ORDER BY id; + id | record +----+-------- +(0 rows) + +SELECT id, record + FROM logs + WHERE record &` 'string == "Hello World"' + ORDER BY id; + id | record +----+---------------------------- + 1 | {"message": "Hello World"} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/object/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/object/bitmapscan.out 2017-08-10 14:49:35 +0900 (ba295d5) @@ -0,0 +1,22 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, record + FROM logs + WHERE record &` 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/object/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/object/indexscan.out 2017-08-10 14:49:35 +0900 (c25a2bb) @@ -0,0 +1,22 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record &` 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/object/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/object/seqscan.out 2017-08-10 14:49:35 +0900 (6743d1a) @@ -0,0 +1,20 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record &` 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/bitmapscan.out 2017-08-10 14:49:35 +0900 (47ccd31) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/indexscan.out 2017-08-10 14:49:35 +0900 (2cda322) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/boolean/seqscan.out 2017-08-10 14:49:35 +0900 (e28b27d) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/bitmapscan.out 2017-08-10 14:49:35 +0900 (62f4256) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/indexscan.out 2017-08-10 14:49:35 +0900 (2ee5f9c) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/number/seqscan.out 2017-08-10 14:49:35 +0900 (bd79b2e) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/bitmapscan.out 2017-08-10 14:49:35 +0900 (fae084c) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/indexscan.out 2017-08-10 14:49:35 +0900 (9352c79) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v1/script-v2/value/string/seqscan.out 2017-08-10 14:49:35 +0900 (5d2de45) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/query-v2/element/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/query-v2/element/bitmapscan.out 2017-08-10 14:49:35 +0900 (943df62) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &? 'banana OR peach' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &? 'banana OR peach'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &? 'banana OR peach'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &? 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/query-v2/element/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/query-v2/element/indexscan.out 2017-08-10 14:49:35 +0900 (6f3ddac) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &? 'banana OR peach' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &? 'banana OR peach'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &? 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/query-v2/element/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/query-v2/element/seqscan.out 2017-08-10 14:49:35 +0900 (da01d1d) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &? 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/query-v2/value/bitmapscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/query-v2/value/bitmapscan.out 2017-08-10 14:49:35 +0900 (0bd4889) @@ -0,0 +1,40 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &? 'apple OR banana' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &? 'apple OR banana'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &? 'apple OR banana'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &? 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/query-v2/value/indexscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/query-v2/value/indexscan.out 2017-08-10 14:49:35 +0900 (1a6ec71) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &? 'apple OR banana' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &? 'apple OR banana'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &? 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/query-v2/value/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/query-v2/value/seqscan.out 2017-08-10 14:49:35 +0900 (2cab725) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &? 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/delete/multiple-values.out (+24 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/delete/multiple-values.out 2017-08-10 14:49:35 +0900 (0e2d967) @@ -0,0 +1,24 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +DELETE FROM fruits WHERE id = 1; +VACUUM; +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] +(1 row) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/bitmapscan.out 2017-08-10 14:49:35 +0900 (73a6765) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/indexscan.out 2017-08-10 14:49:35 +0900 (336663b) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/boolean/seqscan.out 2017-08-10 14:49:35 +0900 (e87cb29) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/bitmapscan.out 2017-08-10 14:49:35 +0900 (6dbf675) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/indexscan.out 2017-08-10 14:49:35 +0900 (9ef5701) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/number/seqscan.out 2017-08-10 14:49:35 +0900 (0dc79bf) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/bitmapscan.out 2017-08-10 14:49:35 +0900 (6df1cdb) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/indexscan.out 2017-08-10 14:49:35 +0900 (1dcc9c2) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/element/string/seqscan.out 2017-08-10 14:49:35 +0900 (7a6f8a5) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/full-text-search/default.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/full-text-search/default.out 2017-08-10 14:49:35 +0900 (533b39d) @@ -0,0 +1,23 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": "Hello World"}'); +INSERT INTO logs VALUES (2, '{"message": "This is a pen"}'); +INSERT INTO logs VALUES (3, '{"message": "Good-by World"}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @@ 'string @ "world"' + ORDER BY id; + id | record +----+------------------------------ + 1 | {"message": "Hello World"} + 3 | {"message": "Good-by World"} +(2 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/full-text-search/disable.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/full-text-search/disable.out 2017-08-10 14:49:35 +0900 (509b7ba) @@ -0,0 +1,31 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": "Hello World"}'); +INSERT INTO logs VALUES (2, '{"message": "This is a pen"}'); +INSERT INTO logs VALUES (3, '{"message": "Good-by World"}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2) + WITH (tokenizer = ''); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @@ 'string @ "world"' + ORDER BY id; + id | record +----+-------- +(0 rows) + +SELECT id, record + FROM logs + WHERE record @@ 'string == "Hello World"' + ORDER BY id; + id | record +----+---------------------------- + 1 | {"message": "Hello World"} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/object/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/object/bitmapscan.out 2017-08-10 14:49:35 +0900 (dbbdc49) @@ -0,0 +1,22 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, record + FROM logs + WHERE record @@ 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/object/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/object/indexscan.out 2017-08-10 14:49:35 +0900 (120a60b) @@ -0,0 +1,22 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @@ 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/object/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/object/seqscan.out 2017-08-10 14:49:35 +0900 (32208b7) @@ -0,0 +1,20 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @@ 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/bitmapscan.out 2017-08-10 14:49:35 +0900 (dd528dd) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/indexscan.out 2017-08-10 14:49:35 +0900 (d8c2df6) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/boolean/seqscan.out 2017-08-10 14:49:35 +0900 (4e756f2) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/bitmapscan.out 2017-08-10 14:49:35 +0900 (4819aa8) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/indexscan.out 2017-08-10 14:49:35 +0900 (c961be3) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/number/seqscan.out 2017-08-10 14:49:35 +0900 (98bddd4) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/bitmapscan.out 2017-08-10 14:49:35 +0900 (1846bf0) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/indexscan.out 2017-08-10 14:49:35 +0900 (079feee) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/compatibility/v2/script-v1/value/string/seqscan.out 2017-08-10 14:49:35 +0900 (0825601) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/contain-v2/array/empty.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/contain-v2/array/empty.out 2017-08-10 14:49:35 +0900 (c735a75) @@ -0,0 +1,42 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '[]'); +INSERT INTO logs VALUES (2, '[100]'); +INSERT INTO logs VALUES (3, '["hello"]'); +INSERT INTO logs VALUES (4, '[true]'); +INSERT INTO logs VALUES (5, '[{"object": "value"}]'); +INSERT INTO logs VALUES (6, '{"object": []}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, record + FROM logs + WHERE record @> '[]'::jsonb + ORDER BY id; + QUERY PLAN +----------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on logs + Index Cond: (record @> '[]'::jsonb) +(4 rows) + +SELECT id, record + FROM logs + WHERE record @> '[]'::jsonb + ORDER BY id; + id | record +----+----------------------- + 1 | [] + 2 | [100] + 3 | ["hello"] + 4 | [true] + 5 | [{"object": "value"}] +(5 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/contain-v2/array/multiple-elements.out (+39 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/contain-v2/array/multiple-elements.out 2017-08-10 14:49:35 +0900 (01d4df4) @@ -0,0 +1,39 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs + VALUES (1, '{"body": {"values": [100, "Hello", true]}}'); +INSERT INTO logs + VALUES (2, '{"values": [100, "Hello", true]}'); +INSERT INTO logs + VALUES (3, '{"body": {"values": [100, "Hello", true, "World"]}}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, record + FROM logs + WHERE record @> '{"body": {"values": ["Hello", true, 100]}}'::jsonb + ORDER BY id; + QUERY PLAN +------------------------------------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on logs + Index Cond: (record @> '{"body": {"values": ["Hello", true, 100]}}'::jsonb) +(4 rows) + +SELECT id, record + FROM logs + WHERE record @> '{"body": {"values": ["Hello", true, 100]}}'::jsonb + ORDER BY id; + id | record +----+----------------------------------------------------- + 1 | {"body": {"values": [100, "Hello", true]}} + 3 | {"body": {"values": [100, "Hello", true, "World"]}} +(2 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/contain-v2/object/empty.out (+42 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/contain-v2/object/empty.out 2017-08-10 14:49:35 +0900 (fdd5e4f) @@ -0,0 +1,42 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{}'); +INSERT INTO logs VALUES (2, '{"key": 100}'); +INSERT INTO logs VALUES (3, '{"key": "hello"}'); +INSERT INTO logs VALUES (4, '{"key": true}'); +INSERT INTO logs VALUES (5, '{"key": []}'); +INSERT INTO logs VALUES (6, '[{}]'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, record + FROM logs + WHERE record @> '{}'::jsonb + ORDER BY id; + QUERY PLAN +----------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on logs + Index Cond: (record @> '{}'::jsonb) +(4 rows) + +SELECT id, record + FROM logs + WHERE record @> '{}'::jsonb + ORDER BY id; + id | record +----+------------------ + 1 | {} + 2 | {"key": 100} + 3 | {"key": "hello"} + 4 | {"key": true} + 5 | {"key": []} +(5 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/contain/array/empty.out (+29 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/contain/array/empty.out 2017-08-10 14:49:35 +0900 (61bfb3f) @@ -0,0 +1,29 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '[]'); +INSERT INTO logs VALUES (2, '[100]'); +INSERT INTO logs VALUES (3, '["hello"]'); +INSERT INTO logs VALUES (4, '[true]'); +INSERT INTO logs VALUES (5, '[{"object": "value"}]'); +INSERT INTO logs VALUES (6, '{"object": []}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @> '[]'::jsonb + ORDER BY id; + id | record +----+----------------------- + 1 | [] + 2 | [100] + 3 | ["hello"] + 4 | [true] + 5 | [{"object": "value"}] +(5 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/contain/array/multiple-elements.out (+26 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/contain/array/multiple-elements.out 2017-08-10 14:49:35 +0900 (2af4c0f) @@ -0,0 +1,26 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs + VALUES (1, '{"body": {"values": [100, "Hello", true]}}'); +INSERT INTO logs + VALUES (2, '{"values": [100, "Hello", true]}'); +INSERT INTO logs + VALUES (3, '{"body": {"values": [100, "Hello", true, "World"]}}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @> '{"body": {"values": ["Hello", true, 100]}}'::jsonb + ORDER BY id; + id | record +----+----------------------------------------------------- + 1 | {"body": {"values": [100, "Hello", true]}} + 3 | {"body": {"values": [100, "Hello", true, "World"]}} +(2 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/contain/object/empty.out (+29 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/contain/object/empty.out 2017-08-10 14:49:35 +0900 (0d76023) @@ -0,0 +1,29 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{}'); +INSERT INTO logs VALUES (2, '{"key": 100}'); +INSERT INTO logs VALUES (3, '{"key": "hello"}'); +INSERT INTO logs VALUES (4, '{"key": true}'); +INSERT INTO logs VALUES (5, '{"key": []}'); +INSERT INTO logs VALUES (6, '[{}]'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @> '{}'::jsonb + ORDER BY id; + id | record +----+------------------ + 1 | {} + 2 | {"key": 100} + 3 | {"key": "hello"} + 4 | {"key": true} + 5 | {"key": []} +(5 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/invalid/multicolumn-index.out (+9 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/invalid/multicolumn-index.out 2017-08-10 14:49:35 +0900 (769ed80) @@ -0,0 +1,9 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (id pgroonga.int4_ops, + items pgroonga.jsonb_ops); +ERROR: pgroonga: multicolumn index for jsonb isn't supported: <pgroonga_index> +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/match-v2/element/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/match-v2/element/bitmapscan.out 2017-08-10 14:49:35 +0900 (a3fdf59) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + QUERY PLAN +-------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &@ 'app'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &@ 'app'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/match-v2/element/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/match-v2/element/indexscan.out 2017-08-10 14:49:35 +0900 (ee6642d) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + QUERY PLAN +------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &@ 'app'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/match-v2/element/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/match-v2/element/seqscan.out 2017-08-10 14:49:35 +0900 (df4164a) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/match-v2/value/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/match-v2/value/bitmapscan.out 2017-08-10 14:49:35 +0900 (9864d71) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + QUERY PLAN +-------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &@ 'app'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &@ 'app'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/match-v2/value/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/match-v2/value/indexscan.out 2017-08-10 14:49:35 +0900 (4981a9f) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + QUERY PLAN +------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &@ 'app'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/match-v2/value/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/match-v2/value/seqscan.out 2017-08-10 14:49:35 +0900 (24c85e8) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &@ 'app' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/null/insert.out (+13 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/null/insert.out 2017-08-10 14:49:35 +0900 (f078b2c) @@ -0,0 +1,13 @@ +CREATE TABLE logs ( + record jsonb +); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +INSERT INTO logs VALUES (NULL); +SELECT * FROM logs; + record +-------- + +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/null/select.out (+14 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/null/select.out 2017-08-10 14:49:35 +0900 (3de2eb8) @@ -0,0 +1,14 @@ +CREATE TABLE logs ( + record jsonb +); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +INSERT INTO logs VALUES ('{}'); +SELECT * + FROM logs + WHERE record &@ null; + record +-------- +(0 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/query-v2/element/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/query-v2/element/bitmapscan.out 2017-08-10 14:49:35 +0900 (220309b) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@~ 'banana OR peach' + ORDER BY id; + QUERY PLAN +--------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &@~ 'banana OR peach'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &@~ 'banana OR peach'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &@~ 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/query-v2/element/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/query-v2/element/indexscan.out 2017-08-10 14:49:35 +0900 (36d8d7e) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@~ 'banana OR peach' + ORDER BY id; + QUERY PLAN +--------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &@~ 'banana OR peach'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &@~ 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/query-v2/element/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/query-v2/element/seqscan.out 2017-08-10 14:49:35 +0900 (0ff7fbb) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &@~ 'banana OR peach' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] + 3 | ["peach"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/query-v2/value/bitmapscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/query-v2/value/bitmapscan.out 2017-08-10 14:49:35 +0900 (5979d59) @@ -0,0 +1,40 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@~ 'apple OR banana' + ORDER BY id; + QUERY PLAN +--------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &@~ 'apple OR banana'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &@~ 'apple OR banana'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &@~ 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/query-v2/value/indexscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/query-v2/value/indexscan.out 2017-08-10 14:49:35 +0900 (f9d5bf5) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &@~ 'apple OR banana' + ORDER BY id; + QUERY PLAN +--------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &@~ 'apple OR banana'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &@~ 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/query-v2/value/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/query-v2/value/seqscan.out 2017-08-10 14:49:35 +0900 (3920467) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +INSERT INTO fruits VALUES (4, '{"like": "banana"}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &@~ 'apple OR banana' + ORDER BY id; + id | items +----+-------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} + 4 | {"like": "banana"} +(3 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/delete/multiple-values.out (+24 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/delete/multiple-values.out 2017-08-10 14:49:35 +0900 (515f151) @@ -0,0 +1,24 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +DELETE FROM fruits WHERE id = 1; +VACUUM; +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] +(1 row) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/element/boolean/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/element/boolean/bitmapscan.out 2017-08-10 14:49:35 +0900 (e53a592) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &` 'boolean == true'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &` 'boolean == true'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/element/boolean/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/element/boolean/indexscan.out 2017-08-10 14:49:35 +0900 (9d19984) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &` 'boolean == true'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/element/boolean/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/element/boolean/seqscan.out 2017-08-10 14:49:35 +0900 (483805a) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/element/number/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/element/number/bitmapscan.out 2017-08-10 14:49:35 +0900 (cd9681e) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &` 'type == "number" && number <= 100'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &` 'type == "number" && number <= 100'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/element/number/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/element/number/indexscan.out 2017-08-10 14:49:35 +0900 (b47fd0b) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &` 'type == "number" && number <= 100'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/element/number/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/element/number/seqscan.out 2017-08-10 14:49:35 +0900 (2adcbf3) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/element/string/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/element/string/bitmapscan.out 2017-08-10 14:49:35 +0900 (8a14e82) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + QUERY PLAN +---------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &` 'string == "apple"'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &` 'string == "apple"'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/element/string/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/element/string/indexscan.out 2017-08-10 14:49:35 +0900 (ccfd4dd) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + QUERY PLAN +---------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &` 'string == "apple"'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/element/string/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/element/string/seqscan.out 2017-08-10 14:49:35 +0900 (5aedbca) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/full-text-search/default.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/full-text-search/default.out 2017-08-10 14:49:35 +0900 (00874ae) @@ -0,0 +1,36 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": "Hello World"}'); +INSERT INTO logs VALUES (2, '{"message": "This is a pen"}'); +INSERT INTO logs VALUES (3, '{"message": "Good-by World"}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, record + FROM logs + WHERE record &` 'string @ "world"' + ORDER BY id; + QUERY PLAN +---------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on logs + Index Cond: (record &` 'string @ "world"'::text) +(4 rows) + +SELECT id, record + FROM logs + WHERE record &` 'string @ "world"' + ORDER BY id; + id | record +----+------------------------------ + 1 | {"message": "Hello World"} + 3 | {"message": "Good-by World"} +(2 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/script-v2/full-text-search/disable.out (+57 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/full-text-search/disable.out 2017-08-10 14:49:35 +0900 (4362b07) @@ -0,0 +1,57 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": "Hello World"}'); +INSERT INTO logs VALUES (2, '{"message": "This is a pen"}'); +INSERT INTO logs VALUES (3, '{"message": "Good-by World"}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2) + WITH (tokenizer = ''); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, record + FROM logs + WHERE record &` 'string @ "world"' + ORDER BY id; + QUERY PLAN +---------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on logs + Index Cond: (record &` 'string @ "world"'::text) +(4 rows) + +SELECT id, record + FROM logs + WHERE record &` 'string @ "world"' + ORDER BY id; + id | record +----+-------- +(0 rows) + +EXPLAIN (COSTS OFF) +SELECT id, record + FROM logs + WHERE record &` 'string == "Hello World"' + ORDER BY id; + QUERY PLAN +----------------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on logs + Index Cond: (record &` 'string == "Hello World"'::text) +(4 rows) + +SELECT id, record + FROM logs + WHERE record &` 'string == "Hello World"' + ORDER BY id; + id | record +----+---------------------------- + 1 | {"message": "Hello World"} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/script-v2/object/bitmapscan.out (+37 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/object/bitmapscan.out 2017-08-10 14:49:35 +0900 (cee9dea) @@ -0,0 +1,37 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, record + FROM logs + WHERE record &` 'paths @ ".message" && type == "object"' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on logs + Recheck Cond: (record &` 'paths @ ".message" && type == "object"'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (record &` 'paths @ ".message" && type == "object"'::text) +(6 rows) + +SELECT id, record + FROM logs + WHERE record &` 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/script-v2/object/indexscan.out (+35 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/object/indexscan.out 2017-08-10 14:49:35 +0900 (1a27661) @@ -0,0 +1,35 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, record + FROM logs + WHERE record &` 'paths @ ".message" && type == "object"' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on logs + Index Cond: (record &` 'paths @ ".message" && type == "object"'::text) +(4 rows) + +SELECT id, record + FROM logs + WHERE record &` 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/script-v2/object/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/object/seqscan.out 2017-08-10 14:49:35 +0900 (6743d1a) @@ -0,0 +1,20 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record &` 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/script-v2/value/boolean/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/value/boolean/bitmapscan.out 2017-08-10 14:49:35 +0900 (55e024b) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &` 'boolean == true'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &` 'boolean == true'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/value/boolean/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/value/boolean/indexscan.out 2017-08-10 14:49:35 +0900 (21b7528) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &` 'boolean == true'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/value/boolean/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/value/boolean/seqscan.out 2017-08-10 14:49:35 +0900 (e28b27d) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/value/number/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/value/number/bitmapscan.out 2017-08-10 14:49:35 +0900 (6cbda5f) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &` 'type == "number" && number <= 100'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &` 'type == "number" && number <= 100'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/value/number/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/value/number/indexscan.out 2017-08-10 14:49:35 +0900 (f4aceb4) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + QUERY PLAN +-------------------------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &` 'type == "number" && number <= 100'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/value/number/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/value/number/seqscan.out 2017-08-10 14:49:35 +0900 (bd79b2e) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/value/string/bitmapscan.out (+38 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/value/string/bitmapscan.out 2017-08-10 14:49:35 +0900 (4e172af) @@ -0,0 +1,38 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + QUERY PLAN +---------------------------------------------------------------- + Sort + Sort Key: id + -> Bitmap Heap Scan on fruits + Recheck Cond: (items &` 'string == "apple"'::text) + -> Bitmap Index Scan on pgroonga_index + Index Cond: (items &` 'string == "apple"'::text) +(6 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/value/string/indexscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/value/string/indexscan.out 2017-08-10 14:49:35 +0900 (a9cf39f) @@ -0,0 +1,36 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + QUERY PLAN +---------------------------------------------------------- + Sort + Sort Key: id + -> Index Scan using pgroonga_index on fruits + Index Cond: (items &` 'string == "apple"'::text) +(4 rows) + +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script-v2/value/string/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script-v2/value/string/seqscan.out 2017-08-10 14:49:35 +0900 (5d2de45) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items &` 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/delete/multiple-values.out (+24 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/delete/multiple-values.out 2017-08-10 14:49:35 +0900 (17c7494) @@ -0,0 +1,24 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +DELETE FROM fruits WHERE id = 1; +VACUUM; +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 2 | ["banana", "apple"] +(1 row) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/element/boolean/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/element/boolean/bitmapscan.out 2017-08-10 14:49:35 +0900 (82dfd88) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/element/boolean/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/element/boolean/indexscan.out 2017-08-10 14:49:35 +0900 (4fd0e7b) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/element/boolean/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/element/boolean/seqscan.out 2017-08-10 14:49:35 +0900 (e87cb29) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[true]'); +INSERT INTO fruits VALUES (2, '[false]'); +INSERT INTO fruits VALUES (3, '[true]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+-------- + 1 | [true] + 3 | [true] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/element/number/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/element/number/bitmapscan.out 2017-08-10 14:49:35 +0900 (f39772d) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/element/number/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/element/number/indexscan.out 2017-08-10 14:49:35 +0900 (6b31447) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/element/number/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/element/number/seqscan.out 2017-08-10 14:49:35 +0900 (0dc79bf) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '[100]'); +INSERT INTO fruits VALUES (2, '[200, 30]'); +INSERT INTO fruits VALUES (3, '[150]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+----------- + 1 | [100] + 2 | [200, 30] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/element/string/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/element/string/bitmapscan.out 2017-08-10 14:49:35 +0900 (ef27919) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/element/string/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/element/string/indexscan.out 2017-08-10 14:49:35 +0900 (6abadf4) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/element/string/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/element/string/seqscan.out 2017-08-10 14:49:35 +0900 (7a6f8a5) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '["apple"]'); +INSERT INTO fruits VALUES (2, '["banana", "apple"]'); +INSERT INTO fruits VALUES (3, '["peach"]'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+--------------------- + 1 | ["apple"] + 2 | ["banana", "apple"] +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/full-text-search/default.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/full-text-search/default.out 2017-08-10 14:49:35 +0900 (779e7da) @@ -0,0 +1,23 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": "Hello World"}'); +INSERT INTO logs VALUES (2, '{"message": "This is a pen"}'); +INSERT INTO logs VALUES (3, '{"message": "Good-by World"}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @@ 'string @ "world"' + ORDER BY id; + id | record +----+------------------------------ + 1 | {"message": "Hello World"} + 3 | {"message": "Good-by World"} +(2 rows) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/script/full-text-search/disable.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/full-text-search/disable.out 2017-08-10 14:49:35 +0900 (7437abb) @@ -0,0 +1,31 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": "Hello World"}'); +INSERT INTO logs VALUES (2, '{"message": "This is a pen"}'); +INSERT INTO logs VALUES (3, '{"message": "Good-by World"}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops) + WITH (tokenizer = ''); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @@ 'string @ "world"' + ORDER BY id; + id | record +----+-------- +(0 rows) + +SELECT id, record + FROM logs + WHERE record @@ 'string == "Hello World"' + ORDER BY id; + id | record +----+---------------------------- + 1 | {"message": "Hello World"} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/script/object/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/object/bitmapscan.out 2017-08-10 14:49:35 +0900 (0abe59d) @@ -0,0 +1,22 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, record + FROM logs + WHERE record @@ 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/script/object/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/object/indexscan.out 2017-08-10 14:49:35 +0900 (5085d5b) @@ -0,0 +1,22 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +CREATE INDEX pgroonga_index ON logs + USING pgroonga (record pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @@ 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/script/object/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/object/seqscan.out 2017-08-10 14:49:35 +0900 (32208b7) @@ -0,0 +1,20 @@ +CREATE TABLE logs ( + id int, + record jsonb +); +INSERT INTO logs VALUES (1, '{"message": {"code": 100, "content": "hello"}}'); +INSERT INTO logs VALUES (1, '{"message": "hello"}'); +INSERT INTO logs VALUES (1, '{"message": ["hello", "world"]}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, record + FROM logs + WHERE record @@ 'paths @ ".message" && type == "object"' + ORDER BY id; + id | record +----+------------------------------------------------ + 1 | {"message": {"code": 100, "content": "hello"}} +(1 row) + +DROP TABLE logs; Added: expected/compatibility/schema/jsonb/script/value/boolean/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/value/boolean/bitmapscan.out 2017-08-10 14:49:35 +0900 (ba6f3fb) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/value/boolean/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/value/boolean/indexscan.out 2017-08-10 14:49:35 +0900 (aec931a) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/value/boolean/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/value/boolean/seqscan.out 2017-08-10 14:49:35 +0900 (4e756f2) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": true}'); +INSERT INTO fruits VALUES (2, '{"banana": false}'); +INSERT INTO fruits VALUES (3, '{"peach": true}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'boolean == true' + ORDER BY id; + id | items +----+----------------- + 1 | {"apple": true} + 3 | {"peach": true} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/value/number/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/value/number/bitmapscan.out 2017-08-10 14:49:35 +0900 (3b4f29c) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/value/number/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/value/number/indexscan.out 2017-08-10 14:49:35 +0900 (f3101c2) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/value/number/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/value/number/seqscan.out 2017-08-10 14:49:35 +0900 (98bddd4) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"apple": 100}'); +INSERT INTO fruits VALUES (2, '{"banana": 30}'); +INSERT INTO fruits VALUES (3, '{"peach": 150}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'type == "number" && number <= 100' + ORDER BY id; + id | items +----+---------------- + 1 | {"apple": 100} + 2 | {"banana": 30} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/value/string/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/value/string/bitmapscan.out 2017-08-10 14:49:35 +0900 (f443310) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/value/string/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/value/string/indexscan.out 2017-08-10 14:49:35 +0900 (6ae6cf9) @@ -0,0 +1,23 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +CREATE INDEX pgroonga_index ON fruits + USING pgroonga (items pgroonga.jsonb_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/jsonb/script/value/string/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/jsonb/script/value/string/seqscan.out 2017-08-10 14:49:35 +0900 (0825601) @@ -0,0 +1,21 @@ +CREATE TABLE fruits ( + id int, + items jsonb +); +INSERT INTO fruits VALUES (1, '{"name": "apple"}'); +INSERT INTO fruits VALUES (2, '{"type": "apple"}'); +INSERT INTO fruits VALUES (3, '{"name": "peach"}'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, items + FROM fruits + WHERE items @@ 'string == "apple"' + ORDER BY id; + id | items +----+------------------- + 1 | {"name": "apple"} + 2 | {"type": "apple"} +(2 rows) + +DROP TABLE fruits; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (d87a3ae) @@ -0,0 +1,33 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + QUERY PLAN +---------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '\Agroonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '\Agroonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (042ba2b) @@ -0,0 +1,31 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + QUERY PLAN +---------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ '\Agroonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (654678c) @@ -0,0 +1,21 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/bitmapscan.out 2017-08-10 14:49:35 +0900 (b03c9bc) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + QUERY PLAN +-------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '.roonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '.roonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/indexscan.out 2017-08-10 14:49:35 +0900 (b9a7b3f) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + QUERY PLAN +-------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ '.roonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/dot/seqscan.out 2017-08-10 14:49:35 +0900 (22842ed) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (ff26e4c) @@ -0,0 +1,33 @@ +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + QUERY PLAN +---------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ 'groonga\z'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ 'groonga\z'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (e805b51) @@ -0,0 +1,31 @@ +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + QUERY PLAN +---------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ 'groonga\z'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (e89976c) @@ -0,0 +1,21 @@ +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (d24a0c2) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '\Agroonga\z'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '\Agroonga\z'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/indexscan.out 2017-08-10 14:49:35 +0900 (2d9a1e9) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------ + Index Scan using grnindex on memos + Index Cond: (content &~ '\Agroonga\z'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/exact/seqscan.out 2017-08-10 14:49:35 +0900 (4d90457) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (d1b6cea) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + QUERY PLAN +-------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ 'groonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ 'groonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/indexscan.out 2017-08-10 14:49:35 +0900 (4dbe148) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + QUERY PLAN +-------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ 'groonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v1/regexp-v2/partial/seqscan.out 2017-08-10 14:49:35 +0900 (13c6cff) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (d11ac57) @@ -0,0 +1,33 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + QUERY PLAN +---------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @~ '\Agroonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content @~ '\Agroonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (0499f8e) @@ -0,0 +1,31 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + QUERY PLAN +---------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @~ '\Agroonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (0ee3eb2) @@ -0,0 +1,21 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/bitmapscan.out 2017-08-10 14:49:35 +0900 (10a9ffc) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + QUERY PLAN +-------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @~ '.roonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content @~ '.roonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/indexscan.out 2017-08-10 14:49:35 +0900 (6ff9c62) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + QUERY PLAN +-------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @~ '.roonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/dot/seqscan.out 2017-08-10 14:49:35 +0900 (772dd3c) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (8195bd1) @@ -0,0 +1,33 @@ +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + QUERY PLAN +---------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @~ 'groonga\z'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content @~ 'groonga\z'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (33f507e) @@ -0,0 +1,31 @@ +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + QUERY PLAN +---------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @~ 'groonga\z'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (f08e27b) @@ -0,0 +1,21 @@ +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (9dc8dc1) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (content @~ '\Agroonga\z'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content @~ '\Agroonga\z'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/indexscan.out 2017-08-10 14:49:35 +0900 (ced81dc) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------ + Index Scan using grnindex on memos + Index Cond: (content @~ '\Agroonga\z'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/exact/seqscan.out 2017-08-10 14:49:35 +0900 (ad5614b) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (554bc5f) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + QUERY PLAN +-------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @~ 'groonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content @~ 'groonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/indexscan.out 2017-08-10 14:49:35 +0900 (4e0608e) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + QUERY PLAN +-------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @~ 'groonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/compatibility/v2/regexp-v1/partial/seqscan.out 2017-08-10 14:49:35 +0900 (4346586) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike-v2/begin-of-text/bitmapscan.out (+35 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (1c554ad) @@ -0,0 +1,35 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content ILIKE 'GROONGA%'; + QUERY PLAN +---------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content ~~* 'GROONGA%'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content ~~* 'GROONGA%'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content ILIKE 'GROONGA%'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. + 4 | groonga command is provided. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike-v2/begin-of-text/indexscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (0fecd20) @@ -0,0 +1,33 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content ILIKE 'GROONGA%'; + QUERY PLAN +---------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content ~~* 'GROONGA%'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content ILIKE 'GROONGA%'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. + 4 | groonga command is provided. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike-v2/begin-of-text/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (b0806e5) @@ -0,0 +1,23 @@ +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_regexp_ops); +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. + 4 | groonga command is provided. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike-v2/end-of-text/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (6af11b4) @@ -0,0 +1,34 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content ILIKE '%GROONGA'; + QUERY PLAN +---------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content ~~* '%GROONGA'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content ~~* '%GROONGA'::text) +(4 rows) + +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/compatibility/schema/regexp/text/ilike-v2/end-of-text/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (cdb0d36) @@ -0,0 +1,32 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content ILIKE '%GROONGA'; + QUERY PLAN +---------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content ~~* '%GROONGA'::text) +(2 rows) + +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/compatibility/schema/regexp/text/ilike-v2/end-of-text/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (b1e844c) @@ -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_regexp_ops); +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/compatibility/schema/regexp/text/ilike-v2/exact/bitmapscan.out (+35 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (532f6ac) @@ -0,0 +1,35 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content ILIKE 'GROONGA'; + QUERY PLAN +--------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content ~~* 'GROONGA'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content ~~* 'GROONGA'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content ILIKE 'GROONGA'; + id | content +----+--------- + 2 | Groonga + 4 | groonga +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike-v2/exact/indexscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/exact/indexscan.out 2017-08-10 14:49:35 +0900 (7363f9e) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content ILIKE 'GROONGA'; + QUERY PLAN +--------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content ~~* 'GROONGA'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content ILIKE 'GROONGA'; + id | content +----+--------- + 2 | Groonga + 4 | groonga +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike-v2/exact/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/exact/seqscan.out 2017-08-10 14:49:35 +0900 (30fb1e1) @@ -0,0 +1,23 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_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 + 4 | groonga +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike-v2/partial/bitmapscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (69ec8ff) @@ -0,0 +1,36 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content ILIKE '%GROONGA%'; + QUERY PLAN +----------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content ~~* '%GROONGA%'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content ~~* '%GROONGA%'::text) +(4 rows) + +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/compatibility/schema/regexp/text/ilike-v2/partial/indexscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/partial/indexscan.out 2017-08-10 14:49:35 +0900 (1ee2479) @@ -0,0 +1,34 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content ILIKE '%GROONGA%'; + QUERY PLAN +----------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content ~~* '%GROONGA%'::text) +(2 rows) + +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/compatibility/schema/regexp/text/ilike-v2/partial/seqscan.out (+24 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike-v2/partial/seqscan.out 2017-08-10 14:49:35 +0900 (0afbbe6) @@ -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_regexp_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/compatibility/schema/regexp/text/ilike/begin-of-text/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (c751250) @@ -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_regexp_ops); +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. + 4 | groonga command is provided. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike/begin-of-text/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (f6d31b1) @@ -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_regexp_ops); +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. + 4 | groonga command is provided. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike/begin-of-text/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (0108a17) @@ -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_regexp_ops); +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. + 4 | groonga command is provided. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike/end-of-text/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (141eee4) @@ -0,0 +1,21 @@ +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_regexp_ops); +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/compatibility/schema/regexp/text/ilike/end-of-text/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (b930583) @@ -0,0 +1,21 @@ +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_regexp_ops); +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/compatibility/schema/regexp/text/ilike/end-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (92ba844) @@ -0,0 +1,21 @@ +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_regexp_ops); +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/compatibility/schema/regexp/text/ilike/exact/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (80d4e42) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +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 + 4 | groonga +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike/exact/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/exact/indexscan.out 2017-08-10 14:49:35 +0900 (9a834c3) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +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 + 4 | groonga +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike/exact/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/exact/seqscan.out 2017-08-10 14:49:35 +0900 (b15aa8c) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +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 + 4 | groonga +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/ilike/partial/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (d122fa7) @@ -0,0 +1,23 @@ +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_regexp_ops); +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/compatibility/schema/regexp/text/ilike/partial/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/partial/indexscan.out 2017-08-10 14:49:35 +0900 (07f11f0) @@ -0,0 +1,23 @@ +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_regexp_ops); +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/compatibility/schema/regexp/text/ilike/partial/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/ilike/partial/seqscan.out 2017-08-10 14:49:35 +0900 (063f68c) @@ -0,0 +1,23 @@ +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_regexp_ops); +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/compatibility/schema/regexp/text/like-v2/begin-of-text/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (51c9a17) @@ -0,0 +1,34 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga%'; + QUERY PLAN +--------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content ~~ 'Groonga%'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content ~~ 'Groonga%'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga%'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like-v2/begin-of-text/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (0ddd13f) @@ -0,0 +1,32 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga%'; + QUERY PLAN +--------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content ~~ 'Groonga%'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga%'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like-v2/begin-of-text/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (0a81c80) @@ -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_regexp_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 +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like-v2/end-of-text/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (970df4c) @@ -0,0 +1,34 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content LIKE '%Groonga'; + QUERY PLAN +--------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content ~~ '%Groonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content ~~ '%Groonga'::text) +(4 rows) + +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/compatibility/schema/regexp/text/like-v2/end-of-text/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (707dc84) @@ -0,0 +1,32 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content LIKE '%Groonga'; + QUERY PLAN +--------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content ~~ '%Groonga'::text) +(2 rows) + +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/compatibility/schema/regexp/text/like-v2/end-of-text/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (013dc3e) @@ -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_regexp_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/compatibility/schema/regexp/text/like-v2/exact/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (2b9d29c) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga'; + QUERY PLAN +-------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content ~~ 'Groonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content ~~ 'Groonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like-v2/exact/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/exact/indexscan.out 2017-08-10 14:49:35 +0900 (f267593) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga'; + QUERY PLAN +-------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content ~~ 'Groonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like-v2/exact/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/exact/seqscan.out 2017-08-10 14:49:35 +0900 (2332f8b) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_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 +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like-v2/partial/bitmapscan.out (+35 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (18baeb4) @@ -0,0 +1,35 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content LIKE '%Groonga%'; + QUERY PLAN +---------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content ~~ '%Groonga%'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content ~~ '%Groonga%'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content LIKE '%Groonga%'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like-v2/partial/indexscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/partial/indexscan.out 2017-08-10 14:49:35 +0900 (91e6987) @@ -0,0 +1,33 @@ +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_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content LIKE '%Groonga%'; + QUERY PLAN +---------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content ~~ '%Groonga%'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content LIKE '%Groonga%'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like-v2/partial/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like-v2/partial/seqscan.out 2017-08-10 14:49:35 +0900 (94b6c3f) @@ -0,0 +1,23 @@ +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_regexp_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 +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like/begin-of-text/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (4c3f7de) @@ -0,0 +1,21 @@ +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_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga%'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like/begin-of-text/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (6dd6ded) @@ -0,0 +1,21 @@ +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_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga%'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like/begin-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (870697f) @@ -0,0 +1,21 @@ +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_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga%'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like/end-of-text/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (2e3ffc0) @@ -0,0 +1,21 @@ +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_regexp_ops); +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/compatibility/schema/regexp/text/like/end-of-text/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (a025f0f) @@ -0,0 +1,21 @@ +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_regexp_ops); +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/compatibility/schema/regexp/text/like/end-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (1b696b6) @@ -0,0 +1,21 @@ +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_regexp_ops); +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/compatibility/schema/regexp/text/like/exact/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (12e23c2) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like/exact/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/exact/indexscan.out 2017-08-10 14:49:35 +0900 (55ff57f) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like/exact/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/exact/seqscan.out 2017-08-10 14:49:35 +0900 (c214e6b) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +INSERT INTO memos VALUES (4, 'groonga'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content LIKE 'Groonga'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like/partial/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (19befa7) @@ -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_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content LIKE '%Groonga%'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like/partial/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/partial/indexscan.out 2017-08-10 14:49:35 +0900 (1fe5149) @@ -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_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content LIKE '%Groonga%'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/like/partial/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/like/partial/seqscan.out 2017-08-10 14:49:35 +0900 (ede37a0) @@ -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_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content LIKE '%Groonga%'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/begin-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (700a07f) @@ -0,0 +1,33 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + QUERY PLAN +---------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '\Agroonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '\Agroonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/begin-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (3e2f023) @@ -0,0 +1,31 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + QUERY PLAN +---------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ '\Agroonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/begin-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (c7f7686) @@ -0,0 +1,21 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/dot/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/dot/bitmapscan.out 2017-08-10 14:49:35 +0900 (7e32645) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + QUERY PLAN +-------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '.roonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '.roonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/dot/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/dot/indexscan.out 2017-08-10 14:49:35 +0900 (b96a2e2) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + QUERY PLAN +-------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ '.roonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/dot/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/dot/seqscan.out 2017-08-10 14:49:35 +0900 (bfe9263) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/end-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (05a44e5) @@ -0,0 +1,33 @@ +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + QUERY PLAN +---------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ 'groonga\z'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ 'groonga\z'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/end-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (84f3800) @@ -0,0 +1,31 @@ +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + QUERY PLAN +---------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ 'groonga\z'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/end-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (6a77db1) @@ -0,0 +1,21 @@ +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/exact/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (ef39cb4) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '\Agroonga\z'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '\Agroonga\z'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/exact/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/exact/indexscan.out 2017-08-10 14:49:35 +0900 (292dd10) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------ + Index Scan using grnindex on memos + Index Cond: (content &~ '\Agroonga\z'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/exact/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/exact/seqscan.out 2017-08-10 14:49:35 +0900 (fe3d956) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/partial/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (24b25b6) @@ -0,0 +1,34 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + QUERY PLAN +-------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ 'groonga'::text) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ 'groonga'::text) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/partial/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/partial/indexscan.out 2017-08-10 14:49:35 +0900 (18b4a03) @@ -0,0 +1,32 @@ +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + QUERY PLAN +-------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ 'groonga'::text) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp-v2/partial/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp-v2/partial/seqscan.out 2017-08-10 14:49:35 +0900 (73d1e96) @@ -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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/begin-of-text/bitmapscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (37df79d) @@ -0,0 +1,20 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/begin-of-text/indexscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (c524f3d) @@ -0,0 +1,20 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/begin-of-text/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (70ae2cb) @@ -0,0 +1,20 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/dot/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/dot/bitmapscan.out 2017-08-10 14:49:35 +0900 (813aa55) @@ -0,0 +1,21 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/dot/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/dot/indexscan.out 2017-08-10 14:49:35 +0900 (7508c20) @@ -0,0 +1,21 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/dot/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/dot/seqscan.out 2017-08-10 14:49:35 +0900 (f7d3fbb) @@ -0,0 +1,21 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/end-of-text/bitmapscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (bb7e283) @@ -0,0 +1,20 @@ +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'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/end-of-text/indexscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (1c511eb) @@ -0,0 +1,20 @@ +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'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/end-of-text/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (5169bc6) @@ -0,0 +1,20 @@ +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'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/exact/bitmapscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (857f707) @@ -0,0 +1,20 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/exact/indexscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/exact/indexscan.out 2017-08-10 14:49:35 +0900 (51a38e3) @@ -0,0 +1,20 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/exact/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/exact/seqscan.out 2017-08-10 14:49:35 +0900 (5eec69d) @@ -0,0 +1,20 @@ +CREATE TABLE memos ( + id integer, + content text +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/partial/bitmapscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (0c656c6) @@ -0,0 +1,21 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/partial/indexscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/partial/indexscan.out 2017-08-10 14:49:35 +0900 (6032d94) @@ -0,0 +1,21 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/text/regexp/partial/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/text/regexp/partial/seqscan.out 2017-08-10 14:49:35 +0900 (ad9397b) @@ -0,0 +1,21 @@ +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.'); +CREATE INDEX grnindex ON memos USING pgroonga (content pgroonga.text_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (982d9f9) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + QUERY PLAN +----------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '\Agroonga'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '\Agroonga'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (d20913a) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + QUERY PLAN +----------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ '\Agroonga'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (94fbc0a) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/bitmapscan.out 2017-08-10 14:49:35 +0900 (d1b5f9a) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + QUERY PLAN +--------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '.roonga'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '.roonga'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/indexscan.out 2017-08-10 14:49:35 +0900 (784b2e0) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + QUERY PLAN +--------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ '.roonga'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/dot/seqscan.out 2017-08-10 14:49:35 +0900 (3c8de91) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (4e58171) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + QUERY PLAN +----------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ 'groonga\z'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ 'groonga\z'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (ce3ad0e) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + QUERY PLAN +----------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ 'groonga\z'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (b01d172) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (601a3f2) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '\Agroonga\z'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '\Agroonga\z'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/indexscan.out 2017-08-10 14:49:35 +0900 (65c4fe3) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ '\Agroonga\z'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/exact/seqscan.out 2017-08-10 14:49:35 +0900 (67ddc9c) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (ebabffe) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + QUERY PLAN +--------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ 'groonga'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ 'groonga'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/indexscan.out 2017-08-10 14:49:35 +0900 (5fef700) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + QUERY PLAN +--------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ 'groonga'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v1/regexp-v2/partial/seqscan.out 2017-08-10 14:49:35 +0900 (8e93132) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (c07bce5) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + QUERY PLAN +----------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @~ '\Agroonga'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content @~ '\Agroonga'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (e2fa997) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + QUERY PLAN +----------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @~ '\Agroonga'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (d8f4c71) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/bitmapscan.out 2017-08-10 14:49:35 +0900 (4ce77bf) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + QUERY PLAN +--------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @~ '.roonga'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content @~ '.roonga'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/indexscan.out 2017-08-10 14:49:35 +0900 (6dd4a3d) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + QUERY PLAN +--------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @~ '.roonga'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/dot/seqscan.out 2017-08-10 14:49:35 +0900 (ea79f7e) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (0e12ee1) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + QUERY PLAN +----------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @~ 'groonga\z'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content @~ 'groonga\z'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (e6574af) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + QUERY PLAN +----------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @~ 'groonga\z'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (f2a01e9) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (03d9750) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @~ '\Agroonga\z'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content @~ '\Agroonga\z'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/indexscan.out 2017-08-10 14:49:35 +0900 (3b3fdd2) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @~ '\Agroonga\z'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/exact/seqscan.out 2017-08-10 14:49:35 +0900 (8e51486) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (79e8394) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + QUERY PLAN +--------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content @~ 'groonga'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content @~ 'groonga'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/indexscan.out 2017-08-10 14:49:35 +0900 (4cd16ac) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + QUERY PLAN +--------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content @~ 'groonga'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/compatibility/v2/regexp-v1/partial/seqscan.out 2017-08-10 14:49:35 +0900 (0dddc76) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content @~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (a7ea505) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + QUERY PLAN +----------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '\Agroonga'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '\Agroonga'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (a47514e) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + QUERY PLAN +----------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ '\Agroonga'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/begin-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (20c023e) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga'; + id | content +----+------------------------------------------ + 2 | Groonga is fast full text search engine. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/dot/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/dot/bitmapscan.out 2017-08-10 14:49:35 +0900 (dac4b1c) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + QUERY PLAN +--------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '.roonga'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '.roonga'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/dot/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/dot/indexscan.out 2017-08-10 14:49:35 +0900 (22d4c99) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + QUERY PLAN +--------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ '.roonga'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/dot/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/dot/seqscan.out 2017-08-10 14:49:35 +0900 (3f70b3e) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '.roonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/bitmapscan.out 2017-08-10 14:49:35 +0900 (2ea8234) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + QUERY PLAN +----------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ 'groonga\z'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ 'groonga\z'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/indexscan.out 2017-08-10 14:49:35 +0900 (cc09fc7) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + QUERY PLAN +----------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ 'groonga\z'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/end-of-text/seqscan.out 2017-08-10 14:49:35 +0900 (ed1860c) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ 'groonga\z'; + id | content +----+------------------------------------------------------ + 3 | PGroonga is a PostgreSQL extension that uses Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/exact/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/exact/bitmapscan.out 2017-08-10 14:49:35 +0900 (8d5ba8f) @@ -0,0 +1,33 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ '\Agroonga\z'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ '\Agroonga\z'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/exact/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/exact/indexscan.out 2017-08-10 14:49:35 +0900 (61148aa) @@ -0,0 +1,31 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + QUERY PLAN +------------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ '\Agroonga\z'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/exact/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/exact/seqscan.out 2017-08-10 14:49:35 +0900 (9456eb8) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ '\Agroonga\z'; + id | content +----+--------- + 2 | Groonga +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/partial/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/partial/bitmapscan.out 2017-08-10 14:49:35 +0900 (a50dd97) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + QUERY PLAN +--------------------------------------------------------------- + Bitmap Heap Scan on memos + Recheck Cond: (content &~ 'groonga'::character varying) + -> Bitmap Index Scan on grnindex + Index Cond: (content &~ 'groonga'::character varying) +(4 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/partial/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/partial/indexscan.out 2017-08-10 14:49:35 +0900 (c7870d6) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + QUERY PLAN +--------------------------------------------------------- + Index Scan using grnindex on memos + Index Cond: (content &~ 'groonga'::character varying) +(2 rows) + +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/regexp/varchar/regexp-v2/partial/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/regexp/varchar/regexp-v2/partial/seqscan.out 2017-08-10 14:49:35 +0900 (d6bb711) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + id integer, + content varchar(256) +); +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.'); +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.varchar_regexp_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content &~ 'groonga'; + id | content +----+------------------------------------------------------- + 2 | Groonga is fast full text search engine. + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/reindex/analyze.out (+63 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/reindex/analyze.out 2017-08-10 14:49:35 +0900 (94ff58f) @@ -0,0 +1,63 @@ +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.'); +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); +SELECT pgroonga.command( + 'object_exist ' || + 'Sources' || (SELECT oid + FROM pg_class + WHERE relname = 'pgrn_index'))::jsonb->1; + ?column? +---------- + true +(1 row) + +SELECT pgroonga.command( + 'object_exist ' || + 'Sources' || (SELECT relfilenode + FROM pg_class + WHERE relname = 'pgrn_index'))::jsonb->1; + ?column? +---------- + true +(1 row) + +REINDEX INDEX pgrn_index; +ANALYZE; +SELECT pgroonga.command( + 'object_exist ' || + 'Sources' || (SELECT oid + FROM pg_class + WHERE relname = 'pgrn_index'))::jsonb->1; + ?column? +---------- + false +(1 row) + +SELECT pgroonga.command( + 'object_exist ' || + 'Sources' || (SELECT relfilenode + FROM pg_class + WHERE relname = 'pgrn_index'))::jsonb->1; + ?column? +---------- + true +(1 row) + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content %% 'PGroonga' AND content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/text-array/combined/bitmapscan.out (+48 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/combined/bitmapscan.out 2017-08-10 14:49:35 +0900 (ba1331e) @@ -0,0 +1,48 @@ +CREATE TABLE tags ( + id int PRIMARY KEY, + names text[], + readings text[] +); +INSERT INTO tags VALUES (1, + ARRAY['PostgreSQL', 'PG'], + ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO tags VALUES (2, + ARRAY['Groonga', 'grn'], + ARRAY['グルンガ', 'グルン']); +INSERT INTO tags VALUES (3, + ARRAY['PGroonga', 'pgrn'], + ARRAY['ピージールンガ', 'ピーグルン']); +CREATE INDEX pgrn_tags_index ON tags + USING pgroonga (id, + names pgroonga.text_array_term_search_ops_v2, + readings pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT names, pgroonga.score(tags) + FROM tags + WHERE names &^ 'Groon' OR + readings &^~ 'posu'; + QUERY PLAN +--------------------------------------------------------------------------- + Bitmap Heap Scan on tags + Recheck Cond: ((names &^ 'Groon'::text) OR (readings &^~ 'posu'::text)) + -> BitmapOr + -> Bitmap Index Scan on pgrn_tags_index + Index Cond: (names &^ 'Groon'::text) + -> Bitmap Index Scan on pgrn_tags_index + Index Cond: (readings &^~ 'posu'::text) +(7 rows) + +SELECT names, pgroonga.score(tags) + FROM tags + WHERE names &^ 'Groon' OR + readings &^~ 'posu'; + names | score +-----------------+------- + {PostgreSQL,PG} | 2 + {Groonga,grn} | 1 +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/combined/seqscan.out (+28 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/combined/seqscan.out 2017-08-10 14:49:35 +0900 (2745f9a) @@ -0,0 +1,28 @@ +CREATE TABLE tags ( + id int PRIMARY KEY, + names text[], + readings text[] +); +INSERT INTO tags VALUES (1, + ARRAY['PostgreSQL', 'PG'], + ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO tags VALUES (2, + ARRAY['Groonga', 'grn'], + ARRAY['グルンガ', 'グルン']); +INSERT INTO tags VALUES (3, + ARRAY['PGroonga', 'pgrn'], + ARRAY['ピージールンガ', 'ピーグルン']); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT names, pgroonga.score(tags) + FROM tags + WHERE names &^ 'Groon' OR + readings &^~ 'posu'; + names | score +-----------------+------- + {PostgreSQL,PG} | 0 + {Groonga,grn} | 0 +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/bitmapscan.out 2017-08-10 14:49:35 +0900 (c2f8a98) @@ -0,0 +1,33 @@ +CREATE TABLE readings ( + katakanas text[] +); +INSERT INTO readings VALUES (ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO readings VALUES (ARRAY['グルンガ', 'グルン']); +INSERT INTO readings VALUES (ARRAY['ピージールンガ', 'ピーグルン']); +CREATE INDEX pgrn_index ON readings + USING pgroonga (katakanas pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT katakanas + FROM readings + WHERE katakanas &^~> 'p'; + QUERY PLAN +------------------------------------------------ + Bitmap Heap Scan on readings + Recheck Cond: (katakanas &^~> 'p'::text) + -> Bitmap Index Scan on pgrn_index + Index Cond: (katakanas &^~> 'p'::text) +(4 rows) + +SELECT katakanas + FROM readings + WHERE katakanas &^~> 'p'; + katakanas +----------------------------------- + {ポストグレスキューエル,ポスグレ} + {ピージールンガ,ピーグルン} +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/indexscan.out 2017-08-10 14:49:35 +0900 (e148d63) @@ -0,0 +1,31 @@ +CREATE TABLE readings ( + katakanas text[] +); +INSERT INTO readings VALUES (ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO readings VALUES (ARRAY['グルンガ', 'グルン']); +INSERT INTO readings VALUES (ARRAY['ピージールンガ', 'ピーグルン']); +CREATE INDEX pgrn_index ON readings + USING pgroonga (katakanas pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT katakanas + FROM readings + WHERE katakanas &^~> 'p'; + QUERY PLAN +------------------------------------------ + Index Scan using pgrn_index on readings + Index Cond: (katakanas &^~> 'p'::text) +(2 rows) + +SELECT katakanas + FROM readings + WHERE katakanas &^~> 'p'; + katakanas +----------------------------------- + {ピージールンガ,ピーグルン} + {ポストグレスキューエル,ポスグレ} +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/seqscan.out (+19 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix-rk/seqscan.out 2017-08-10 14:49:35 +0900 (2e39994) @@ -0,0 +1,19 @@ +CREATE TABLE readings ( + katakanas text[] +); +INSERT INTO readings VALUES (ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO readings VALUES (ARRAY['グルンガ', 'グルン']); +INSERT INTO readings VALUES (ARRAY['ピージールンガ', 'ピーグルン']); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT katakanas + FROM readings + WHERE katakanas &^~> 'p'; + katakanas +----------------------------------- + {ポストグレスキューエル,ポスグレ} + {ピージールンガ,ピーグルン} +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix/bitmapscan.out 2017-08-10 14:49:35 +0900 (58acbca) @@ -0,0 +1,33 @@ +CREATE TABLE tags ( + names text[] +); +INSERT INTO tags VALUES (ARRAY['PostgreSQL', 'PG']); +INSERT INTO tags VALUES (ARRAY['Groonga', 'grn']); +INSERT INTO tags VALUES (ARRAY['PGroonga', 'pgrn']); +CREATE INDEX pgrn_index ON tags + USING pgroonga (names pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT names + FROM tags + WHERE names &^> 'pG'; + QUERY PLAN +-------------------------------------------- + Bitmap Heap Scan on tags + Recheck Cond: (names &^> 'pG'::text) + -> Bitmap Index Scan on pgrn_index + Index Cond: (names &^> 'pG'::text) +(4 rows) + +SELECT names + FROM tags + WHERE names &^> 'pG'; + names +----------------- + {PostgreSQL,PG} + {PGroonga,pgrn} +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix/indexscan.out 2017-08-10 14:49:35 +0900 (9979b35) @@ -0,0 +1,31 @@ +CREATE TABLE tags ( + names text[] +); +INSERT INTO tags VALUES (ARRAY['PostgreSQL', 'PG']); +INSERT INTO tags VALUES (ARRAY['Groonga', 'grn']); +INSERT INTO tags VALUES (ARRAY['PGroonga', 'pgrn']); +CREATE INDEX pgrn_index ON tags + USING pgroonga (names pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT names + FROM tags + WHERE names &^> 'pG'; + QUERY PLAN +-------------------------------------- + Index Scan using pgrn_index on tags + Index Cond: (names &^> 'pG'::text) +(2 rows) + +SELECT names + FROM tags + WHERE names &^> 'pG'; + names +----------------- + {PGroonga,pgrn} + {PostgreSQL,PG} +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix/seqscan.out (+19 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/compatibility/v2/prefix/seqscan.out 2017-08-10 14:49:35 +0900 (aedd8f9) @@ -0,0 +1,19 @@ +CREATE TABLE tags ( + names text[] +); +INSERT INTO tags VALUES (ARRAY['PostgreSQL', 'PG']); +INSERT INTO tags VALUES (ARRAY['Groonga', 'grn']); +INSERT INTO tags VALUES (ARRAY['PGroonga', 'pgrn']); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT names + FROM tags + WHERE names &^> 'pG'; + names +----------------- + {PostgreSQL,PG} + {PGroonga,pgrn} +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/prefix-in/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix-in/bitmapscan.out 2017-08-10 14:49:35 +0900 (bc30314) @@ -0,0 +1,33 @@ +CREATE TABLE tags ( + names text[] +); +INSERT INTO tags VALUES (ARRAY['PostgreSQL', 'PG']); +INSERT INTO tags VALUES (ARRAY['Groonga', 'grn']); +INSERT INTO tags VALUES (ARRAY['PGroonga', 'pgrn']); +CREATE INDEX pgrn_index ON tags + USING pgroonga (names pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT names + FROM tags + WHERE names &^| ARRAY['gro', 'pos']; + QUERY PLAN +----------------------------------------------------- + Bitmap Heap Scan on tags + Recheck Cond: (names &^| '{gro,pos}'::text[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (names &^| '{gro,pos}'::text[]) +(4 rows) + +SELECT names + FROM tags + WHERE names &^| ARRAY['gro', 'pos']; + names +----------------- + {PostgreSQL,PG} + {Groonga,grn} +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/prefix-in/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix-in/indexscan.out 2017-08-10 14:49:35 +0900 (e49bc96) @@ -0,0 +1,31 @@ +CREATE TABLE tags ( + names text[] +); +INSERT INTO tags VALUES (ARRAY['PostgreSQL', 'PG']); +INSERT INTO tags VALUES (ARRAY['Groonga', 'grn']); +INSERT INTO tags VALUES (ARRAY['PGroonga', 'pgrn']); +CREATE INDEX pgrn_index ON tags + USING pgroonga (names pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT names + FROM tags + WHERE names &^| ARRAY['gro', 'pos']; + QUERY PLAN +----------------------------------------------- + Index Scan using pgrn_index on tags + Index Cond: (names &^| '{gro,pos}'::text[]) +(2 rows) + +SELECT names + FROM tags + WHERE names &^| ARRAY['gro', 'pos']; + names +----------------- + {Groonga,grn} + {PostgreSQL,PG} +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/prefix-in/seqscan-empty-array.out (+18 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix-in/seqscan-empty-array.out 2017-08-10 14:49:35 +0900 (ede43c4) @@ -0,0 +1,18 @@ +CREATE TABLE tags ( + names text[] +); +INSERT INTO tags VALUES (ARRAY['PostgreSQL', 'PG']); +INSERT INTO tags VALUES (ARRAY['Groonga', 'grn']); +INSERT INTO tags VALUES (ARRAY['PGroonga', 'pgrn']); +INSERT INTO tags VALUES (ARRAY[]::text[]); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT names + FROM tags + WHERE names &^| ARRAY[]::text[]; + names +------- +(0 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/prefix-in/seqscan.out (+19 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix-in/seqscan.out 2017-08-10 14:49:35 +0900 (2e42c12) @@ -0,0 +1,19 @@ +CREATE TABLE tags ( + names text[] +); +INSERT INTO tags VALUES (ARRAY['PostgreSQL', 'PG']); +INSERT INTO tags VALUES (ARRAY['Groonga', 'grn']); +INSERT INTO tags VALUES (ARRAY['PGroonga', 'pgrn']); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT names + FROM tags + WHERE names &^| ARRAY['gro', 'pos']; + names +----------------- + {PostgreSQL,PG} + {Groonga,grn} +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/prefix-rk-in/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix-rk-in/bitmapscan.out 2017-08-10 14:49:35 +0900 (e87e225) @@ -0,0 +1,33 @@ +CREATE TABLE readings ( + katakanas text[] +); +INSERT INTO readings VALUES (ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO readings VALUES (ARRAY['グルンガ', 'グルン']); +INSERT INTO readings VALUES (ARRAY['ピージールンガ', 'ピーグルン']); +CREATE INDEX pgrn_index ON readings + USING pgroonga (katakanas pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT katakanas + FROM readings + WHERE katakanas &^~| ARRAY['po', 'gu']; + QUERY PLAN +-------------------------------------------------------- + Bitmap Heap Scan on readings + Recheck Cond: (katakanas &^~| '{po,gu}'::text[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (katakanas &^~| '{po,gu}'::text[]) +(4 rows) + +SELECT katakanas + FROM readings + WHERE katakanas &^~| ARRAY['po', 'gu']; + katakanas +----------------------------------- + {ポストグレスキューエル,ポスグレ} + {グルンガ,グルン} +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text-array/prefix-rk-in/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix-rk-in/indexscan.out 2017-08-10 14:49:35 +0900 (f5d9142) @@ -0,0 +1,31 @@ +CREATE TABLE readings ( + katakanas text[] +); +INSERT INTO readings VALUES (ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO readings VALUES (ARRAY['グルンガ', 'グルン']); +INSERT INTO readings VALUES (ARRAY['ピージールンガ', 'ピーグルン']); +CREATE INDEX pgrn_index ON readings + USING pgroonga (katakanas pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT katakanas + FROM readings + WHERE katakanas &^~| ARRAY['po', 'gu']; + QUERY PLAN +-------------------------------------------------- + Index Scan using pgrn_index on readings + Index Cond: (katakanas &^~| '{po,gu}'::text[]) +(2 rows) + +SELECT katakanas + FROM readings + WHERE katakanas &^~| ARRAY['po', 'gu']; + katakanas +----------------------------------- + {ポストグレスキューエル,ポスグレ} + {グルンガ,グルン} +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text-array/prefix-rk-in/seqscan.out (+19 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix-rk-in/seqscan.out 2017-08-10 14:49:35 +0900 (02c4eb3) @@ -0,0 +1,19 @@ +CREATE TABLE readings ( + katakanas text[] +); +INSERT INTO readings VALUES (ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO readings VALUES (ARRAY['グルンガ', 'グルン']); +INSERT INTO readings VALUES (ARRAY['ピージールンガ', 'ピーグルン']); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT katakanas + FROM readings + WHERE katakanas &^~| ARRAY['po', 'gu']; + katakanas +----------------------------------- + {ポストグレスキューエル,ポスグレ} + {グルンガ,グルン} +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text-array/prefix-rk/bitmapscan.out (+33 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix-rk/bitmapscan.out 2017-08-10 14:49:35 +0900 (e2ea6ee) @@ -0,0 +1,33 @@ +CREATE TABLE readings ( + katakanas text[] +); +INSERT INTO readings VALUES (ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO readings VALUES (ARRAY['グルンガ', 'グルン']); +INSERT INTO readings VALUES (ARRAY['ピージールンガ', 'ピーグルン']); +CREATE INDEX pgrn_index ON readings + USING pgroonga (katakanas pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT katakanas + FROM readings + WHERE katakanas &^~ 'p'; + QUERY PLAN +----------------------------------------------- + Bitmap Heap Scan on readings + Recheck Cond: (katakanas &^~ 'p'::text) + -> Bitmap Index Scan on pgrn_index + Index Cond: (katakanas &^~ 'p'::text) +(4 rows) + +SELECT katakanas + FROM readings + WHERE katakanas &^~ 'p'; + katakanas +----------------------------------- + {ポストグレスキューエル,ポスグレ} + {ピージールンガ,ピーグルン} +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text-array/prefix-rk/indexscan.out (+31 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix-rk/indexscan.out 2017-08-10 14:49:35 +0900 (c3733a3) @@ -0,0 +1,31 @@ +CREATE TABLE readings ( + katakanas text[] +); +INSERT INTO readings VALUES (ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO readings VALUES (ARRAY['グルンガ', 'グルン']); +INSERT INTO readings VALUES (ARRAY['ピージールンガ', 'ピーグルン']); +CREATE INDEX pgrn_index ON readings + USING pgroonga (katakanas pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT katakanas + FROM readings + WHERE katakanas &^~ 'p'; + QUERY PLAN +----------------------------------------- + Index Scan using pgrn_index on readings + Index Cond: (katakanas &^~ 'p'::text) +(2 rows) + +SELECT katakanas + FROM readings + WHERE katakanas &^~ 'p'; + katakanas +----------------------------------- + {ピージールンガ,ピーグルン} + {ポストグレスキューエル,ポスグレ} +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text-array/prefix-rk/seqscan.out (+19 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix-rk/seqscan.out 2017-08-10 14:49:35 +0900 (b0fe3e0) @@ -0,0 +1,19 @@ +CREATE TABLE readings ( + katakanas text[] +); +INSERT INTO readings VALUES (ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO readings VALUES (ARRAY['グルンガ', 'グルン']); +INSERT INTO readings VALUES (ARRAY['ピージールンガ', 'ピーグルン']); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT katakanas + FROM readings + WHERE katakanas &^~ 'p'; + katakanas +----------------------------------- + {ポストグレスキューエル,ポスグレ} + {ピージールンガ,ピーグルン} +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text-array/prefix/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix/bitmapscan.out 2017-08-10 14:49:35 +0900 (b652841) @@ -0,0 +1,34 @@ +CREATE TABLE tags ( + names text[] +); +INSERT INTO tags VALUES (ARRAY['PostgreSQL', 'PG']); +INSERT INTO tags VALUES (ARRAY['Groonga', 'grn']); +INSERT INTO tags VALUES (ARRAY['PGroonga', 'pgrn']); +INSERT INTO tags VALUES (ARRAY[]::text[]); +CREATE INDEX pgrn_index ON tags + USING pgroonga (names pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT names + FROM tags + WHERE names &^ 'pG'; + QUERY PLAN +------------------------------------------- + Bitmap Heap Scan on tags + Recheck Cond: (names &^ 'pG'::text) + -> Bitmap Index Scan on pgrn_index + Index Cond: (names &^ 'pG'::text) +(4 rows) + +SELECT names + FROM tags + WHERE names &^ 'pG'; + names +----------------- + {PostgreSQL,PG} + {PGroonga,pgrn} +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/prefix/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix/indexscan.out 2017-08-10 14:49:35 +0900 (dfd7026) @@ -0,0 +1,32 @@ +CREATE TABLE tags ( + names text[] +); +INSERT INTO tags VALUES (ARRAY['PostgreSQL', 'PG']); +INSERT INTO tags VALUES (ARRAY['Groonga', 'grn']); +INSERT INTO tags VALUES (ARRAY['PGroonga', 'pgrn']); +INSERT INTO tags VALUES (ARRAY[]::text[]); +CREATE INDEX pgrn_index ON tags + USING pgroonga (names pgroonga.text_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT names + FROM tags + WHERE names &^ 'pG'; + QUERY PLAN +------------------------------------- + Index Scan using pgrn_index on tags + Index Cond: (names &^ 'pG'::text) +(2 rows) + +SELECT names + FROM tags + WHERE names &^ 'pG'; + names +----------------- + {PGroonga,pgrn} + {PostgreSQL,PG} +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text-array/prefix/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text-array/prefix/seqscan.out 2017-08-10 14:49:35 +0900 (09c1540) @@ -0,0 +1,20 @@ +CREATE TABLE tags ( + names text[] +); +INSERT INTO tags VALUES (ARRAY['PostgreSQL', 'PG']); +INSERT INTO tags VALUES (ARRAY['Groonga', 'grn']); +INSERT INTO tags VALUES (ARRAY['PGroonga', 'pgrn']); +INSERT INTO tags VALUES (ARRAY[]::text[]); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT names + FROM tags + WHERE names &^ 'pG'; + names +----------------- + {PostgreSQL,PG} + {PGroonga,pgrn} +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text/combined/bitmapscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/combined/bitmapscan.out 2017-08-10 14:49:35 +0900 (c543fb6) @@ -0,0 +1,40 @@ +CREATE TABLE tags ( + name text PRIMARY KEY +); +CREATE TABLE tag_readings ( + tag_name text + REFERENCES tags ON DELETE CASCADE ON UPDATE CASCADE, + katakana text, + PRIMARY KEY (tag_name, katakana) +); +INSERT INTO tags VALUES ('PostgreSQL'); +INSERT INTO tags VALUES ('Groonga'); +INSERT INTO tags VALUES ('PGroonga'); +INSERT INTO tags VALUES ('pglogical'); +INSERT INTO tag_readings VALUES ('PostgreSQL', 'ポストグレスキューエル'); +INSERT INTO tag_readings VALUES ('PostgreSQL', 'ポスグレ'); +INSERT INTO tag_readings VALUES ('Groonga', 'グルンガ'); +INSERT INTO tag_readings VALUES ('PGroonga', 'ピージールンガ'); +INSERT INTO tag_readings VALUES ('pglogical', 'ピージーロジカル'); +CREATE INDEX pgrn_tags_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2); +CREATE INDEX pgrn_tag_readings_index ON tag_readings + USING pgroonga (tag_name, katakana pgroonga.text_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT name, pgroonga.score(tags) + FROM tags + WHERE name &^ 'Groon' +UNION +SELECT tag_name, pgroonga.score(tag_readings) + FROM tag_readings + WHERE katakana &^~ 'posu'; + name | score +------------+------- + PostgreSQL | 1 + Groonga | 1 +(2 rows) + +DROP TABLE tag_readings; +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text/combined/indexscan.out (+40 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/combined/indexscan.out 2017-08-10 14:49:35 +0900 (4661b2f) @@ -0,0 +1,40 @@ +CREATE TABLE tags ( + name text PRIMARY KEY +); +CREATE TABLE tag_readings ( + tag_name text + REFERENCES tags ON DELETE CASCADE ON UPDATE CASCADE, + katakana text, + PRIMARY KEY (tag_name, katakana) +); +INSERT INTO tags VALUES ('PostgreSQL'); +INSERT INTO tags VALUES ('Groonga'); +INSERT INTO tags VALUES ('PGroonga'); +INSERT INTO tags VALUES ('pglogical'); +INSERT INTO tag_readings VALUES ('PostgreSQL', 'ポストグレスキューエル'); +INSERT INTO tag_readings VALUES ('PostgreSQL', 'ポスグレ'); +INSERT INTO tag_readings VALUES ('Groonga', 'グルンガ'); +INSERT INTO tag_readings VALUES ('PGroonga', 'ピージールンガ'); +INSERT INTO tag_readings VALUES ('pglogical', 'ピージーロジカル'); +CREATE INDEX pgrn_tags_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2); +CREATE INDEX pgrn_tag_readings_index ON tag_readings + USING pgroonga (tag_name, katakana pgroonga.text_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT name, pgroonga.score(tags) + FROM tags + WHERE name &^ 'Groon' +UNION +SELECT tag_name, pgroonga.score(tag_readings) + FROM tag_readings + WHERE katakana &^~ 'posu'; + name | score +------------+------- + PostgreSQL | 1 + Groonga | 1 +(2 rows) + +DROP TABLE tag_readings; +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text/combined/seqscan.out (+36 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/combined/seqscan.out 2017-08-10 14:49:35 +0900 (8893a96) @@ -0,0 +1,36 @@ +CREATE TABLE tags ( + name text PRIMARY KEY +); +CREATE TABLE tag_readings ( + tag_name text + REFERENCES tags ON DELETE CASCADE ON UPDATE CASCADE, + katakana text, + PRIMARY KEY (tag_name, katakana) +); +INSERT INTO tags VALUES ('PostgreSQL'); +INSERT INTO tags VALUES ('Groonga'); +INSERT INTO tags VALUES ('PGroonga'); +INSERT INTO tags VALUES ('pglogical'); +INSERT INTO tag_readings VALUES ('PostgreSQL', 'ポストグレスキューエル'); +INSERT INTO tag_readings VALUES ('PostgreSQL', 'ポスグレ'); +INSERT INTO tag_readings VALUES ('Groonga', 'グルンガ'); +INSERT INTO tag_readings VALUES ('PGroonga', 'ピージールンガ'); +INSERT INTO tag_readings VALUES ('pglogical', 'ピージーロジカル'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT name, pgroonga.score(tags) + FROM tags + WHERE name &^ 'Groon' +UNION +SELECT tag_name, pgroonga.score(tag_readings) + FROM tag_readings + WHERE katakana &^~ 'posu'; + name | score +------------+------- + Groonga | 0 + PostgreSQL | 0 +(2 rows) + +DROP TABLE tag_readings; +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text/options/tokenizer/ignored.out (+16 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/options/tokenizer/ignored.out 2017-08-10 14:49:35 +0900 (2123bbc) @@ -0,0 +1,16 @@ +CREATE TABLE tags ( + name text +); +CREATE INDEX pgrn_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2) + WITH (tokenizer = "TokenDelimit"); +SELECT entry->>6 AS tokenizer + FROM jsonb_array_elements((pgroonga.command('table_list')::jsonb#>'{1}') - 0) + AS entry + WHERE entry->>1 = 'Lexicon' || 'pgrn_index'::regclass::oid || '_0'; + tokenizer +----------- + +(1 row) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text/prefix-in/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix-in/bitmapscan.out 2017-08-10 14:49:35 +0900 (1afc70c) @@ -0,0 +1,34 @@ +CREATE TABLE tags ( + name text +); +INSERT INTO tags VALUES ('PostgreSQL'); +INSERT INTO tags VALUES ('Groonga'); +INSERT INTO tags VALUES ('PGroonga'); +INSERT INTO tags VALUES ('pglogical'); +CREATE INDEX pgrn_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT name + FROM tags + WHERE name &^| ARRAY['gro', 'pos']; + QUERY PLAN +---------------------------------------------------- + Bitmap Heap Scan on tags + Recheck Cond: (name &^| '{gro,pos}'::text[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (name &^| '{gro,pos}'::text[]) +(4 rows) + +SELECT name + FROM tags + WHERE name &^| ARRAY['gro', 'pos']; + name +------------ + PostgreSQL + Groonga +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text/prefix-in/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix-in/indexscan.out 2017-08-10 14:49:35 +0900 (9b7459d) @@ -0,0 +1,32 @@ +CREATE TABLE tags ( + name text +); +INSERT INTO tags VALUES ('PostgreSQL'); +INSERT INTO tags VALUES ('Groonga'); +INSERT INTO tags VALUES ('PGroonga'); +INSERT INTO tags VALUES ('pglogical'); +CREATE INDEX pgrn_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT name + FROM tags + WHERE name &^| ARRAY['gro', 'pos']; + QUERY PLAN +---------------------------------------------- + Index Scan using pgrn_index on tags + Index Cond: (name &^| '{gro,pos}'::text[]) +(2 rows) + +SELECT name + FROM tags + WHERE name &^| ARRAY['gro', 'pos']; + name +------------ + Groonga + PostgreSQL +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text/prefix-in/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix-in/seqscan.out 2017-08-10 14:49:35 +0900 (953198d) @@ -0,0 +1,20 @@ +CREATE TABLE tags ( + name text +); +INSERT INTO tags VALUES ('PostgreSQL'); +INSERT INTO tags VALUES ('Groonga'); +INSERT INTO tags VALUES ('PGroonga'); +INSERT INTO tags VALUES ('pglogical'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT name + FROM tags + WHERE name &^| ARRAY['gro', 'pos']; + name +------------ + PostgreSQL + Groonga +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text/prefix-rk-in/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix-rk-in/bitmapscan.out 2017-08-10 14:49:35 +0900 (bb63df6) @@ -0,0 +1,34 @@ +CREATE TABLE readings ( + katakana text +); +INSERT INTO readings VALUES ('ポストグレスキューエル'); +INSERT INTO readings VALUES ('グルンガ'); +INSERT INTO readings VALUES ('ピージールンガ'); +INSERT INTO readings VALUES ('ピージーロジカル'); +CREATE INDEX pgrn_index ON readings + USING pgroonga (katakana pgroonga.text_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT katakana + FROM readings + WHERE katakana &^~| ARRAY['po', 'gu']; + QUERY PLAN +------------------------------------------------------- + Bitmap Heap Scan on readings + Recheck Cond: (katakana &^~| '{po,gu}'::text[]) + -> Bitmap Index Scan on pgrn_index + Index Cond: (katakana &^~| '{po,gu}'::text[]) +(4 rows) + +SELECT katakana + FROM readings + WHERE katakana &^~| ARRAY['po', 'gu']; + katakana +------------------------ + ポストグレスキューエル + グルンガ +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text/prefix-rk-in/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix-rk-in/indexscan.out 2017-08-10 14:49:35 +0900 (138177d) @@ -0,0 +1,32 @@ +CREATE TABLE readings ( + katakana text +); +INSERT INTO readings VALUES ('ポストグレスキューエル'); +INSERT INTO readings VALUES ('グルンガ'); +INSERT INTO readings VALUES ('ピージールンガ'); +INSERT INTO readings VALUES ('ピージーロジカル'); +CREATE INDEX pgrn_index ON readings + USING pgroonga (katakana pgroonga.text_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT katakana + FROM readings + WHERE katakana &^~| ARRAY['po', 'gu']; + QUERY PLAN +------------------------------------------------- + Index Scan using pgrn_index on readings + Index Cond: (katakana &^~| '{po,gu}'::text[]) +(2 rows) + +SELECT katakana + FROM readings + WHERE katakana &^~| ARRAY['po', 'gu']; + katakana +------------------------ + ポストグレスキューエル + グルンガ +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text/prefix-rk-in/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix-rk-in/seqscan.out 2017-08-10 14:49:35 +0900 (1de9ee4) @@ -0,0 +1,20 @@ +CREATE TABLE readings ( + katakana text +); +INSERT INTO readings VALUES ('ポストグレスキューエル'); +INSERT INTO readings VALUES ('グルンガ'); +INSERT INTO readings VALUES ('ピージールンガ'); +INSERT INTO readings VALUES ('ピージーロジカル'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT katakana + FROM readings + WHERE katakana &^~| ARRAY['po', 'gu']; + katakana +------------------------ + ポストグレスキューエル + グルンガ +(2 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text/prefix-rk/bitmapscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix-rk/bitmapscan.out 2017-08-10 14:49:35 +0900 (4069aa4) @@ -0,0 +1,23 @@ +CREATE TABLE readings ( + katakana text +); +INSERT INTO readings VALUES ('ポストグレスキューエル'); +INSERT INTO readings VALUES ('グルンガ'); +INSERT INTO readings VALUES ('ピージールンガ'); +INSERT INTO readings VALUES ('ピージーロジカル'); +CREATE INDEX pgrn_index ON readings + USING pgroonga (katakana pgroonga.text_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT katakana + FROM readings + WHERE katakana &^~ 'p'; + katakana +------------------------ + ポストグレスキューエル + ピージールンガ + ピージーロジカル +(3 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text/prefix-rk/indexscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix-rk/indexscan.out 2017-08-10 14:49:35 +0900 (77c5e99) @@ -0,0 +1,23 @@ +CREATE TABLE readings ( + katakana text +); +INSERT INTO readings VALUES ('ポストグレスキューエル'); +INSERT INTO readings VALUES ('グルンガ'); +INSERT INTO readings VALUES ('ピージールンガ'); +INSERT INTO readings VALUES ('ピージーロジカル'); +CREATE INDEX pgrn_index ON readings + USING pgroonga (katakana pgroonga.text_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT katakana + FROM readings + WHERE katakana &^~ 'p'; + katakana +------------------------ + ピージールンガ + ピージーロジカル + ポストグレスキューエル +(3 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text/prefix-rk/seqscan.out (+21 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix-rk/seqscan.out 2017-08-10 14:49:35 +0900 (f7073ce) @@ -0,0 +1,21 @@ +CREATE TABLE readings ( + katakana text +); +INSERT INTO readings VALUES ('ポストグレスキューエル'); +INSERT INTO readings VALUES ('グルンガ'); +INSERT INTO readings VALUES ('ピージールンガ'); +INSERT INTO readings VALUES ('ピージーロジカル'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT katakana + FROM readings + WHERE katakana &^~ 'p'; + katakana +------------------------ + ポストグレスキューエル + ピージールンガ + ピージーロジカル +(3 rows) + +DROP TABLE readings; Added: expected/compatibility/schema/term-search/text/prefix/bitmapscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix/bitmapscan.out 2017-08-10 14:49:35 +0900 (11ee928) @@ -0,0 +1,22 @@ +CREATE TABLE tags ( + name text +); +INSERT INTO tags VALUES ('PostgreSQL'); +INSERT INTO tags VALUES ('Groonga'); +INSERT INTO tags VALUES ('PGroonga'); +INSERT INTO tags VALUES ('pglogical'); +CREATE INDEX pgrn_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +SELECT name + FROM tags + WHERE name &^ 'pG'; + name +----------- + PGroonga + pglogical +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text/prefix/indexscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix/indexscan.out 2017-08-10 14:49:35 +0900 (c902faa) @@ -0,0 +1,22 @@ +CREATE TABLE tags ( + name text +); +INSERT INTO tags VALUES ('PostgreSQL'); +INSERT INTO tags VALUES ('Groonga'); +INSERT INTO tags VALUES ('PGroonga'); +INSERT INTO tags VALUES ('pglogical'); +CREATE INDEX pgrn_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT name + FROM tags + WHERE name &^ 'pG'; + name +----------- + PGroonga + pglogical +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/text/prefix/seqscan.out (+20 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/text/prefix/seqscan.out 2017-08-10 14:49:35 +0900 (7693d80) @@ -0,0 +1,20 @@ +CREATE TABLE tags ( + name text +); +INSERT INTO tags VALUES ('PostgreSQL'); +INSERT INTO tags VALUES ('Groonga'); +INSERT INTO tags VALUES ('PGroonga'); +INSERT INTO tags VALUES ('pglogical'); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT name + FROM tags + WHERE name &^ 'pG'; + name +----------- + PGroonga + pglogical +(2 rows) + +DROP TABLE tags; Added: expected/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (cd6f849) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, tags + FROM memos + WHERE tags &> 'Groonga'; + QUERY PLAN +------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (tags &> 'Groonga'::character varying) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (tags &> 'Groonga'::character varying) +(4 rows) + +SELECT title, tags + FROM memos + WHERE tags &> 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/indexscan.out 2017-08-10 14:49:35 +0900 (82fb82e) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, tags + FROM memos + WHERE tags &> 'Groonga'; + QUERY PLAN +------------------------------------------------------ + Index Scan using pgroonga_memos_index on memos + Index Cond: (tags &> 'Groonga'::character varying) +(2 rows) + +SELECT title, tags + FROM memos + WHERE tags &> 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/compatibility/v1/contain-v2/seqscan.out 2017-08-10 14:49:35 +0900 (badcdc3) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_ops); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, tags + FROM memos + WHERE tags &> 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/bitmapscan.out 2017-08-10 14:49:35 +0900 (cbb0627) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, tags + FROM memos + WHERE tags %% 'Groonga'; + QUERY PLAN +------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (tags %% 'Groonga'::character varying) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (tags %% 'Groonga'::character varying) +(4 rows) + +SELECT title, tags + FROM memos + WHERE tags %% 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/indexscan.out 2017-08-10 14:49:35 +0900 (d292527) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, tags + FROM memos + WHERE tags %% 'Groonga'; + QUERY PLAN +------------------------------------------------------ + Index Scan using pgroonga_memos_index on memos + Index Cond: (tags %% 'Groonga'::character varying) +(2 rows) + +SELECT title, tags + FROM memos + WHERE tags %% 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/compatibility/v2/contain-v1/seqscan.out 2017-08-10 14:49:35 +0900 (7e2d1e7) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_term_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, tags + FROM memos + WHERE tags %% 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/contain-v2/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/contain-v2/bitmapscan.out 2017-08-10 14:49:35 +0900 (99e6ee0) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, tags + FROM memos + WHERE tags &> 'Groonga'; + QUERY PLAN +------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (tags &> 'Groonga'::character varying) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (tags &> 'Groonga'::character varying) +(4 rows) + +SELECT title, tags + FROM memos + WHERE tags &> 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/contain-v2/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/contain-v2/indexscan.out 2017-08-10 14:49:35 +0900 (c9d1827) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_term_search_ops_v2); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, tags + FROM memos + WHERE tags &> 'Groonga'; + QUERY PLAN +------------------------------------------------------ + Index Scan using pgroonga_memos_index on memos + Index Cond: (tags &> 'Groonga'::character varying) +(2 rows) + +SELECT title, tags + FROM memos + WHERE tags &> 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/contain-v2/seqscan.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/contain-v2/seqscan.out 2017-08-10 14:49:35 +0900 (ee56d25) @@ -0,0 +1,22 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_term_search_ops_v2); +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, tags + FROM memos + WHERE tags &> 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/contain/bitmapscan.out (+34 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/contain/bitmapscan.out 2017-08-10 14:49:35 +0900 (cefb3c0) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_ops); +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; +EXPLAIN (COSTS OFF) +SELECT title, tags + FROM memos + WHERE tags %% 'Groonga'; + QUERY PLAN +------------------------------------------------------------ + Bitmap Heap Scan on memos + Recheck Cond: (tags %% 'Groonga'::character varying) + -> Bitmap Index Scan on pgroonga_memos_index + Index Cond: (tags %% 'Groonga'::character varying) +(4 rows) + +SELECT title, tags + FROM memos + WHERE tags %% 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/contain/indexscan.out (+32 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/contain/indexscan.out 2017-08-10 14:49:35 +0900 (4bb3b25) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (tags pgroonga.varchar_array_ops); +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +EXPLAIN (COSTS OFF) +SELECT title, tags + FROM memos + WHERE tags %% 'Groonga'; + QUERY PLAN +------------------------------------------------------ + Index Scan using pgroonga_memos_index on memos + Index Cond: (tags %% 'Groonga'::character varying) +(2 rows) + +SELECT title, tags + FROM memos + WHERE tags %% 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/term-search/varchar-array/contain/seqscan.out (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/term-search/varchar-array/contain/seqscan.out 2017-08-10 14:49:35 +0900 (84d217e) @@ -0,0 +1,23 @@ +CREATE TABLE memos ( + title text, + tags varchar(1023)[] +); +INSERT INTO memos VALUES ('PostgreSQL', ARRAY['PostgreSQL']); +INSERT INTO memos VALUES ('Groonga', ARRAY['Groonga']); +INSERT INTO memos VALUES ('PGroonga', ARRAY['PostgreSQL', 'Groonga']); +CREATE INDEX pgroonga_memos_index ON memos USING pgroonga (tags); +ERROR: data type character varying[] has no default operator class for access method "pgroonga" +HINT: You must specify an operator class for the index or define a default operator class for the data type. +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; +SELECT title, tags + FROM memos + WHERE tags %% 'Groonga'; + title | tags +----------+---------------------- + Groonga | {Groonga} + PGroonga | {PostgreSQL,Groonga} +(2 rows) + +DROP TABLE memos; Added: expected/compatibility/schema/vacuum/tablespace.out.in (+23 -0) 100644 =================================================================== --- /dev/null +++ expected/compatibility/schema/vacuum/tablespace.out.in 2017-08-10 14:49:35 +0900 (2386c37) @@ -0,0 +1,23 @@ +CREATE TABLESPACE fast LOCATION '@TMP_DIR@/space'; +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.'); +CREATE INDEX pgrn_index ON memos USING pgroonga (content) TABLESPACE fast; +VACUUM; +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; +SELECT id, content + FROM memos + WHERE content %% 'PGroonga' AND content %% 'Groonga'; + id | content +----+------------------------------------------------------- + 3 | PGroonga is a PostgreSQL extension that uses Groonga. +(1 row) + +DROP TABLE memos; +DROP TABLESPACE fast; Modified: pgroonga.mk (+6 -0) =================================================================== --- pgroonga.mk 2017-08-03 23:40:56 +0900 (a587f4b) +++ pgroonga.mk 2017-08-10 14:49:35 +0900 (f6684fb) @@ -56,6 +56,12 @@ prepare-regress: @sed -e "s, �� TMP_DIR@,$(TMP_DIR),g" \ expected/vacuum/tablespace.out.in > \ expected/vacuum/tablespace.out + @sed -e "s, �� TMP_DIR@,$(TMP_DIR),g" \ + sql/compatibility/schema/vacuum/tablespace.sql.in > \ + sql/compatibility/schema/vacuum/tablespace.sql + @sed -e "s, �� TMP_DIR@,$(TMP_DIR),g" \ + expected/compatibility/schema/vacuum/tablespace.out.in > \ + expected/compatibility/schema/vacuum/tablespace.out $(RESULT_DIRS) $(EXPECTED_DIRS): @mkdir -p $@ Added: sql/compatibility/schema/column-name/japanese.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/column-name/japanese.sql 2017-08-10 14:49:35 +0900 (92e8762) @@ -0,0 +1,21 @@ +CREATE TABLE メモ ( + id integer, + コンテンツ text +); + +INSERT INTO メモ VALUES (1, 'PostgreSQLはRDBMSです。'); +INSERT INTO メモ VALUES (2, 'Groongaは高速な全文検索エンジンです。'); +INSERT INTO メモ VALUES (3, 'PGroongaはGroongaを使うPostgreSQLの拡張機能です。'); + +CREATE INDEX 全文検索索引 ON メモ + USING pgroonga (コンテンツ pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id, コンテンツ + FROM メモ + WHERE コンテンツ %% '全文検索'; + +DROP TABLE メモ; Added: sql/compatibility/schema/compare/integer/multiple/greater-than-equal/multiple.sql (+30 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/multiple/greater-than-equal/multiple.sql 2017-08-10 14:49:35 +0900 (b6f033b) @@ -0,0 +1,30 @@ +CREATE TABLE numbers ( + number1 integer, + number2 integer +); + +INSERT INTO numbers VALUES (2, 20); +INSERT INTO numbers VALUES (7, 70); +INSERT INTO numbers VALUES (6, 60); +INSERT INTO numbers VALUES (4, 40); +INSERT INTO numbers VALUES (5, 50); +INSERT INTO numbers VALUES (8, 80); +INSERT INTO numbers VALUES (1, 10); +INSERT INTO numbers VALUES (10, 100); +INSERT INTO numbers VALUES (3, 30); +INSERT INTO numbers VALUES (9, 90); + +CREATE INDEX grnindex ON numbers + USING pgroonga (number1 pgroonga.int4_ops, + number2 pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT number1, number2 + FROM numbers + WHERE number1 >= 3 AND number2 >= 50 + ORDER BY number1 ASC; + +DROP TABLE numbers; Added: sql/compatibility/schema/compare/integer/order-by-limit/asc.sql (+27 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/order-by-limit/asc.sql 2017-08-10 14:49:35 +0900 (cb320aa) @@ -0,0 +1,27 @@ +CREATE TABLE ids ( + id integer +); + +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); + +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; + +SELECT id + FROM ids + ORDER BY id ASC + LIMIT 5; + +DROP TABLE ids; Added: sql/compatibility/schema/compare/integer/order-by-limit/desc.sql (+27 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/order-by-limit/desc.sql 2017-08-10 14:49:35 +0900 (5c600d8) @@ -0,0 +1,27 @@ +CREATE TABLE ids ( + id integer +); + +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); + +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; + +SELECT id + FROM ids + ORDER BY id DESC + LIMIT 5; + +DROP TABLE ids; Added: sql/compatibility/schema/compare/integer/single/between/bitmapscan.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/single/between/bitmapscan.sql 2017-08-10 14:49:35 +0900 (1d12d95) @@ -0,0 +1,28 @@ +CREATE TABLE ids ( + id integer +); + +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); + +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT id + FROM ids + WHERE id BETWEEN 3 AND 9 + ORDER BY id ASC; + +DROP TABLE ids; Added: sql/compatibility/schema/compare/integer/single/between/indexscan.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/single/between/indexscan.sql 2017-08-10 14:49:35 +0900 (bfd7e29) @@ -0,0 +1,28 @@ +CREATE TABLE ids ( + id integer +); + +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); + +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id + FROM ids + WHERE id BETWEEN 3 AND 9 + ORDER BY id ASC; + +DROP TABLE ids; Added: sql/compatibility/schema/compare/integer/single/greater-than-equal/multiple.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/single/greater-than-equal/multiple.sql 2017-08-10 14:49:35 +0900 (20452b7) @@ -0,0 +1,28 @@ +CREATE TABLE ids ( + id integer +); + +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); + +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id + FROM ids + WHERE id >= 3 AND id >= 5 + ORDER BY id ASC; + +DROP TABLE ids; Added: sql/compatibility/schema/compare/integer/single/in/bitmapscan.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/single/in/bitmapscan.sql 2017-08-10 14:49:35 +0900 (aa0393d) @@ -0,0 +1,28 @@ +CREATE TABLE ids ( + id integer +); + +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); + +CREATE INDEX pgroonga_index ON ids + USING pgroonga (id pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT id + FROM ids + WHERE id IN (6, 1, 7) + ORDER BY id ASC; + +DROP TABLE ids; Added: sql/compatibility/schema/compare/integer/single/in/indexscan.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/single/in/indexscan.sql 2017-08-10 14:49:35 +0900 (8679f61) @@ -0,0 +1,28 @@ +CREATE TABLE ids ( + id integer +); + +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); + +CREATE INDEX pgroonga_index ON ids + USING pgroonga (id pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id + FROM ids + WHERE id IN (6, 1, 7) + ORDER BY id ASC; + +DROP TABLE ids; Added: sql/compatibility/schema/compare/integer/single/less-than-equal/bitmapscan.sql (+20 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/single/less-than-equal/bitmapscan.sql 2017-08-10 14:49:35 +0900 (7d46813) @@ -0,0 +1,20 @@ +CREATE TABLE ids ( + id integer +); + +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (3); + +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT id + FROM ids + WHERE id <= 2; + +DROP TABLE ids; Added: sql/compatibility/schema/compare/integer/single/less-than-equal/indexscan.sql (+20 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/single/less-than-equal/indexscan.sql 2017-08-10 14:49:35 +0900 (1f7741c) @@ -0,0 +1,20 @@ +CREATE TABLE ids ( + id integer +); + +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (3); + +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id + FROM ids + WHERE id <= 2; + +DROP TABLE ids; Added: sql/compatibility/schema/compare/integer/single/less-than-equal/multiple.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/integer/single/less-than-equal/multiple.sql 2017-08-10 14:49:35 +0900 (ca3d7a7) @@ -0,0 +1,28 @@ +CREATE TABLE ids ( + id integer +); + +INSERT INTO ids VALUES (2); +INSERT INTO ids VALUES (7); +INSERT INTO ids VALUES (6); +INSERT INTO ids VALUES (4); +INSERT INTO ids VALUES (5); +INSERT INTO ids VALUES (8); +INSERT INTO ids VALUES (1); +INSERT INTO ids VALUES (10); +INSERT INTO ids VALUES (3); +INSERT INTO ids VALUES (9); + +CREATE INDEX grnindex ON ids + USING pgroonga (id pgroonga.int4_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id + FROM ids + WHERE id <= 5 AND id <= 3 + ORDER BY id ASC; + +DROP TABLE ids; Added: sql/compatibility/schema/compare/timestamp-with-time-zone/single/between/bitmapscan.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/timestamp-with-time-zone/single/between/bitmapscan.sql 2017-08-10 14:49:35 +0900 (a867fa1) @@ -0,0 +1,28 @@ +CREATE TABLE logs ( + created_at timestamp with time zone +); + +INSERT INTO logs VALUES ('2015-02-14 10:44:10+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:09+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:02+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:04+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:01+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:05+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:07+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:06+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:03+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:08+09:00'); + +CREATE INDEX pgroonga_index ON logs + USING pgroonga (created_at pgroonga.timestamptz_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT created_at + FROM logs + WHERE created_at BETWEEN '2015-02-14 10:44:03+09:00' AND '2015-02-14 10:44:09+09:00' + ORDER BY created_at ASC; + +DROP TABLE logs; Added: sql/compatibility/schema/compare/timestamp-with-time-zone/single/between/indexscan.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/timestamp-with-time-zone/single/between/indexscan.sql 2017-08-10 14:49:35 +0900 (83afb26) @@ -0,0 +1,28 @@ +CREATE TABLE logs ( + created_at timestamp with time zone +); + +INSERT INTO logs VALUES ('2015-02-14 10:44:10+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:09+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:02+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:04+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:01+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:05+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:07+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:06+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:03+09:00'); +INSERT INTO logs VALUES ('2015-02-14 10:44:08+09:00'); + +CREATE INDEX pgroonga_index ON logs + USING pgroonga (created_at pgroonga.timestamptz_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT created_at + FROM logs + WHERE created_at BETWEEN '2015-02-14 10:44:03+09:00' AND '2015-02-14 10:44:09+09:00' + ORDER BY created_at ASC; + +DROP TABLE logs; Added: sql/compatibility/schema/compare/timestamp/single/between/bitmapscan.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/timestamp/single/between/bitmapscan.sql 2017-08-10 14:49:35 +0900 (f5b1ed6) @@ -0,0 +1,28 @@ +CREATE TABLE logs ( + created_at timestamp +); + +INSERT INTO logs VALUES ('2015-02-14 10:44:10'); +INSERT INTO logs VALUES ('2015-02-14 10:44:09'); +INSERT INTO logs VALUES ('2015-02-14 10:44:02'); +INSERT INTO logs VALUES ('2015-02-14 10:44:04'); +INSERT INTO logs VALUES ('2015-02-14 10:44:01'); +INSERT INTO logs VALUES ('2015-02-14 10:44:05'); +INSERT INTO logs VALUES ('2015-02-14 10:44:07'); +INSERT INTO logs VALUES ('2015-02-14 10:44:06'); +INSERT INTO logs VALUES ('2015-02-14 10:44:03'); +INSERT INTO logs VALUES ('2015-02-14 10:44:08'); + +CREATE INDEX pgroonga_index ON logs + USING pgroonga (created_at pgroonga.timestamp_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT created_at + FROM logs + WHERE created_at BETWEEN '2015-02-14 10:44:03' AND '2015-02-14 10:44:09' + ORDER BY created_at ASC; + +DROP TABLE logs; Added: sql/compatibility/schema/compare/timestamp/single/between/indexscan.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/timestamp/single/between/indexscan.sql 2017-08-10 14:49:35 +0900 (1c2eaeb) @@ -0,0 +1,28 @@ +CREATE TABLE logs ( + created_at timestamp +); + +INSERT INTO logs VALUES ('2015-02-14 10:44:10'); +INSERT INTO logs VALUES ('2015-02-14 10:44:09'); +INSERT INTO logs VALUES ('2015-02-14 10:44:02'); +INSERT INTO logs VALUES ('2015-02-14 10:44:04'); +INSERT INTO logs VALUES ('2015-02-14 10:44:01'); +INSERT INTO logs VALUES ('2015-02-14 10:44:05'); +INSERT INTO logs VALUES ('2015-02-14 10:44:07'); +INSERT INTO logs VALUES ('2015-02-14 10:44:06'); +INSERT INTO logs VALUES ('2015-02-14 10:44:03'); +INSERT INTO logs VALUES ('2015-02-14 10:44:08'); + +CREATE INDEX pgroonga_index ON logs + USING pgroonga (created_at pgroonga.timestamp_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT created_at + FROM logs + WHERE created_at BETWEEN '2015-02-14 10:44:03' AND '2015-02-14 10:44:09' + ORDER BY created_at ASC; + +DROP TABLE logs; Added: sql/compatibility/schema/compare/varchar/single/equal/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/varchar/single/equal/bitmapscan.sql 2017-08-10 14:49:35 +0900 (373a8c5) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + title varchar(1023) +); + +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); + +CREATE INDEX grnindex ON memos + USING pgroonga (title pgroonga.varchar_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT id, title + FROM memos + WHERE title = 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/compare/varchar/single/equal/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/compare/varchar/single/equal/indexscan.sql 2017-08-10 14:49:35 +0900 (7505ebc) @@ -0,0 +1,21 @@ +CREATE TABLE memos ( + id integer, + title varchar(1023) +); + +INSERT INTO memos VALUES (1, 'PostgreSQL'); +INSERT INTO memos VALUES (2, 'Groonga'); +INSERT INTO memos VALUES (3, 'PGroonga'); + +CREATE INDEX grnindex ON memos + USING pgroonga (title pgroonga.varchar_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id, title + FROM memos + WHERE title = 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (ce26502) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (bda19bc) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v1/match-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (eacc789) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/bitmapscan.sql 2017-08-10 14:49:35 +0900 (3a1a294) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/indexscan.sql 2017-08-10 14:49:35 +0900 (6574103) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2-question/seqscan.sql 2017-08-10 14:49:35 +0900 (e399c31) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (db434fe) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (d994e63) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v1/query-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (f1dc349) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/bitmapscan.sql 2017-08-10 14:49:35 +0900 (54e6fab) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/indexscan.sql 2017-08-10 14:49:35 +0900 (d7bd880) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/match-v1/seqscan.sql 2017-08-10 14:49:35 +0900 (fcb8fcb) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (753b299) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &?| Array['rdbms', 'groonga engine']; + +SELECT title, contents + FROM memos + WHERE contents &?| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (bcffcd2) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &?| Array['rdbms', 'groonga engine']; + +SELECT title, contents + FROM memos + WHERE contents &?| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-in-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (5c8eac9) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &?| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/bitmapscan.sql 2017-08-10 14:49:35 +0900 (37fa192) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/indexscan.sql 2017-08-10 14:49:35 +0900 (6c7b971) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v1/seqscan.sql 2017-08-10 14:49:35 +0900 (fb2d08e) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (d7a7907) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (e0fa59d) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/query-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (57c1d08) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (0dff562) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &~? 'Mroonga: A MySQL plugin that uses Groonga'; + +SELECT title, contents + FROM memos + WHERE contents &~? 'Mroonga: A MySQL plugin that uses Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (d28931f) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &~? 'Mroonga: A MySQL plugin that uses Groonga'; + +SELECT title, contents + FROM memos + WHERE contents &~? 'Mroonga: A MySQL plugin that uses Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/seqscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/compatibility/v2/similar-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (3a1012e) @@ -0,0 +1,26 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &~? 'Mroonga: A MySQL plugin that uses Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/match-in-v2/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/match-in-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (db83a4d) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@| Array['rdbms', 'engine']; + +SELECT title, contents + FROM memos + WHERE contents &@| Array['rdbms', 'engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/match-in-v2/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/match-in-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (28a5f69) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@| Array['rdbms', 'engine']; + +SELECT title, contents + FROM memos + WHERE contents &@| Array['rdbms', 'engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/match-in-v2/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/match-in-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (0276998) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &@| Array['rdbms', 'engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/match-v2/bitmapscan.sql (+37 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/match-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (2fa0f00) @@ -0,0 +1,37 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +INSERT INTO memos + VALUES ('empty', + ARRAY[]::text[]); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/match-v2/indexscan.sql (+37 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/match-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (383c168) @@ -0,0 +1,37 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +INSERT INTO memos + VALUES ('empty', + ARRAY[]::text[]); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/match-v2/seqscan.sql (+32 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/match-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (366c3f9) @@ -0,0 +1,32 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); +INSERT INTO memos + VALUES ('empty', + ARRAY[]::text[]); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/match/bitmapscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/match/bitmapscan.sql 2017-08-10 14:49:35 +0900 (a93610f) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/match/indexscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/match/indexscan.sql 2017-08-10 14:49:35 +0900 (79d03ba) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/match/seqscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/match/seqscan.sql 2017-08-10 14:49:35 +0900 (a98a9de) @@ -0,0 +1,26 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/query-in-v2/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/query-in-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (0233b01) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~| Array['rdbms', 'groonga engine']; + +SELECT title, contents + FROM memos + WHERE contents &@~| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/query-in-v2/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/query-in-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (36fc08e) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~| Array['rdbms', 'groonga engine']; + +SELECT title, contents + FROM memos + WHERE contents &@~| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/query-in-v2/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/query-in-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (e0f9f5f) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &@~| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/query-v2/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/query-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (29e9d2d) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/query-v2/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/query-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (7b5a567) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/query-v2/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/query-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (fa19c8e) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/query/bitmapscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/query/bitmapscan.sql 2017-08-10 14:49:35 +0900 (3dea5d4) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/query/indexscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/query/indexscan.sql 2017-08-10 14:49:35 +0900 (6829b7e) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/query/seqscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/query/seqscan.sql 2017-08-10 14:49:35 +0900 (3d0117c) @@ -0,0 +1,26 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/script-v2/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/script-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (da70efe) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &` 'contents @ "rdbms" || contents @ "engine"'; + +SELECT title, contents + FROM memos + WHERE contents &` 'contents @ "rdbms" || contents @ "engine"'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/script-v2/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/script-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (d3ac074) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &` 'contents @ "rdbms" || contents @ "engine"'; + +SELECT title, contents + FROM memos + WHERE contents &` 'contents @ "rdbms" || contents @ "engine"'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/script-v2/seqscan.sql (+29 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/script-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (340fa12) @@ -0,0 +1,29 @@ +CREATE TABLE memos ( + title text, + text text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (text pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, text + FROM memos + WHERE text &` 'text @ "rdbms" || text @ "engine"'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/similar-v2/bitmapscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/similar-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (9818e44) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@* 'Mroonga: A MySQL plugin that uses Groonga'; + +SELECT title, contents + FROM memos + WHERE contents &@* 'Mroonga: A MySQL plugin that uses Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/similar-v2/indexscan.sql (+34 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/similar-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (4a60f0e) @@ -0,0 +1,34 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +CREATE INDEX pgroonga_memos_index ON memos + USING pgroonga (contents pgroonga.text_array_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT title, contents + FROM memos + WHERE contents &@* 'Mroonga: A MySQL plugin that uses Groonga'; + +SELECT title, contents + FROM memos + WHERE contents &@* 'Mroonga: A MySQL plugin that uses Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text-array/similar-v2/seqscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text-array/similar-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (63e5bc4) @@ -0,0 +1,26 @@ +CREATE TABLE memos ( + title text, + contents text[] +); + +INSERT INTO memos + VALUES ('PostgreSQL', + ARRAY['PostgreSQL is an OSS RDBMS', + 'PostgreSQL has partial full-text search support']); +INSERT INTO memos + VALUES ('Groonga', ARRAY['Groonga is an OSS full-text search engine', + 'Groonga has full full-text search support']); +INSERT INTO memos + VALUES ('PGroonga', + ARRAY['PGroonga is an OSS PostgreSQL extension', + 'PGroonga adds full full-text search support based on Groonga to PostgreSQL']); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT title, contents + FROM memos + WHERE contents &@* 'Mroonga: A MySQL plugin that uses Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/multiple/match/bitmapscan.sql (+30 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/multiple/match/bitmapscan.sql 2017-08-10 14:49:35 +0900 (ada8651) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + id integer, + title text, + 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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (title pgroonga.text_full_text_search_ops_v2, + content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT id, title, content + FROM memos + WHERE title %% 'Groonga'; + +SELECT id, title, content + FROM memos + WHERE content %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/multiple/match/indexscan.sql (+30 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/multiple/match/indexscan.sql 2017-08-10 14:49:35 +0900 (79cf284) @@ -0,0 +1,30 @@ +CREATE TABLE memos ( + id integer, + title text, + 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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (title pgroonga.text_full_text_search_ops_v2, + content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id, title, content + FROM memos + WHERE title %% 'Groonga'; + +SELECT id, title, content + FROM memos + WHERE content %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/multiple/update.sql (+39 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/multiple/update.sql 2017-08-10 14:49:35 +0900 (34aa760) @@ -0,0 +1,39 @@ +CREATE TABLE memos ( + id integer, + title text, + 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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (title pgroonga.text_full_text_search_ops_v2, + content pgroonga.text_full_text_search_ops_v2); + +UPDATE memos + SET title = 'Mroonga', + content = 'is a MySQL plugin that uses Groonga.' + WHERE id = 3; + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id, title, content + FROM memos + WHERE content %% 'Groonga'; + +SELECT id, title, content + FROM memos + WHERE title %% 'Mroonga'; + +SELECT id, title, content + FROM memos + WHERE content %% 'MySQL'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/and/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/and/bitmapscan.sql 2017-08-10 14:49:35 +0900 (e6664c0) @@ -0,0 +1,21 @@ +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.'); + +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 %% 'PGroonga' AND content %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/and/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/and/indexscan.sql 2017-08-10 14:49:35 +0900 (09f3e23) @@ -0,0 +1,21 @@ +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.'); + +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 %% 'PGroonga' AND content %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (8a85eaf) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (b4c4f4e) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/seqscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v1/match-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (cd3b5a0) @@ -0,0 +1,21 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/bitmapscan.sql 2017-08-10 14:49:35 +0900 (ac40485) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/indexscan.sql 2017-08-10 14:49:35 +0900 (20b06c6) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/seqscan.sql (+23 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2-question/seqscan.sql 2017-08-10 14:49:35 +0900 (e0ade33) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; + +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (6679e4a) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (5209301) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/seqscan.sql (+23 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v1/query-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (ee171e5) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; + +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (8a634f8) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@> Array['rdbms', 'engine']; + +SELECT id, content + FROM memos + WHERE content &@> Array['rdbms', 'engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (30194e6) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@> Array['rdbms', 'engine']; + +SELECT id, content + FROM memos + WHERE content &@> Array['rdbms', 'engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/seqscan.sql (+18 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-in-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (1897290) @@ -0,0 +1,18 @@ +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.'); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content &@> Array['rdbms', 'engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/bitmapscan.sql 2017-08-10 14:49:35 +0900 (5608fd6) @@ -0,0 +1,26 @@ +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.'); + +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; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/indexscan.sql 2017-08-10 14:49:35 +0900 (48b93ee) @@ -0,0 +1,26 @@ +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.'); + +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; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/seqscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/match-v1/seqscan.sql 2017-08-10 14:49:35 +0900 (30b1fc7) @@ -0,0 +1,21 @@ +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.'); + +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 %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/bitmapscan.sql 2017-08-10 14:49:35 +0900 (d8a732a) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']; + +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/indexscan.sql 2017-08-10 14:49:35 +0900 (9e867c2) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']; + +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/seqscan.sql (+18 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2-greater/seqscan.sql 2017-08-10 14:49:35 +0900 (14d34bb) @@ -0,0 +1,18 @@ +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.'); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content &?> Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (79c9345) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']; + +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (e73b601) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']; + +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/seqscan.sql (+18 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-in-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (86f270e) @@ -0,0 +1,18 @@ +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.'); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content &?| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/bitmapscan.sql 2017-08-10 14:49:35 +0900 (449710b) @@ -0,0 +1,26 @@ +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.'); + +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; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/indexscan.sql 2017-08-10 14:49:35 +0900 (44d267f) @@ -0,0 +1,26 @@ +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.'); + +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; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/seqscan.sql (+23 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v1/seqscan.sql 2017-08-10 14:49:35 +0900 (20bdfec) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; + +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.'); + +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 @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (d321b33) @@ -0,0 +1,21 @@ +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.'); + +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 &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (aa2c7af) @@ -0,0 +1,21 @@ +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.'); + +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 &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/seqscan.sql (+23 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/query-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (a2d3f6c) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; + +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.'); + +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 &? 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (0bf8463) @@ -0,0 +1,21 @@ +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.'); + +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 &~? 'Mroonga is a MySQL plugin that uses Groonga.'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (9c8c9ff) @@ -0,0 +1,21 @@ +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.'); + +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 &~? 'Mroonga is a MySQL plugin that uses Groonga.'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/seqscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/compatibility/v2/similar-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (f44261d) @@ -0,0 +1,21 @@ +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.'); + +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 &~? 'Mroonga is a MySQL plugin that uses Groonga.'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/bitmapscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/indexscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/seqscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/begin-of-text/seqscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/bitmapscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/indexscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/seqscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/end-of-text/seqscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/partial/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/partial/bitmapscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/partial/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/partial/indexscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/partial/seqscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/partial/seqscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/bitmapscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/indexscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/seqscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike-v2/underscore/seqscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/bitmapscan.sql 2017-08-10 14:49:35 +0900 (332eace) @@ -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); + +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/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike/begin-of-text/indexscan.sql 2017-08-10 14:49:35 +0900 (660fc60) @@ -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); + +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/compatibility/schema/full-text-search/text/single/ilike/end-of-text/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike/end-of-text/bitmapscan.sql 2017-08-10 14:49:35 +0900 (37a70ce) @@ -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); + +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/compatibility/schema/full-text-search/text/single/ilike/end-of-text/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike/end-of-text/indexscan.sql 2017-08-10 14:49:35 +0900 (ab3b042) @@ -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); + +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/compatibility/schema/full-text-search/text/single/ilike/partial/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike/partial/bitmapscan.sql 2017-08-10 14:49:35 +0900 (2b7ddbe) @@ -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); + +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/compatibility/schema/full-text-search/text/single/ilike/partial/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike/partial/indexscan.sql 2017-08-10 14:49:35 +0900 (b035766) @@ -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); + +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/compatibility/schema/full-text-search/text/single/ilike/underscore/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike/underscore/bitmapscan.sql 2017-08-10 14:49:35 +0900 (882ccb7) @@ -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); + +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/compatibility/schema/full-text-search/text/single/ilike/underscore/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/ilike/underscore/indexscan.sql 2017-08-10 14:49:35 +0900 (4a4d9d8) @@ -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); + +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/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/bitmapscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/indexscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/seqscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/begin-of-text/seqscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/bitmapscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/indexscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/seqscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/end-of-text/seqscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/partial/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/partial/bitmapscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/partial/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/partial/indexscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/partial/seqscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/partial/seqscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/underscore/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/underscore/bitmapscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/underscore/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/underscore/indexscan.sql 2017-08-10 14:49:35 +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/compatibility/schema/full-text-search/text/single/like-v2/underscore/seqscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like-v2/underscore/seqscan.sql 2017-08-10 14:49:35 +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; Added: sql/compatibility/schema/full-text-search/text/single/like/begin-of-text/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like/begin-of-text/bitmapscan.sql 2017-08-10 14:49:35 +0900 (1df9997) @@ -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); + +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/compatibility/schema/full-text-search/text/single/like/begin-of-text/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like/begin-of-text/indexscan.sql 2017-08-10 14:49:35 +0900 (5a34f48) @@ -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); + +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/compatibility/schema/full-text-search/text/single/like/end-of-text/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like/end-of-text/bitmapscan.sql 2017-08-10 14:49:35 +0900 (36350c9) @@ -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); + +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/compatibility/schema/full-text-search/text/single/like/end-of-text/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like/end-of-text/indexscan.sql 2017-08-10 14:49:35 +0900 (ff19485) @@ -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); + +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/compatibility/schema/full-text-search/text/single/like/partial/bitmapscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like/partial/bitmapscan.sql 2017-08-10 14:49:35 +0900 (bd17c15) @@ -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); + +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/compatibility/schema/full-text-search/text/single/like/partial/indexscan.sql (+22 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like/partial/indexscan.sql 2017-08-10 14:49:35 +0900 (94b289d) @@ -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); + +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/compatibility/schema/full-text-search/text/single/like/underscore/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like/underscore/bitmapscan.sql 2017-08-10 14:49:35 +0900 (1718031) @@ -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); + +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/compatibility/schema/full-text-search/text/single/like/underscore/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/like/underscore/indexscan.sql 2017-08-10 14:49:35 +0900 (eb48af3) @@ -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); + +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/compatibility/schema/full-text-search/text/single/match-in-v2/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/match-in-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (7f7c102) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']; + +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/match-in-v2/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/match-in-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (a412f5d) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']; + +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/match-in-v2/seqscan.sql (+18 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/match-in-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (c486ce9) @@ -0,0 +1,18 @@ +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.'); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content &@| Array['rdbms', 'engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/match-v2/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/match-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (09b5d8d) @@ -0,0 +1,21 @@ +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.'); + +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 &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/match-v2/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/match-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (d93bf5e) @@ -0,0 +1,21 @@ +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.'); + +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 &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/match-v2/seqscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/match-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (ad6c31a) @@ -0,0 +1,21 @@ +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.'); + +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 &@ 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/match/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/match/bitmapscan.sql 2017-08-10 14:49:35 +0900 (711b96a) @@ -0,0 +1,21 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/match/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/match/indexscan.sql 2017-08-10 14:49:35 +0900 (483c59d) @@ -0,0 +1,21 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content %% 'Groonga'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/query-in-v2/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/query-in-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (4d47ae0) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']; + +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/query-in-v2/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/query-in-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (a7b0f3d) @@ -0,0 +1,26 @@ +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.'); + +CREATE INDEX pgrn_index ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops_v2); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']; + +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/query-in-v2/seqscan.sql (+18 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/query-in-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (7f34bc2) @@ -0,0 +1,18 @@ +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.'); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content &@~| Array['rdbms', 'groonga engine']; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/query-v2/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/query-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (57c4050) @@ -0,0 +1,26 @@ +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.'); + +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; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/query-v2/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/query-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (46f6bf3) @@ -0,0 +1,26 @@ +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.'); + +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; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + +SELECT id, content + FROM memos + WHERE content &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/query-v2/seqscan.sql (+23 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/query-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (c8afd6c) @@ -0,0 +1,23 @@ +SET search_path = "$user",public,pgroonga,pg_catalog; + +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.'); + +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 &@~ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/query/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/query/bitmapscan.sql 2017-08-10 14:49:35 +0900 (a21c615) @@ -0,0 +1,21 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = off; +SET enable_bitmapscan = on; + +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/query/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/query/indexscan.sql 2017-08-10 14:49:35 +0900 (273115d) @@ -0,0 +1,21 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content @@ 'rdbms OR engine'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/script-v2/bitmapscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/script-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (505d66b) @@ -0,0 +1,21 @@ +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.'); + +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 &` 'content @ "rdbms" || content @ "engine"'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/script-v2/indexscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/script-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (cca62ae) @@ -0,0 +1,21 @@ +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.'); + +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 &` 'content @ "rdbms" || content @ "engine"'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/script-v2/seqscan.sql (+18 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/script-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (78bc983) @@ -0,0 +1,18 @@ +CREATE TABLE memos ( + id integer, + text 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.'); + +SET enable_seqscan = on; +SET enable_indexscan = off; +SET enable_bitmapscan = off; + +SELECT id, text + FROM memos + WHERE text &` 'text @ "rdbms" || text @ "engine"'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/similar-v2/bitmapscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/similar-v2/bitmapscan.sql 2017-08-10 14:49:35 +0900 (f8668a2) @@ -0,0 +1,26 @@ +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.'); + +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; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/similar-v2/indexscan.sql (+26 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/similar-v2/indexscan.sql 2017-08-10 14:49:35 +0900 (be78553) @@ -0,0 +1,26 @@ +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.'); + +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; + +EXPLAIN (COSTS OFF) +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + +SELECT id, content + FROM memos + WHERE content &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/similar-v2/seqscan.sql (+21 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/similar-v2/seqscan.sql 2017-08-10 14:49:35 +0900 (2dba6d4) @@ -0,0 +1,21 @@ +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.'); + +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 &@* 'Mroonga is a MySQL plugin that uses Groonga.'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/truncate.sql (+24 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/truncate.sql 2017-08-10 14:49:35 +0900 (05b5c4c) @@ -0,0 +1,24 @@ +CREATE TABLE memos ( + id integer, + content text +); + +INSERT INTO memos VALUES (1, 'PostgreSQL is a RDBMS.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +TRUNCATE memos; + +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.'); + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content %% 'PostgreSQL'; + +DROP TABLE memos; Added: sql/compatibility/schema/full-text-search/text/single/update.sql (+28 -0) 100644 =================================================================== --- /dev/null +++ sql/compatibility/schema/full-text-search/text/single/update.sql 2017-08-10 14:49:35 +0900 (849e4dd) @@ -0,0 +1,28 @@ +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.'); + +CREATE INDEX grnindex ON memos + USING pgroonga (content pgroonga.text_full_text_search_ops); + +UPDATE memos SET content = 'Mroonga is a MySQL plugin that uses Groonga.' + WHERE id = 3; + +SET enable_seqscan = off; +SET enable_indexscan = on; +SET enable_bitmapscan = off; + +SELECT id, content + FROM memos + WHERE content %% 'PostgreSQL'; + +SELECT id, content + FROM memos + WHERE content %% 'MySQL'; + +DROP TABLE memos; ... truncated to 1.0MB