Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita4a7160

Browse files
committed
Include tests related to hash of tsvector with timestamp
1 parent6831168 commita4a7160

16 files changed

+1593
-1
lines changed

‎Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ EXTENSION = rum
1111
DATA = rum--1.0.sql
1212
PGFILEDESC = "RUM index access method"
1313

14-
REGRESS = rum rum_hash ruminv timestamp orderby altorder
14+
REGRESS = rum rum_hash ruminv timestamp orderby orderby_hash altorder\
15+
altorder_hash
1516

1617
LDFLAGS_SL +=$(filter -lm,$(LIBS))
1718

‎expected/altorder.out

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,3 +323,4 @@ SELECT id, d FROM atsts WHERE t @@ 'wr&qh' AND d >= '2016-05-16 14:21:25' ORDER
323323
496 | Sun May 22 11:21:22.326724 2016
324324
(8 rows)
325325

326+
DROP TABLE atsts CASCADE;

‎expected/altorder_1.out

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,3 +322,4 @@ SELECT id, d FROM atsts WHERE t @@ 'wr&qh' AND d >= '2016-05-16 14:21:25' ORDER
322322
496 | Sun May 22 11:21:22.326724 2016
323323
(8 rows)
324324

325+
DROP TABLE atsts CASCADE;

‎expected/altorder_hash.out

Lines changed: 326 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,326 @@
1+
CREATE TABLE atsts (id int, t tsvector, d timestamp);
2+
\copy atsts from 'data/tsts.data'
3+
CREATE INDEX atsts_idx ON atsts USING rum (t rum_tsvector_hash_timestamp_ops, d)
4+
WITH (attach = 'd', to = 't', order_by_attach='t');
5+
INSERT INTO atsts VALUES (-1, 't1 t2', '2016-05-02 02:24:22.326724');
6+
INSERT INTO atsts VALUES (-2, 't1 t2 t3', '2016-05-02 02:26:22.326724');
7+
SELECT count(*) FROM atsts WHERE t @@ 'wr|qh';
8+
count
9+
-------
10+
158
11+
(1 row)
12+
13+
SELECT count(*) FROM atsts WHERE t @@ 'wr&qh';
14+
count
15+
-------
16+
17
17+
(1 row)
18+
19+
SELECT count(*) FROM atsts WHERE t @@ 'eq&yt';
20+
count
21+
-------
22+
6
23+
(1 row)
24+
25+
SELECT count(*) FROM atsts WHERE t @@ 'eq|yt';
26+
count
27+
-------
28+
98
29+
(1 row)
30+
31+
SELECT count(*) FROM atsts WHERE t @@ '(eq&yt)|(wr&qh)';
32+
count
33+
-------
34+
23
35+
(1 row)
36+
37+
SELECT count(*) FROM atsts WHERE t @@ '(eq|yt)&(wr|qh)';
38+
count
39+
-------
40+
39
41+
(1 row)
42+
43+
SET enable_indexscan=OFF;
44+
SET enable_indexonlyscan=OFF;
45+
SET enable_bitmapscan=OFF;
46+
SELECT id, d, d <=> '2016-05-16 14:21:25' FROM atsts WHERE t @@ 'wr&qh' ORDER BY d <=> '2016-05-16 14:21:25' LIMIT 5;
47+
id | d | ?column?
48+
-----+---------------------------------+---------------
49+
355 | Mon May 16 14:21:22.326724 2016 | 2.673276
50+
354 | Mon May 16 13:21:22.326724 2016 | 3602.673276
51+
371 | Tue May 17 06:21:22.326724 2016 | 57597.326724
52+
406 | Wed May 18 17:21:22.326724 2016 | 183597.326724
53+
415 | Thu May 19 02:21:22.326724 2016 | 215997.326724
54+
(5 rows)
55+
56+
SELECT id, d, d <=| '2016-05-16 14:21:25' FROM atsts WHERE t @@ 'wr&qh' ORDER BY d <=| '2016-05-16 14:21:25' LIMIT 5;
57+
id | d | ?column?
58+
-----+---------------------------------+---------------
59+
355 | Mon May 16 14:21:22.326724 2016 | 2.673276
60+
354 | Mon May 16 13:21:22.326724 2016 | 3602.673276
61+
252 | Thu May 12 07:21:22.326724 2016 | 370802.673276
62+
232 | Wed May 11 11:21:22.326724 2016 | 442802.673276
63+
168 | Sun May 08 19:21:22.326724 2016 | 673202.673276
64+
(5 rows)
65+
66+
SELECT id, d, d |=> '2016-05-16 14:21:25' FROM atsts WHERE t @@ 'wr&qh' ORDER BY d |=> '2016-05-16 14:21:25' LIMIT 5;
67+
id | d | ?column?
68+
-----+---------------------------------+---------------
69+
371 | Tue May 17 06:21:22.326724 2016 | 57597.326724
70+
406 | Wed May 18 17:21:22.326724 2016 | 183597.326724
71+
415 | Thu May 19 02:21:22.326724 2016 | 215997.326724
72+
428 | Thu May 19 15:21:22.326724 2016 | 262797.326724
73+
457 | Fri May 20 20:21:22.326724 2016 | 367197.326724
74+
(5 rows)
75+
76+
SELECT count(*) FROM atsts WHERE d < '2016-05-16 14:21:25';
77+
count
78+
-------
79+
357
80+
(1 row)
81+
82+
SELECT count(*) FROM atsts WHERE d > '2016-05-16 14:21:25';
83+
count
84+
-------
85+
153
86+
(1 row)
87+
88+
SELECT id, d FROM atsts WHERE t @@ 'wr&qh' AND d <= '2016-05-16 14:21:25' ORDER BY d;
89+
id | d
90+
-----+---------------------------------
91+
16 | Mon May 02 11:21:22.326724 2016
92+
39 | Tue May 03 10:21:22.326724 2016
93+
71 | Wed May 04 18:21:22.326724 2016
94+
135 | Sat May 07 10:21:22.326724 2016
95+
168 | Sun May 08 19:21:22.326724 2016
96+
232 | Wed May 11 11:21:22.326724 2016
97+
252 | Thu May 12 07:21:22.326724 2016
98+
354 | Mon May 16 13:21:22.326724 2016
99+
355 | Mon May 16 14:21:22.326724 2016
100+
(9 rows)
101+
102+
SELECT id, d FROM atsts WHERE t @@ 'wr&qh' AND d >= '2016-05-16 14:21:25' ORDER BY d;
103+
id | d
104+
-----+---------------------------------
105+
371 | Tue May 17 06:21:22.326724 2016
106+
406 | Wed May 18 17:21:22.326724 2016
107+
415 | Thu May 19 02:21:22.326724 2016
108+
428 | Thu May 19 15:21:22.326724 2016
109+
457 | Fri May 20 20:21:22.326724 2016
110+
458 | Fri May 20 21:21:22.326724 2016
111+
484 | Sat May 21 23:21:22.326724 2016
112+
496 | Sun May 22 11:21:22.326724 2016
113+
(8 rows)
114+
115+
RESET enable_indexscan;
116+
RESET enable_indexonlyscan;
117+
RESET enable_bitmapscan;
118+
SET enable_seqscan = off;
119+
EXPLAIN (costs off)
120+
SELECT count(*) FROM atsts WHERE t @@ 'wr|qh';
121+
QUERY PLAN
122+
-------------------------------------------------------------
123+
Aggregate
124+
-> Bitmap Heap Scan on atsts
125+
Recheck Cond: (t @@ '''wr'' | ''qh'''::tsquery)
126+
-> Bitmap Index Scan on atsts_idx
127+
Index Cond: (t @@ '''wr'' | ''qh'''::tsquery)
128+
(5 rows)
129+
130+
SELECT count(*) FROM atsts WHERE t @@ 'wr|qh';
131+
count
132+
-------
133+
158
134+
(1 row)
135+
136+
SELECT count(*) FROM atsts WHERE t @@ 'wr&qh';
137+
count
138+
-------
139+
17
140+
(1 row)
141+
142+
SELECT count(*) FROM atsts WHERE t @@ 'eq&yt';
143+
count
144+
-------
145+
6
146+
(1 row)
147+
148+
SELECT count(*) FROM atsts WHERE t @@ 'eq|yt';
149+
count
150+
-------
151+
98
152+
(1 row)
153+
154+
SELECT count(*) FROM atsts WHERE t @@ '(eq&yt)|(wr&qh)';
155+
count
156+
-------
157+
23
158+
(1 row)
159+
160+
SELECT count(*) FROM atsts WHERE t @@ '(eq|yt)&(wr|qh)';
161+
count
162+
-------
163+
39
164+
(1 row)
165+
166+
EXPLAIN (costs off)
167+
SELECT count(*) FROM atsts WHERE d < '2016-05-16 14:21:25';
168+
QUERY PLAN
169+
-----------------------------------------------------------------------------------------
170+
Aggregate
171+
-> Bitmap Heap Scan on atsts
172+
Recheck Cond: (d < 'Mon May 16 14:21:25 2016'::timestamp without time zone)
173+
-> Bitmap Index Scan on atsts_idx
174+
Index Cond: (d < 'Mon May 16 14:21:25 2016'::timestamp without time zone)
175+
(5 rows)
176+
177+
SELECT count(*) FROM atsts WHERE d < '2016-05-16 14:21:25';
178+
count
179+
-------
180+
357
181+
(1 row)
182+
183+
EXPLAIN (costs off)
184+
SELECT count(*) FROM atsts WHERE d > '2016-05-16 14:21:25';
185+
QUERY PLAN
186+
-----------------------------------------------------------------------------------------
187+
Aggregate
188+
-> Bitmap Heap Scan on atsts
189+
Recheck Cond: (d > 'Mon May 16 14:21:25 2016'::timestamp without time zone)
190+
-> Bitmap Index Scan on atsts_idx
191+
Index Cond: (d > 'Mon May 16 14:21:25 2016'::timestamp without time zone)
192+
(5 rows)
193+
194+
SELECT count(*) FROM atsts WHERE d > '2016-05-16 14:21:25';
195+
count
196+
-------
197+
153
198+
(1 row)
199+
200+
EXPLAIN (costs off)
201+
SELECT id, d, d <=> '2016-05-16 14:21:25' FROM atsts WHERE t @@ 'wr&qh' ORDER BY d <=> '2016-05-16 14:21:25' LIMIT 5;
202+
QUERY PLAN
203+
-----------------------------------------------------------------------------------
204+
Limit
205+
-> Index Scan using atsts_idx on atsts
206+
Index Cond: (t @@ '''wr'' & ''qh'''::tsquery)
207+
Order By: (d <=> 'Mon May 16 14:21:25 2016'::timestamp without time zone)
208+
(4 rows)
209+
210+
SELECT id, d, d <=> '2016-05-16 14:21:25' FROM atsts WHERE t @@ 'wr&qh' ORDER BY d <=> '2016-05-16 14:21:25' LIMIT 5;
211+
id | d | ?column?
212+
-----+---------------------------------+---------------
213+
355 | Mon May 16 14:21:22.326724 2016 | 2.673276
214+
354 | Mon May 16 13:21:22.326724 2016 | 3602.673276
215+
371 | Tue May 17 06:21:22.326724 2016 | 57597.326724
216+
406 | Wed May 18 17:21:22.326724 2016 | 183597.326724
217+
415 | Thu May 19 02:21:22.326724 2016 | 215997.326724
218+
(5 rows)
219+
220+
EXPLAIN (costs off)
221+
SELECT id, d, d <=| '2016-05-16 14:21:25' FROM atsts WHERE t @@ 'wr&qh' ORDER BY d <=| '2016-05-16 14:21:25' LIMIT 5;
222+
QUERY PLAN
223+
-----------------------------------------------------------------------------------
224+
Limit
225+
-> Index Scan using atsts_idx on atsts
226+
Index Cond: (t @@ '''wr'' & ''qh'''::tsquery)
227+
Order By: (d <=| 'Mon May 16 14:21:25 2016'::timestamp without time zone)
228+
(4 rows)
229+
230+
SELECT id, d, d <=| '2016-05-16 14:21:25' FROM atsts WHERE t @@ 'wr&qh' ORDER BY d <=| '2016-05-16 14:21:25' LIMIT 5;
231+
id | d | ?column?
232+
-----+---------------------------------+---------------
233+
355 | Mon May 16 14:21:22.326724 2016 | 2.673276
234+
354 | Mon May 16 13:21:22.326724 2016 | 3602.673276
235+
252 | Thu May 12 07:21:22.326724 2016 | 370802.673276
236+
232 | Wed May 11 11:21:22.326724 2016 | 442802.673276
237+
168 | Sun May 08 19:21:22.326724 2016 | 673202.673276
238+
(5 rows)
239+
240+
EXPLAIN (costs off)
241+
SELECT id, d, d |=> '2016-05-16 14:21:25' FROM atsts WHERE t @@ 'wr&qh' ORDER BY d |=> '2016-05-16 14:21:25' LIMIT 5;
242+
QUERY PLAN
243+
-----------------------------------------------------------------------------------
244+
Limit
245+
-> Index Scan using atsts_idx on atsts
246+
Index Cond: (t @@ '''wr'' & ''qh'''::tsquery)
247+
Order By: (d |=> 'Mon May 16 14:21:25 2016'::timestamp without time zone)
248+
(4 rows)
249+
250+
SELECT id, d, d |=> '2016-05-16 14:21:25' FROM atsts WHERE t @@ 'wr&qh' ORDER BY d |=> '2016-05-16 14:21:25' LIMIT 5;
251+
id | d | ?column?
252+
-----+---------------------------------+---------------
253+
371 | Tue May 17 06:21:22.326724 2016 | 57597.326724
254+
406 | Wed May 18 17:21:22.326724 2016 | 183597.326724
255+
415 | Thu May 19 02:21:22.326724 2016 | 215997.326724
256+
428 | Thu May 19 15:21:22.326724 2016 | 262797.326724
257+
457 | Fri May 20 20:21:22.326724 2016 | 367197.326724
258+
(5 rows)
259+
260+
EXPLAIN (costs off)
261+
SELECT id, d, d <=> '2016-05-16 14:21:25' FROM atsts ORDER BY d <=> '2016-05-16 14:21:25' LIMIT 5;
262+
QUERY PLAN
263+
-----------------------------------------------------------------------------------
264+
Limit
265+
-> Index Scan using atsts_idx on atsts
266+
Order By: (d <=> 'Mon May 16 14:21:25 2016'::timestamp without time zone)
267+
(3 rows)
268+
269+
SELECT id, d, d <=> '2016-05-16 14:21:25' FROM atsts ORDER BY d <=> '2016-05-16 14:21:25' LIMIT 5;
270+
id | d | ?column?
271+
-----+---------------------------------+-------------
272+
355 | Mon May 16 14:21:22.326724 2016 | 2.673276
273+
356 | Mon May 16 15:21:22.326724 2016 | 3597.326724
274+
354 | Mon May 16 13:21:22.326724 2016 | 3602.673276
275+
357 | Mon May 16 16:21:22.326724 2016 | 7197.326724
276+
353 | Mon May 16 12:21:22.326724 2016 | 7202.673276
277+
(5 rows)
278+
279+
EXPLAIN (costs off)
280+
SELECT id, d FROM atsts WHERE t @@ 'wr&qh' AND d <= '2016-05-16 14:21:25' ORDER BY d;
281+
QUERY PLAN
282+
----------------------------------------------------------------------------------------------------------------------------
283+
Sort
284+
Sort Key: d
285+
-> Index Scan using atsts_idx on atsts
286+
Index Cond: ((t @@ '''wr'' & ''qh'''::tsquery) AND (d <= 'Mon May 16 14:21:25 2016'::timestamp without time zone))
287+
(4 rows)
288+
289+
SELECT id, d FROM atsts WHERE t @@ 'wr&qh' AND d <= '2016-05-16 14:21:25' ORDER BY d;
290+
id | d
291+
-----+---------------------------------
292+
16 | Mon May 02 11:21:22.326724 2016
293+
39 | Tue May 03 10:21:22.326724 2016
294+
71 | Wed May 04 18:21:22.326724 2016
295+
135 | Sat May 07 10:21:22.326724 2016
296+
168 | Sun May 08 19:21:22.326724 2016
297+
232 | Wed May 11 11:21:22.326724 2016
298+
252 | Thu May 12 07:21:22.326724 2016
299+
354 | Mon May 16 13:21:22.326724 2016
300+
355 | Mon May 16 14:21:22.326724 2016
301+
(9 rows)
302+
303+
EXPLAIN (costs off)
304+
SELECT id, d FROM atsts WHERE t @@ 'wr&qh' AND d >= '2016-05-16 14:21:25' ORDER BY d;
305+
QUERY PLAN
306+
----------------------------------------------------------------------------------------------------------------------------
307+
Sort
308+
Sort Key: d
309+
-> Index Scan using atsts_idx on atsts
310+
Index Cond: ((t @@ '''wr'' & ''qh'''::tsquery) AND (d >= 'Mon May 16 14:21:25 2016'::timestamp without time zone))
311+
(4 rows)
312+
313+
SELECT id, d FROM atsts WHERE t @@ 'wr&qh' AND d >= '2016-05-16 14:21:25' ORDER BY d;
314+
id | d
315+
-----+---------------------------------
316+
371 | Tue May 17 06:21:22.326724 2016
317+
406 | Wed May 18 17:21:22.326724 2016
318+
415 | Thu May 19 02:21:22.326724 2016
319+
428 | Thu May 19 15:21:22.326724 2016
320+
457 | Fri May 20 20:21:22.326724 2016
321+
458 | Fri May 20 21:21:22.326724 2016
322+
484 | Sat May 21 23:21:22.326724 2016
323+
496 | Sun May 22 11:21:22.326724 2016
324+
(8 rows)
325+
326+
DROP TABLE atsts CASCADE;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp