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

Commit09fe92a

Browse files
committed
more tests
1 parentd7d1a26 commit09fe92a

File tree

3 files changed

+271
-0
lines changed

3 files changed

+271
-0
lines changed

‎.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ include
1212
lib
1313
pip-selfcheck.json
1414
rum--*.sql
15+
regression*

‎expected/array.out

Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
set enable_seqscan=off;
2+
/*
3+
* Complete checks for int2[].
4+
*/
25
CREATE TABLE test_array (
36
i int2[]
47
);
@@ -288,3 +291,224 @@ SELECT * FROM test_array WHERE i <@ '{100}';
288291
{}
289292
(1 row)
290293

294+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i % '{}';
295+
QUERY PLAN
296+
------------------------------------------
297+
Index Scan using idx_array on test_array
298+
Index Cond: (i % '{}'::smallint[])
299+
(2 rows)
300+
301+
SELECT * FROM test_array WHERE i % '{}';
302+
i
303+
---
304+
(0 rows)
305+
306+
SELECT * FROM test_array WHERE i % '{1}';
307+
i
308+
-----------
309+
{1,2,3,4}
310+
{1,2,3}
311+
{1,2}
312+
{1}
313+
(4 rows)
314+
315+
SELECT * FROM test_array WHERE i % '{2}';
316+
i
317+
-----------
318+
{1,2,3,4}
319+
{1,2,3}
320+
{1,2}
321+
(3 rows)
322+
323+
SELECT * FROM test_array WHERE i % '{1,2}';
324+
i
325+
-----------
326+
{1,2,3,4}
327+
{1,2,3}
328+
{1,2}
329+
{1}
330+
(4 rows)
331+
332+
SELECT * FROM test_array WHERE i % '{1,2,4}';
333+
i
334+
-----------
335+
{1,2,3,4}
336+
{1,2,3}
337+
{1,2}
338+
{1}
339+
(4 rows)
340+
341+
SELECT * FROM test_array WHERE i % '{1,2,3,4}';
342+
i
343+
-----------
344+
{1,2,3,4}
345+
{1,2,3}
346+
{1,2}
347+
{1}
348+
(4 rows)
349+
350+
SELECT * FROM test_array WHERE i % '{4,3,2,1}';
351+
i
352+
-----------
353+
{1,2,3,4}
354+
{1,2,3}
355+
{1,2}
356+
{1}
357+
(4 rows)
358+
359+
SELECT * FROM test_array WHERE i % '{1,2,3,4,5}';
360+
i
361+
-----------
362+
{1,2,3,4}
363+
{1,2,3}
364+
{1,2}
365+
(3 rows)
366+
367+
SELECT * FROM test_array WHERE i % '{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}';
368+
i
369+
-----------
370+
{1,2,3,4}
371+
(1 row)
372+
373+
SELECT * FROM test_array WHERE i % '{1,10,20,30,40,50}';
374+
i
375+
---
376+
(0 rows)
377+
378+
SELECT * FROM test_array WHERE i % '{1,10,20,30}';
379+
i
380+
-----
381+
{1}
382+
(1 row)
383+
384+
SELECT * FROM test_array WHERE i % '{1,1,1,1,1}';
385+
i
386+
-----------
387+
{1,2,3,4}
388+
{1,2,3}
389+
{1,2}
390+
{1}
391+
(4 rows)
392+
393+
SELECT * FROM test_array WHERE i % '{0,0}';
394+
i
395+
-----
396+
{0}
397+
(1 row)
398+
399+
SELECT * FROM test_array WHERE i % '{100}';
400+
i
401+
---
402+
(0 rows)
403+
404+
/*
405+
* Sanity checks for popular array types.
406+
*/
407+
ALTER TABLE test_array ALTER COLUMN i TYPE int4[];
408+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i = '{}';
409+
QUERY PLAN
410+
------------------------------------------
411+
Index Scan using idx_array on test_array
412+
Index Cond: (i = '{}'::integer[])
413+
(2 rows)
414+
415+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i && '{}';
416+
QUERY PLAN
417+
------------------------------------------
418+
Index Scan using idx_array on test_array
419+
Index Cond: (i && '{}'::integer[])
420+
(2 rows)
421+
422+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i @> '{}';
423+
QUERY PLAN
424+
------------------------------------------
425+
Index Scan using idx_array on test_array
426+
Index Cond: (i @> '{}'::integer[])
427+
(2 rows)
428+
429+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i <@ '{}';
430+
QUERY PLAN
431+
------------------------------------------
432+
Index Scan using idx_array on test_array
433+
Index Cond: (i <@ '{}'::integer[])
434+
(2 rows)
435+
436+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i % '{}';
437+
QUERY PLAN
438+
------------------------------------------
439+
Index Scan using idx_array on test_array
440+
Index Cond: (i % '{}'::integer[])
441+
(2 rows)
442+
443+
ALTER TABLE test_array ALTER COLUMN i TYPE int8[];
444+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i = '{}';
445+
QUERY PLAN
446+
------------------------------------------
447+
Index Scan using idx_array on test_array
448+
Index Cond: (i = '{}'::bigint[])
449+
(2 rows)
450+
451+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i && '{}';
452+
QUERY PLAN
453+
------------------------------------------
454+
Index Scan using idx_array on test_array
455+
Index Cond: (i && '{}'::bigint[])
456+
(2 rows)
457+
458+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i @> '{}';
459+
QUERY PLAN
460+
------------------------------------------
461+
Index Scan using idx_array on test_array
462+
Index Cond: (i @> '{}'::bigint[])
463+
(2 rows)
464+
465+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i <@ '{}';
466+
QUERY PLAN
467+
------------------------------------------
468+
Index Scan using idx_array on test_array
469+
Index Cond: (i <@ '{}'::bigint[])
470+
(2 rows)
471+
472+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i % '{}';
473+
QUERY PLAN
474+
------------------------------------------
475+
Index Scan using idx_array on test_array
476+
Index Cond: (i % '{}'::bigint[])
477+
(2 rows)
478+
479+
ALTER TABLE test_array ALTER COLUMN i TYPE text[];
480+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i = '{}';
481+
QUERY PLAN
482+
------------------------------------------
483+
Index Scan using idx_array on test_array
484+
Index Cond: (i = '{}'::text[])
485+
(2 rows)
486+
487+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i && '{}';
488+
QUERY PLAN
489+
------------------------------------------
490+
Index Scan using idx_array on test_array
491+
Index Cond: (i && '{}'::text[])
492+
(2 rows)
493+
494+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i @> '{}';
495+
QUERY PLAN
496+
------------------------------------------
497+
Index Scan using idx_array on test_array
498+
Index Cond: (i @> '{}'::text[])
499+
(2 rows)
500+
501+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i <@ '{}';
502+
QUERY PLAN
503+
------------------------------------------
504+
Index Scan using idx_array on test_array
505+
Index Cond: (i <@ '{}'::text[])
506+
(2 rows)
507+
508+
EXPLAIN (COSTS OFF) SELECT * FROM test_array WHERE i % '{}';
509+
QUERY PLAN
510+
------------------------------------------
511+
Index Scan using idx_array on test_array
512+
Index Cond: (i % '{}'::text[])
513+
(2 rows)
514+

