@@ -58,6 +58,155 @@ SELECT count(*) FROM test_tsvector2 WHERE a @@ '!no_such_lexeme';
5858-------
5959 508
6060(1 row)
61+
62+ create index wowidx on test_tsvector2 using gist (a);
63+ SET enable_seqscan=OFF;
64+ SET enable_indexscan=ON;
65+ SET enable_bitmapscan=OFF;
66+ explain (costs off) SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr|qh';
67+ QUERY PLAN
68+ -------------------------------------------------------
69+ Aggregate
70+ -> Index Scan using wowidx on test_tsvector2
71+ Index Cond: (a @@ '''wr'' | ''qh'''::tsquery)
72+ (3 rows)
73+
74+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr|qh';
75+ count
76+ -------
77+ 158
78+ (1 row)
79+
80+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr&qh';
81+ count
82+ -------
83+ 17
84+ (1 row)
85+
86+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'eq&yt';
87+ count
88+ -------
89+ 6
90+ (1 row)
91+
92+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'eq|yt';
93+ count
94+ -------
95+ 98
96+ (1 row)
97+
98+ SELECT count(*) FROM test_tsvector2 WHERE a @@ '(eq&yt)|(wr&qh)';
99+ count
100+ -------
101+ 23
102+ (1 row)
103+
104+ SELECT count(*) FROM test_tsvector2 WHERE a @@ '(eq|yt)&(wr|qh)';
105+ count
106+ -------
107+ 39
108+ (1 row)
109+
110+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'w:*|q:*';
111+ count
112+ -------
113+ 494
114+ (1 row)
115+
116+ SELECT count(*) FROM test_tsvector2 WHERE a @@ any ('{wr,qh}');
117+ count
118+ -------
119+ 158
120+ (1 row)
121+
122+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'no_such_lexeme';
123+ count
124+ -------
125+ 0
126+ (1 row)
127+
128+ SELECT count(*) FROM test_tsvector2 WHERE a @@ '!no_such_lexeme';
129+ count
130+ -------
131+ 508
132+ (1 row)
133+
134+ SET enable_indexscan=OFF;
135+ SET enable_bitmapscan=ON;
136+ explain (costs off) SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr|qh';
137+ QUERY PLAN
138+ -------------------------------------------------------------
139+ Aggregate
140+ -> Bitmap Heap Scan on test_tsvector2
141+ Recheck Cond: (a @@ '''wr'' | ''qh'''::tsquery)
142+ -> Bitmap Index Scan on wowidx
143+ Index Cond: (a @@ '''wr'' | ''qh'''::tsquery)
144+ (5 rows)
145+
146+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr|qh';
147+ count
148+ -------
149+ 158
150+ (1 row)
151+
152+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr&qh';
153+ count
154+ -------
155+ 17
156+ (1 row)
157+
158+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'eq&yt';
159+ count
160+ -------
161+ 6
162+ (1 row)
163+
164+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'eq|yt';
165+ count
166+ -------
167+ 98
168+ (1 row)
169+
170+ SELECT count(*) FROM test_tsvector2 WHERE a @@ '(eq&yt)|(wr&qh)';
171+ count
172+ -------
173+ 23
174+ (1 row)
175+
176+ SELECT count(*) FROM test_tsvector2 WHERE a @@ '(eq|yt)&(wr|qh)';
177+ count
178+ -------
179+ 39
180+ (1 row)
181+
182+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'w:*|q:*';
183+ count
184+ -------
185+ 494
186+ (1 row)
187+
188+ SELECT count(*) FROM test_tsvector2 WHERE a @@ any ('{wr,qh}');
189+ count
190+ -------
191+ 158
192+ (1 row)
193+
194+ SELECT count(*) FROM test_tsvector2 WHERE a @@ 'no_such_lexeme';
195+ count
196+ -------
197+ 0
198+ (1 row)
199+
200+ SELECT count(*) FROM test_tsvector2 WHERE a @@ '!no_such_lexeme';
201+ count
202+ -------
203+ 508
204+ (1 row)
205+
206+ RESET enable_seqscan;
207+ RESET enable_indexscan;
208+ RESET enable_bitmapscan;
209+ DROP INDEX wowidx;
61210SET enable_seqscan=OFF;
62211CREATE INDEX wowidx ON test_tsvector2 USING btree(a);
63212SELECT count(*) FROM test_tsvector2 WHERE a > 'lq d7 i4 7w y0 qt gw ch o6 eo';
0 commit comments