‎sql/array.sql

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
set enable_seqscan=off;
22

33

4+
/*
5+
* Complete checks for int2[].
6+
*/
7+
48
CREATETABLEtest_array (
59
i int2[]
610
);
@@ -54,3 +58,45 @@ SELECT * FROM test_array WHERE i <@ '{4,3,2,1}';
5458
SELECT*FROM test_arrayWHERE i<@'{0,0}';
5559
SELECT*FROM test_arrayWHERE i<@'{100}';
5660

61+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i %'{}';
62+
SELECT*FROM test_arrayWHERE i %'{}';
63+
SELECT*FROM test_arrayWHERE i %'{1}';
64+
SELECT*FROM test_arrayWHERE i %'{2}';
65+
SELECT*FROM test_arrayWHERE i %'{1,2}';
66+
SELECT*FROM test_arrayWHERE i %'{1,2,4}';
67+
SELECT*FROM test_arrayWHERE i %'{1,2,3,4}';
68+
SELECT*FROM test_arrayWHERE i %'{4,3,2,1}';
69+
SELECT*FROM test_arrayWHERE i %'{1,2,3,4,5}';
70+
SELECT*FROM test_arrayWHERE i %'{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}';
71+
SELECT*FROM test_arrayWHERE i %'{1,10,20,30,40,50}';
72+
SELECT*FROM test_arrayWHERE i %'{1,10,20,30}';
73+
SELECT*FROM test_arrayWHERE i %'{1,1,1,1,1}';
74+
SELECT*FROM test_arrayWHERE i %'{0,0}';
75+
SELECT*FROM test_arrayWHERE i %'{100}';
76+
77+
78+
/*
79+
* Sanity checks for popular array types.
80+
*/
81+
82+
ALTERTABLE test_array ALTER COLUMN i TYPE int4[];
83+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i='{}';
84+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i &&'{}';
85+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i @>'{}';
86+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i<@'{}';
87+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i %'{}';
88+
89+
ALTERTABLE test_array ALTER COLUMN i TYPE int8[];
90+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i='{}';
91+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i &&'{}';
92+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i @>'{}';
93+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i<@'{}';
94+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i %'{}';
95+
96+
ALTERTABLE test_array ALTER COLUMN i TYPEtext[];
97+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i='{}';
98+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i &&'{}';
99+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i @>'{}';
100+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i<@'{}';
101+
EXPLAIN (COSTS OFF)SELECT*FROM test_arrayWHERE i %'{}';
102+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp