3 -- Create ancillary data structures (i.e. indices)
8 CREATE INDEX onek_unique1 ON onek USING btree(unique1 int4_ops);
9 CREATE INDEX IF NOT EXISTS onek_unique1 ON onek USING btree(unique1 int4_ops);
10 NOTICE: relation "onek_unique1" already exists, skipping
11 CREATE INDEX IF NOT EXISTS ON onek USING btree(unique1 int4_ops);
12 ERROR: syntax error at or near "ON"
13 LINE 1: CREATE INDEX IF NOT EXISTS ON onek USING btree(unique1 int4_...
15 CREATE INDEX onek_unique2 ON onek USING btree(unique2 int4_ops);
16 CREATE INDEX onek_hundred ON onek USING btree(hundred int4_ops);
17 CREATE INDEX onek_stringu1 ON onek USING btree(stringu1 name_ops);
18 CREATE INDEX tenk1_unique1 ON tenk1 USING btree(unique1 int4_ops);
19 CREATE INDEX tenk1_unique2 ON tenk1 USING btree(unique2 int4_ops);
20 CREATE INDEX tenk1_hundred ON tenk1 USING btree(hundred int4_ops);
21 CREATE INDEX tenk1_thous_tenthous ON tenk1 (thousand, tenthous);
22 CREATE INDEX tenk2_unique1 ON tenk2 USING btree(unique1 int4_ops);
23 CREATE INDEX tenk2_unique2 ON tenk2 USING btree(unique2 int4_ops);
24 CREATE INDEX tenk2_hundred ON tenk2 USING btree(hundred int4_ops);
25 CREATE INDEX rix ON road USING btree (name text_ops);
26 CREATE INDEX iix ON ihighway USING btree (name text_ops);
27 CREATE INDEX six ON shighway USING btree (name text_ops);
29 COMMENT ON INDEX six_wrong IS 'bad index';
30 ERROR: relation "six_wrong" does not exist
31 COMMENT ON INDEX six IS 'good index';
32 COMMENT ON INDEX six IS NULL;
34 -- BTREE ascending/descending cases
36 -- we load int4/text from pure descending data (each key is a new
37 -- low key) and name/f8 from pure ascending data (each key is a new
38 -- high key). we had a bug where new low keys would sometimes be
41 CREATE INDEX bt_i4_index ON bt_i4_heap USING btree (seqno int4_ops);
42 CREATE INDEX bt_name_index ON bt_name_heap USING btree (seqno name_ops);
43 CREATE INDEX bt_txt_index ON bt_txt_heap USING btree (seqno text_ops);
44 CREATE INDEX bt_f8_index ON bt_f8_heap USING btree (seqno float8_ops);
46 -- BTREE partial indices
48 CREATE INDEX onek2_u1_prtl ON onek2 USING btree(unique1 int4_ops)
49 where unique1 < 20 or unique1 > 980;
50 CREATE INDEX onek2_u2_prtl ON onek2 USING btree(unique2 int4_ops)
52 CREATE INDEX onek2_stu1_prtl ON onek2 USING btree(stringu1 name_ops)
53 where onek2.stringu1 >= 'J' and onek2.stringu1 < 'K';
55 -- GiST (rtree-equivalent opclasses only)
57 CREATE INDEX grect2ind ON fast_emp4000 USING gist (home_base);
58 CREATE INDEX gpolygonind ON polygon_tbl USING gist (f1);
59 CREATE INDEX gcircleind ON circle_tbl USING gist (f1);
60 INSERT INTO POINT_TBL(f1) VALUES (NULL);
61 CREATE INDEX gpointind ON point_tbl USING gist (f1);
62 CREATE TEMP TABLE gpolygon_tbl AS
63 SELECT polygon(home_base) AS f1 FROM slow_emp4000;
64 INSERT INTO gpolygon_tbl VALUES ( '(1000,0,0,1000)' );
65 INSERT INTO gpolygon_tbl VALUES ( '(0,1000,1000,1000)' );
66 CREATE TEMP TABLE gcircle_tbl AS
67 SELECT circle(home_base) AS f1 FROM slow_emp4000;
68 CREATE INDEX ggpolygonind ON gpolygon_tbl USING gist (f1);
69 CREATE INDEX ggcircleind ON gcircle_tbl USING gist (f1);
73 CREATE TABLE quad_point_tbl AS
74 SELECT point(unique1,unique2) AS p FROM tenk1;
75 INSERT INTO quad_point_tbl
76 SELECT '(333.0,400.0)'::point FROM generate_series(1,1000);
77 INSERT INTO quad_point_tbl VALUES (NULL), (NULL), (NULL);
78 CREATE INDEX sp_quad_ind ON quad_point_tbl USING spgist (p);
79 CREATE TABLE kd_point_tbl AS SELECT * FROM quad_point_tbl;
80 CREATE INDEX sp_kd_ind ON kd_point_tbl USING spgist (p kd_point_ops);
81 CREATE TABLE radix_text_tbl AS
82 SELECT name AS t FROM road WHERE name !~ '^[0-9]';
83 INSERT INTO radix_text_tbl
84 SELECT 'P0123456789abcdef' FROM generate_series(1,1000);
85 INSERT INTO radix_text_tbl VALUES ('P0123456789abcde');
86 INSERT INTO radix_text_tbl VALUES ('P0123456789abcdefF');
87 CREATE INDEX sp_radix_ind ON radix_text_tbl USING spgist (t);
89 -- Test GiST and SP-GiST indexes
91 -- get non-indexed results for comparison purposes
92 SET enable_seqscan = ON;
93 SET enable_indexscan = OFF;
94 SET enable_bitmapscan = OFF;
95 SELECT * FROM fast_emp4000
96 WHERE home_base @ '(200,200),(2000,1000)'::box
97 ORDER BY (home_base[0])[0];
99 -----------------------
101 (1444,403),(1346,344)
104 SELECT count(*) FROM fast_emp4000 WHERE home_base && '(1000,1000,0,0)'::box;
110 SELECT count(*) FROM fast_emp4000 WHERE home_base IS NULL;
116 SELECT * FROM polygon_tbl WHERE f1 ~ '((1,1),(2,2),(2,1))'::polygon
117 ORDER BY (poly_center(f1))[0];
119 ---------------------
123 SELECT * FROM circle_tbl WHERE f1 && circle(point(1,-2), 1)
133 SELECT count(*) FROM gpolygon_tbl WHERE f1 && '(1000,1000,0,0)'::polygon;
139 SELECT count(*) FROM gcircle_tbl WHERE f1 && '<(500,500),500>'::circle;
145 SELECT count(*) FROM point_tbl WHERE f1 <@ box '(0,0,100,100)';
151 SELECT count(*) FROM point_tbl WHERE box '(0,0,100,100)' @> f1;
157 SELECT count(*) FROM point_tbl WHERE f1 <@ polygon '(0,0),(0,100),(100,100),(50,50),(100,0),(0,0)';
163 SELECT count(*) FROM point_tbl WHERE f1 <@ circle '<(50,50),50>';
169 SELECT count(*) FROM point_tbl p WHERE p.f1 << '(0.0, 0.0)';
175 SELECT count(*) FROM point_tbl p WHERE p.f1 >> '(0.0, 0.0)';
181 SELECT count(*) FROM point_tbl p WHERE p.f1 <^ '(0.0, 0.0)';
187 SELECT count(*) FROM point_tbl p WHERE p.f1 >^ '(0.0, 0.0)';
193 SELECT count(*) FROM point_tbl p WHERE p.f1 ~= '(-5, -12)';
199 SELECT * FROM point_tbl ORDER BY f1 <-> '0,1';
211 SELECT * FROM point_tbl WHERE f1 IS NULL;
217 SELECT * FROM point_tbl WHERE f1 IS NOT NULL ORDER BY f1 <-> '0,1';
228 SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0,1';
237 SELECT count(*) FROM quad_point_tbl WHERE p IS NULL;
243 SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL;
249 SELECT count(*) FROM quad_point_tbl;
255 SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
261 SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p;
267 SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)';
273 SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)';
279 SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)';
285 SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)';
291 SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)';
297 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
303 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde';
309 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF';
315 SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
321 SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
327 SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
333 SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
339 SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct ';
345 SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St ';
351 SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
357 SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
363 SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
369 SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
375 SELECT * FROM gpolygon_tbl ORDER BY f1 <-> '(0,0)'::point LIMIT 10;
377 -------------------------------------------------
378 ((240,359),(240,455),(337,455),(337,359))
379 ((662,163),(662,187),(759,187),(759,163))
381 ((0,1000),(1000,1000))
382 ((1346,344),(1346,403),(1444,403),(1444,344))
383 ((278,1409),(278,1457),(369,1457),(369,1409))
384 ((907,1156),(907,1201),(948,1201),(948,1156))
385 ((1517,971),(1517,1043),(1594,1043),(1594,971))
386 ((175,1820),(175,1850),(259,1850),(259,1820))
387 ((2424,81),(2424,160),(2424,160),(2424,81))
390 SELECT circle_center(f1), round(radius(f1)) as radius FROM gcircle_tbl ORDER BY f1 <-> '(200,300)'::point LIMIT 10;
391 circle_center | radius
392 ----------------+--------
405 -- Now check the results from plain indexscan
406 SET enable_seqscan = OFF;
407 SET enable_indexscan = ON;
408 SET enable_bitmapscan = OFF;
410 SELECT * FROM fast_emp4000
411 WHERE home_base @ '(200,200),(2000,1000)'::box
412 ORDER BY (home_base[0])[0];
414 ----------------------------------------------------------------
416 Sort Key: ((home_base[0])[0])
417 -> Index Only Scan using grect2ind on fast_emp4000
418 Index Cond: (home_base @ '(2000,1000),(200,200)'::box)
421 SELECT * FROM fast_emp4000
422 WHERE home_base @ '(200,200),(2000,1000)'::box
423 ORDER BY (home_base[0])[0];
425 -----------------------
427 (1444,403),(1346,344)
431 SELECT count(*) FROM fast_emp4000 WHERE home_base && '(1000,1000,0,0)'::box;
433 -------------------------------------------------------------
435 -> Index Only Scan using grect2ind on fast_emp4000
436 Index Cond: (home_base && '(1000,1000),(0,0)'::box)
439 SELECT count(*) FROM fast_emp4000 WHERE home_base && '(1000,1000,0,0)'::box;
446 SELECT count(*) FROM fast_emp4000 WHERE home_base IS NULL;
448 -------------------------------------------------------
450 -> Index Only Scan using grect2ind on fast_emp4000
451 Index Cond: (home_base IS NULL)
454 SELECT count(*) FROM fast_emp4000 WHERE home_base IS NULL;
461 SELECT * FROM polygon_tbl WHERE f1 ~ '((1,1),(2,2),(2,1))'::polygon
462 ORDER BY (poly_center(f1))[0];
464 -----------------------------------------------------------
466 Sort Key: ((poly_center(f1))[0])
467 -> Index Scan using gpolygonind on polygon_tbl
468 Index Cond: (f1 ~ '((1,1),(2,2),(2,1))'::polygon)
471 SELECT * FROM polygon_tbl WHERE f1 ~ '((1,1),(2,2),(2,1))'::polygon
472 ORDER BY (poly_center(f1))[0];
474 ---------------------
479 SELECT * FROM circle_tbl WHERE f1 && circle(point(1,-2), 1)
482 --------------------------------------------------
485 -> Index Scan using gcircleind on circle_tbl
486 Index Cond: (f1 && '<(1,-2),1>'::circle)
489 SELECT * FROM circle_tbl WHERE f1 && circle(point(1,-2), 1)
500 SELECT count(*) FROM gpolygon_tbl WHERE f1 && '(1000,1000,0,0)'::polygon;
502 ------------------------------------------------------------
504 -> Index Scan using ggpolygonind on gpolygon_tbl
505 Index Cond: (f1 && '((1000,1000),(0,0))'::polygon)
508 SELECT count(*) FROM gpolygon_tbl WHERE f1 && '(1000,1000,0,0)'::polygon;
515 SELECT count(*) FROM gcircle_tbl WHERE f1 && '<(500,500),500>'::circle;
517 -------------------------------------------------------
519 -> Index Scan using ggcircleind on gcircle_tbl
520 Index Cond: (f1 && '<(500,500),500>'::circle)
523 SELECT count(*) FROM gcircle_tbl WHERE f1 && '<(500,500),500>'::circle;
530 SELECT count(*) FROM point_tbl WHERE f1 <@ box '(0,0,100,100)';
532 ----------------------------------------------------
534 -> Index Only Scan using gpointind on point_tbl
535 Index Cond: (f1 <@ '(100,100),(0,0)'::box)
538 SELECT count(*) FROM point_tbl WHERE f1 <@ box '(0,0,100,100)';
545 SELECT count(*) FROM point_tbl WHERE box '(0,0,100,100)' @> f1;
547 ----------------------------------------------------
549 -> Index Only Scan using gpointind on point_tbl
550 Index Cond: (f1 <@ '(100,100),(0,0)'::box)
553 SELECT count(*) FROM point_tbl WHERE box '(0,0,100,100)' @> f1;
560 SELECT count(*) FROM point_tbl WHERE f1 <@ polygon '(0,0),(0,100),(100,100),(50,50),(100,0),(0,0)';
562 ----------------------------------------------------------------------------------------
564 -> Index Only Scan using gpointind on point_tbl
565 Index Cond: (f1 <@ '((0,0),(0,100),(100,100),(50,50),(100,0),(0,0))'::polygon)
568 SELECT count(*) FROM point_tbl WHERE f1 <@ polygon '(0,0),(0,100),(100,100),(50,50),(100,0),(0,0)';
575 SELECT count(*) FROM point_tbl WHERE f1 <@ circle '<(50,50),50>';
577 ----------------------------------------------------
579 -> Index Only Scan using gpointind on point_tbl
580 Index Cond: (f1 <@ '<(50,50),50>'::circle)
583 SELECT count(*) FROM point_tbl WHERE f1 <@ circle '<(50,50),50>';
590 SELECT count(*) FROM point_tbl p WHERE p.f1 << '(0.0, 0.0)';
592 ------------------------------------------------------
594 -> Index Only Scan using gpointind on point_tbl p
595 Index Cond: (f1 << '(0,0)'::point)
598 SELECT count(*) FROM point_tbl p WHERE p.f1 << '(0.0, 0.0)';
605 SELECT count(*) FROM point_tbl p WHERE p.f1 >> '(0.0, 0.0)';
607 ------------------------------------------------------
609 -> Index Only Scan using gpointind on point_tbl p
610 Index Cond: (f1 >> '(0,0)'::point)
613 SELECT count(*) FROM point_tbl p WHERE p.f1 >> '(0.0, 0.0)';
620 SELECT count(*) FROM point_tbl p WHERE p.f1 <^ '(0.0, 0.0)';
622 ------------------------------------------------------
624 -> Index Only Scan using gpointind on point_tbl p
625 Index Cond: (f1 <^ '(0,0)'::point)
628 SELECT count(*) FROM point_tbl p WHERE p.f1 <^ '(0.0, 0.0)';
635 SELECT count(*) FROM point_tbl p WHERE p.f1 >^ '(0.0, 0.0)';
637 ------------------------------------------------------
639 -> Index Only Scan using gpointind on point_tbl p
640 Index Cond: (f1 >^ '(0,0)'::point)
643 SELECT count(*) FROM point_tbl p WHERE p.f1 >^ '(0.0, 0.0)';
650 SELECT count(*) FROM point_tbl p WHERE p.f1 ~= '(-5, -12)';
652 ------------------------------------------------------
654 -> Index Only Scan using gpointind on point_tbl p
655 Index Cond: (f1 ~= '(-5,-12)'::point)
658 SELECT count(*) FROM point_tbl p WHERE p.f1 ~= '(-5, -12)';
665 SELECT * FROM point_tbl ORDER BY f1 <-> '0,1';
667 ----------------------------------------------
668 Index Only Scan using gpointind on point_tbl
669 Order By: (f1 <-> '(0,1)'::point)
672 SELECT * FROM point_tbl ORDER BY f1 <-> '0,1';
685 SELECT * FROM point_tbl WHERE f1 IS NULL;
687 ----------------------------------------------
688 Index Only Scan using gpointind on point_tbl
689 Index Cond: (f1 IS NULL)
692 SELECT * FROM point_tbl WHERE f1 IS NULL;
699 SELECT * FROM point_tbl WHERE f1 IS NOT NULL ORDER BY f1 <-> '0,1';
701 ----------------------------------------------
702 Index Only Scan using gpointind on point_tbl
703 Index Cond: (f1 IS NOT NULL)
704 Order By: (f1 <-> '(0,1)'::point)
707 SELECT * FROM point_tbl WHERE f1 IS NOT NULL ORDER BY f1 <-> '0,1';
719 SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0,1';
721 ------------------------------------------------
722 Index Only Scan using gpointind on point_tbl
723 Index Cond: (f1 <@ '(10,10),(-10,-10)'::box)
724 Order By: (f1 <-> '(0,1)'::point)
727 SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0,1';
737 SELECT count(*) FROM quad_point_tbl WHERE p IS NULL;
739 -----------------------------------------------------------
741 -> Index Only Scan using sp_quad_ind on quad_point_tbl
742 Index Cond: (p IS NULL)
745 SELECT count(*) FROM quad_point_tbl WHERE p IS NULL;
752 SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL;
754 -----------------------------------------------------------
756 -> Index Only Scan using sp_quad_ind on quad_point_tbl
757 Index Cond: (p IS NOT NULL)
760 SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL;
767 SELECT count(*) FROM quad_point_tbl;
769 -----------------------------------------------------------
771 -> Index Only Scan using sp_quad_ind on quad_point_tbl
774 SELECT count(*) FROM quad_point_tbl;
781 SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
783 -----------------------------------------------------------
785 -> Index Only Scan using sp_quad_ind on quad_point_tbl
786 Index Cond: (p <@ '(1000,1000),(200,200)'::box)
789 SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
796 SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p;
798 -----------------------------------------------------------
800 -> Index Only Scan using sp_quad_ind on quad_point_tbl
801 Index Cond: (p <@ '(1000,1000),(200,200)'::box)
804 SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p;
811 SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)';
813 -----------------------------------------------------------
815 -> Index Only Scan using sp_quad_ind on quad_point_tbl
816 Index Cond: (p << '(5000,4000)'::point)
819 SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)';
826 SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)';
828 -----------------------------------------------------------
830 -> Index Only Scan using sp_quad_ind on quad_point_tbl
831 Index Cond: (p >> '(5000,4000)'::point)
834 SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)';
841 SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)';
843 -----------------------------------------------------------
845 -> Index Only Scan using sp_quad_ind on quad_point_tbl
846 Index Cond: (p <^ '(5000,4000)'::point)
849 SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)';
856 SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)';
858 -----------------------------------------------------------
860 -> Index Only Scan using sp_quad_ind on quad_point_tbl
861 Index Cond: (p >^ '(5000,4000)'::point)
864 SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)';
871 SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)';
873 -----------------------------------------------------------
875 -> Index Only Scan using sp_quad_ind on quad_point_tbl
876 Index Cond: (p ~= '(4585,365)'::point)
879 SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)';
886 SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)';
888 ---------------------------------------------------------
890 -> Index Only Scan using sp_kd_ind on kd_point_tbl
891 Index Cond: (p <@ '(1000,1000),(200,200)'::box)
894 SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)';
901 SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p;
903 ---------------------------------------------------------
905 -> Index Only Scan using sp_kd_ind on kd_point_tbl
906 Index Cond: (p <@ '(1000,1000),(200,200)'::box)
909 SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p;
916 SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)';
918 -------------------------------------------------------
920 -> Index Only Scan using sp_kd_ind on kd_point_tbl
921 Index Cond: (p << '(5000,4000)'::point)
924 SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)';
931 SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)';
933 -------------------------------------------------------
935 -> Index Only Scan using sp_kd_ind on kd_point_tbl
936 Index Cond: (p >> '(5000,4000)'::point)
939 SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)';
946 SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)';
948 -------------------------------------------------------
950 -> Index Only Scan using sp_kd_ind on kd_point_tbl
951 Index Cond: (p <^ '(5000,4000)'::point)
954 SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)';
961 SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)';
963 -------------------------------------------------------
965 -> Index Only Scan using sp_kd_ind on kd_point_tbl
966 Index Cond: (p >^ '(5000,4000)'::point)
969 SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)';
976 SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)';
978 -------------------------------------------------------
980 -> Index Only Scan using sp_kd_ind on kd_point_tbl
981 Index Cond: (p ~= '(4585,365)'::point)
984 SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)';
991 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
993 ------------------------------------------------------------
995 -> Index Only Scan using sp_radix_ind on radix_text_tbl
996 Index Cond: (t = 'P0123456789abcdef'::text)
999 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
1006 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde';
1008 ------------------------------------------------------------
1010 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1011 Index Cond: (t = 'P0123456789abcde'::text)
1014 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde';
1021 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF';
1023 ------------------------------------------------------------
1025 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1026 Index Cond: (t = 'P0123456789abcdefF'::text)
1029 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF';
1036 SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
1038 ----------------------------------------------------------------------
1040 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1041 Index Cond: (t < 'Aztec Ct '::text)
1044 SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
1051 SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
1053 ------------------------------------------------------------------------
1055 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1056 Index Cond: (t ~<~ 'Aztec Ct '::text)
1059 SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
1066 SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
1068 -----------------------------------------------------------------------
1070 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1071 Index Cond: (t <= 'Aztec Ct '::text)
1074 SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
1081 SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
1083 -------------------------------------------------------------------------
1085 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1086 Index Cond: (t ~<=~ 'Aztec Ct '::text)
1089 SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
1096 SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct ';
1098 ----------------------------------------------------------------------
1100 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1101 Index Cond: (t = 'Aztec Ct '::text)
1104 SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct ';
1111 SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St ';
1113 ----------------------------------------------------------------------
1115 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1116 Index Cond: (t = 'Worth St '::text)
1119 SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St ';
1126 SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
1128 -----------------------------------------------------------------------
1130 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1131 Index Cond: (t >= 'Worth St '::text)
1134 SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
1141 SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
1143 -------------------------------------------------------------------------
1145 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1146 Index Cond: (t ~>=~ 'Worth St '::text)
1149 SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
1156 SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
1158 ----------------------------------------------------------------------
1160 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1161 Index Cond: (t > 'Worth St '::text)
1164 SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
1171 SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
1173 ------------------------------------------------------------------------
1175 -> Index Only Scan using sp_radix_ind on radix_text_tbl
1176 Index Cond: (t ~>~ 'Worth St '::text)
1179 SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
1186 SELECT * FROM gpolygon_tbl ORDER BY f1 <-> '(0,0)'::point LIMIT 10;
1188 -----------------------------------------------------
1190 -> Index Scan using ggpolygonind on gpolygon_tbl
1191 Order By: (f1 <-> '(0,0)'::point)
1194 SELECT * FROM gpolygon_tbl ORDER BY f1 <-> '(0,0)'::point LIMIT 10;
1196 -------------------------------------------------
1197 ((240,359),(240,455),(337,455),(337,359))
1198 ((662,163),(662,187),(759,187),(759,163))
1200 ((0,1000),(1000,1000))
1201 ((1346,344),(1346,403),(1444,403),(1444,344))
1202 ((278,1409),(278,1457),(369,1457),(369,1409))
1203 ((907,1156),(907,1201),(948,1201),(948,1156))
1204 ((1517,971),(1517,1043),(1594,1043),(1594,971))
1205 ((175,1820),(175,1850),(259,1850),(259,1820))
1206 ((2424,81),(2424,160),(2424,160),(2424,81))
1210 SELECT circle_center(f1), round(radius(f1)) as radius FROM gcircle_tbl ORDER BY f1 <-> '(200,300)'::point LIMIT 10;
1212 ---------------------------------------------------
1214 -> Index Scan using ggcircleind on gcircle_tbl
1215 Order By: (f1 <-> '(200,300)'::point)
1218 SELECT circle_center(f1), round(radius(f1)) as radius FROM gcircle_tbl ORDER BY f1 <-> '(200,300)'::point LIMIT 10;
1219 circle_center | radius
1220 ----------------+--------
1233 -- Now check the results from bitmap indexscan
1234 SET enable_seqscan = OFF;
1235 SET enable_indexscan = OFF;
1236 SET enable_bitmapscan = ON;
1238 SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0,1';
1240 ------------------------------------------------------------
1242 Sort Key: ((f1 <-> '(0,1)'::point))
1243 -> Bitmap Heap Scan on point_tbl
1244 Recheck Cond: (f1 <@ '(10,10),(-10,-10)'::box)
1245 -> Bitmap Index Scan on gpointind
1246 Index Cond: (f1 <@ '(10,10),(-10,-10)'::box)
1249 SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0,1';
1259 SELECT count(*) FROM quad_point_tbl WHERE p IS NULL;
1261 ----------------------------------------------
1263 -> Bitmap Heap Scan on quad_point_tbl
1264 Recheck Cond: (p IS NULL)
1265 -> Bitmap Index Scan on sp_quad_ind
1266 Index Cond: (p IS NULL)
1269 SELECT count(*) FROM quad_point_tbl WHERE p IS NULL;
1276 SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL;
1278 ----------------------------------------------
1280 -> Bitmap Heap Scan on quad_point_tbl
1281 Recheck Cond: (p IS NOT NULL)
1282 -> Bitmap Index Scan on sp_quad_ind
1283 Index Cond: (p IS NOT NULL)
1286 SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL;
1293 SELECT count(*) FROM quad_point_tbl;
1295 ----------------------------------------------
1297 -> Bitmap Heap Scan on quad_point_tbl
1298 -> Bitmap Index Scan on sp_quad_ind
1301 SELECT count(*) FROM quad_point_tbl;
1308 SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
1310 ---------------------------------------------------------------
1312 -> Bitmap Heap Scan on quad_point_tbl
1313 Recheck Cond: (p <@ '(1000,1000),(200,200)'::box)
1314 -> Bitmap Index Scan on sp_quad_ind
1315 Index Cond: (p <@ '(1000,1000),(200,200)'::box)
1318 SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
1325 SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p;
1327 ---------------------------------------------------------------
1329 -> Bitmap Heap Scan on quad_point_tbl
1330 Recheck Cond: ('(1000,1000),(200,200)'::box @> p)
1331 -> Bitmap Index Scan on sp_quad_ind
1332 Index Cond: ('(1000,1000),(200,200)'::box @> p)
1335 SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p;
1342 SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)';
1344 -------------------------------------------------------
1346 -> Bitmap Heap Scan on quad_point_tbl
1347 Recheck Cond: (p << '(5000,4000)'::point)
1348 -> Bitmap Index Scan on sp_quad_ind
1349 Index Cond: (p << '(5000,4000)'::point)
1352 SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)';
1359 SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)';
1361 -------------------------------------------------------
1363 -> Bitmap Heap Scan on quad_point_tbl
1364 Recheck Cond: (p >> '(5000,4000)'::point)
1365 -> Bitmap Index Scan on sp_quad_ind
1366 Index Cond: (p >> '(5000,4000)'::point)
1369 SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)';
1376 SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)';
1378 -------------------------------------------------------
1380 -> Bitmap Heap Scan on quad_point_tbl
1381 Recheck Cond: (p <^ '(5000,4000)'::point)
1382 -> Bitmap Index Scan on sp_quad_ind
1383 Index Cond: (p <^ '(5000,4000)'::point)
1386 SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)';
1393 SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)';
1395 -------------------------------------------------------
1397 -> Bitmap Heap Scan on quad_point_tbl
1398 Recheck Cond: (p >^ '(5000,4000)'::point)
1399 -> Bitmap Index Scan on sp_quad_ind
1400 Index Cond: (p >^ '(5000,4000)'::point)
1403 SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)';
1410 SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)';
1412 ------------------------------------------------------
1414 -> Bitmap Heap Scan on quad_point_tbl
1415 Recheck Cond: (p ~= '(4585,365)'::point)
1416 -> Bitmap Index Scan on sp_quad_ind
1417 Index Cond: (p ~= '(4585,365)'::point)
1420 SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)';
1427 SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)';
1429 ---------------------------------------------------------------
1431 -> Bitmap Heap Scan on kd_point_tbl
1432 Recheck Cond: (p <@ '(1000,1000),(200,200)'::box)
1433 -> Bitmap Index Scan on sp_kd_ind
1434 Index Cond: (p <@ '(1000,1000),(200,200)'::box)
1437 SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)';
1444 SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p;
1446 ---------------------------------------------------------------
1448 -> Bitmap Heap Scan on kd_point_tbl
1449 Recheck Cond: ('(1000,1000),(200,200)'::box @> p)
1450 -> Bitmap Index Scan on sp_kd_ind
1451 Index Cond: ('(1000,1000),(200,200)'::box @> p)
1454 SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p;
1461 SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)';
1463 -------------------------------------------------------
1465 -> Bitmap Heap Scan on kd_point_tbl
1466 Recheck Cond: (p << '(5000,4000)'::point)
1467 -> Bitmap Index Scan on sp_kd_ind
1468 Index Cond: (p << '(5000,4000)'::point)
1471 SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)';
1478 SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)';
1480 -------------------------------------------------------
1482 -> Bitmap Heap Scan on kd_point_tbl
1483 Recheck Cond: (p >> '(5000,4000)'::point)
1484 -> Bitmap Index Scan on sp_kd_ind
1485 Index Cond: (p >> '(5000,4000)'::point)
1488 SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)';
1495 SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)';
1497 -------------------------------------------------------
1499 -> Bitmap Heap Scan on kd_point_tbl
1500 Recheck Cond: (p <^ '(5000,4000)'::point)
1501 -> Bitmap Index Scan on sp_kd_ind
1502 Index Cond: (p <^ '(5000,4000)'::point)
1505 SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)';
1512 SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)';
1514 -------------------------------------------------------
1516 -> Bitmap Heap Scan on kd_point_tbl
1517 Recheck Cond: (p >^ '(5000,4000)'::point)
1518 -> Bitmap Index Scan on sp_kd_ind
1519 Index Cond: (p >^ '(5000,4000)'::point)
1522 SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)';
1529 SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)';
1531 ------------------------------------------------------
1533 -> Bitmap Heap Scan on kd_point_tbl
1534 Recheck Cond: (p ~= '(4585,365)'::point)
1535 -> Bitmap Index Scan on sp_kd_ind
1536 Index Cond: (p ~= '(4585,365)'::point)
1539 SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)';
1546 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
1548 -----------------------------------------------------------
1550 -> Bitmap Heap Scan on radix_text_tbl
1551 Recheck Cond: (t = 'P0123456789abcdef'::text)
1552 -> Bitmap Index Scan on sp_radix_ind
1553 Index Cond: (t = 'P0123456789abcdef'::text)
1556 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
1563 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde';
1565 ----------------------------------------------------------
1567 -> Bitmap Heap Scan on radix_text_tbl
1568 Recheck Cond: (t = 'P0123456789abcde'::text)
1569 -> Bitmap Index Scan on sp_radix_ind
1570 Index Cond: (t = 'P0123456789abcde'::text)
1573 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde';
1580 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF';
1582 ------------------------------------------------------------
1584 -> Bitmap Heap Scan on radix_text_tbl
1585 Recheck Cond: (t = 'P0123456789abcdefF'::text)
1586 -> Bitmap Index Scan on sp_radix_ind
1587 Index Cond: (t = 'P0123456789abcdefF'::text)
1590 SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF';
1597 SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
1599 ----------------------------------------------------------------------------
1601 -> Bitmap Heap Scan on radix_text_tbl
1602 Recheck Cond: (t < 'Aztec Ct '::text)
1603 -> Bitmap Index Scan on sp_radix_ind
1604 Index Cond: (t < 'Aztec Ct '::text)
1607 SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
1614 SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
1616 ------------------------------------------------------------------------------
1618 -> Bitmap Heap Scan on radix_text_tbl
1619 Recheck Cond: (t ~<~ 'Aztec Ct '::text)
1620 -> Bitmap Index Scan on sp_radix_ind
1621 Index Cond: (t ~<~ 'Aztec Ct '::text)
1624 SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
1631 SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
1633 -----------------------------------------------------------------------------
1635 -> Bitmap Heap Scan on radix_text_tbl
1636 Recheck Cond: (t <= 'Aztec Ct '::text)
1637 -> Bitmap Index Scan on sp_radix_ind
1638 Index Cond: (t <= 'Aztec Ct '::text)
1641 SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
1648 SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
1650 -------------------------------------------------------------------------------
1652 -> Bitmap Heap Scan on radix_text_tbl
1653 Recheck Cond: (t ~<=~ 'Aztec Ct '::text)
1654 -> Bitmap Index Scan on sp_radix_ind
1655 Index Cond: (t ~<=~ 'Aztec Ct '::text)
1658 SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
1665 SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct ';
1667 ----------------------------------------------------------------------------
1669 -> Bitmap Heap Scan on radix_text_tbl
1670 Recheck Cond: (t = 'Aztec Ct '::text)
1671 -> Bitmap Index Scan on sp_radix_ind
1672 Index Cond: (t = 'Aztec Ct '::text)
1675 SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct ';
1682 SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St ';
1684 ----------------------------------------------------------------------------
1686 -> Bitmap Heap Scan on radix_text_tbl
1687 Recheck Cond: (t = 'Worth St '::text)
1688 -> Bitmap Index Scan on sp_radix_ind
1689 Index Cond: (t = 'Worth St '::text)
1692 SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St ';
1699 SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
1701 -----------------------------------------------------------------------------
1703 -> Bitmap Heap Scan on radix_text_tbl
1704 Recheck Cond: (t >= 'Worth St '::text)
1705 -> Bitmap Index Scan on sp_radix_ind
1706 Index Cond: (t >= 'Worth St '::text)
1709 SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
1716 SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
1718 -------------------------------------------------------------------------------
1720 -> Bitmap Heap Scan on radix_text_tbl
1721 Recheck Cond: (t ~>=~ 'Worth St '::text)
1722 -> Bitmap Index Scan on sp_radix_ind
1723 Index Cond: (t ~>=~ 'Worth St '::text)
1726 SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
1733 SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
1735 ----------------------------------------------------------------------------
1737 -> Bitmap Heap Scan on radix_text_tbl
1738 Recheck Cond: (t > 'Worth St '::text)
1739 -> Bitmap Index Scan on sp_radix_ind
1740 Index Cond: (t > 'Worth St '::text)
1743 SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
1750 SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
1752 ------------------------------------------------------------------------------
1754 -> Bitmap Heap Scan on radix_text_tbl
1755 Recheck Cond: (t ~>~ 'Worth St '::text)
1756 -> Bitmap Index Scan on sp_radix_ind
1757 Index Cond: (t ~>~ 'Worth St '::text)
1760 SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
1766 RESET enable_seqscan;
1767 RESET enable_indexscan;
1768 RESET enable_bitmapscan;
1770 -- GIN over int[] and text[]
1772 -- Note: GIN currently supports only bitmap scans, not plain indexscans
1774 SET enable_seqscan = OFF;
1775 SET enable_indexscan = OFF;
1776 SET enable_bitmapscan = ON;
1777 CREATE INDEX intarrayidx ON array_index_op_test USING gin (i);
1779 SELECT * FROM array_index_op_test WHERE i @> '{32}' ORDER BY seqno;
1781 ----------------------------------------------------
1784 -> Bitmap Heap Scan on array_index_op_test
1785 Recheck Cond: (i @> '{32}'::integer[])
1786 -> Bitmap Index Scan on intarrayidx
1787 Index Cond: (i @> '{32}'::integer[])
1790 SELECT * FROM array_index_op_test WHERE i @> '{32}' ORDER BY seqno;
1792 -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------
1793 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657}
1794 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956}
1795 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066}
1796 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}
1797 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845}
1798 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
1801 SELECT * FROM array_index_op_test WHERE i && '{32}' ORDER BY seqno;
1803 -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------
1804 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657}
1805 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956}
1806 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066}
1807 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}
1808 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845}
1809 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
1812 SELECT * FROM array_index_op_test WHERE i @> '{17}' ORDER BY seqno;
1814 -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------
1815 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657}
1816 12 | {17,99,18,52,91,72,0,43,96,23} | {AAAAA33250,AAAAAAAAAAAAAAAAAAA85420,AAAAAAAAAAA33576}
1817 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309}
1818 19 | {52,82,17,74,23,46,69,51,75} | {AAAAAAAAAAAAA73084,AAAAA75968,AAAAAAAAAAAAAAAA14047,AAAAAAA80240,AAAAAAAAAAAAAAAAAAA1205,A68938}
1819 53 | {38,17} | {AAAAAAAAAAA21658}
1820 65 | {61,5,76,59,17} | {AAAAAA99807,AAAAA64741,AAAAAAAAAAA53908,AA21643,AAAAAAAAA10012}
1821 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066}
1822 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}
1825 SELECT * FROM array_index_op_test WHERE i && '{17}' ORDER BY seqno;
1827 -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------
1828 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657}
1829 12 | {17,99,18,52,91,72,0,43,96,23} | {AAAAA33250,AAAAAAAAAAAAAAAAAAA85420,AAAAAAAAAAA33576}
1830 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309}
1831 19 | {52,82,17,74,23,46,69,51,75} | {AAAAAAAAAAAAA73084,AAAAA75968,AAAAAAAAAAAAAAAA14047,AAAAAAA80240,AAAAAAAAAAAAAAAAAAA1205,A68938}
1832 53 | {38,17} | {AAAAAAAAAAA21658}
1833 65 | {61,5,76,59,17} | {AAAAAA99807,AAAAA64741,AAAAAAAAAAA53908,AA21643,AAAAAAAAA10012}
1834 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066}
1835 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}
1838 SELECT * FROM array_index_op_test WHERE i @> '{32,17}' ORDER BY seqno;
1840 -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------
1841 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657}
1842 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066}
1843 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}
1846 SELECT * FROM array_index_op_test WHERE i && '{32,17}' ORDER BY seqno;
1848 -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------
1849 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657}
1850 12 | {17,99,18,52,91,72,0,43,96,23} | {AAAAA33250,AAAAAAAAAAAAAAAAAAA85420,AAAAAAAAAAA33576}
1851 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309}
1852 19 | {52,82,17,74,23,46,69,51,75} | {AAAAAAAAAAAAA73084,AAAAA75968,AAAAAAAAAAAAAAAA14047,AAAAAAA80240,AAAAAAAAAAAAAAAAAAA1205,A68938}
1853 53 | {38,17} | {AAAAAAAAAAA21658}
1854 65 | {61,5,76,59,17} | {AAAAAA99807,AAAAA64741,AAAAAAAAAAA53908,AA21643,AAAAAAAAA10012}
1855 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956}
1856 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066}
1857 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}
1858 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845}
1859 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
1862 SELECT * FROM array_index_op_test WHERE i <@ '{38,34,32,89}' ORDER BY seqno;
1864 -------+---------------+----------------------------------------------------------------------------------------------------------------------------
1865 40 | {34} | {AAAAAAAAAAAAAA10611,AAAAAAAAAAAAAAAAAAA1205,AAAAAAAAAAA50956,AAAAAAAAAAAAAAAA31334,AAAAA70466,AAAAAAAA81587,AAAAAAA74623}
1866 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956}
1867 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845}
1871 SELECT * FROM array_index_op_test WHERE i = '{47,77}' ORDER BY seqno;
1873 -------+---------+-----------------------------------------------------------------------------------------------------------------
1874 95 | {47,77} | {AAAAAAAAAAAAAAAAA764,AAAAAAAAAAA74076,AAAAAAAAAA18107,AAAAA40681,AAAAAAAAAAAAAAA35875,AAAAA60038,AAAAAAA56483}
1877 SELECT * FROM array_index_op_test WHERE i = '{}' ORDER BY seqno;
1883 SELECT * FROM array_index_op_test WHERE i @> '{}' ORDER BY seqno;
1885 -------+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1886 1 | {92,75,71,52,64,83} | {AAAAAAAA44066,AAAAAA1059,AAAAAAAAAAA176,AAAAAAA48038}
1887 2 | {3,6} | {AAAAAA98232,AAAAAAAA79710,AAAAAAAAAAAAAAAAA69675,AAAAAAAAAAAAAAAA55798,AAAAAAAAA12793}
1888 3 | {37,64,95,43,3,41,13,30,11,43} | {AAAAAAAAAA48845,AAAAA75968,AAAAA95309,AAA54451,AAAAAAAAAA22292,AAAAAAA99836,A96617,AA17009,AAAAAAAAAAAAAA95246}
1889 4 | {71,39,99,55,33,75,45} | {AAAAAAAAA53663,AAAAAAAAAAAAAAA67062,AAAAAAAAAA64777,AAA99043,AAAAAAAAAAAAAAAAAAA91804,39557}
1890 5 | {50,42,77,50,4} | {AAAAAAAAAAAAAAAAA26540,AAAAAAA79710,AAAAAAAAAAAAAAAAAAA1205,AAAAAAAAAAA176,AAAAA95309,AAAAAAAAAAA46154,AAAAAA66777,AAAAAAAAA27249,AAAAAAAAAA64777,AAAAAAAAAAAAAAAAAAA70104}
1891 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657}
1892 7 | {12,51,88,64,8} | {AAAAAAAAAAAAAAAAAA12591,AAAAAAAAAAAAAAAAA50407,AAAAAAAAAAAA67946}
1893 8 | {60,84} | {AAAAAAA81898,AAAAAA1059,AAAAAAAAAAAA81511,AAAAA961,AAAAAAAAAAAAAAAA31334,AAAAA64741,AA6416,AAAAAAAAAAAAAAAAAA32918,AAAAAAAAAAAAAAAAA50407}
1894 9 | {56,52,35,27,80,44,81,22} | {AAAAAAAAAAAAAAA73034,AAAAAAAAAAAAA7929,AAAAAAA66161,AA88409,39557,A27153,AAAAAAAA9523,AAAAAAAAAAA99000}
1895 10 | {71,5,45} | {AAAAAAAAAAA21658,AAAAAAAAAAAA21089,AAA54451,AAAAAAAAAAAAAAAAAA54141,AAAAAAAAAAAAAA28620,AAAAAAAAAAA21658,AAAAAAAAAAA74076,AAAAAAAAA27249}
1896 11 | {41,86,74,48,22,74,47,50} | {AAAAAAAA9523,AAAAAAAAAAAA37562,AAAAAAAAAAAAAAAA14047,AAAAAAAAAAA46154,AAAA41702,AAAAAAAAAAAAAAAAA764,AAAAA62737,39557}
1897 12 | {17,99,18,52,91,72,0,43,96,23} | {AAAAA33250,AAAAAAAAAAAAAAAAAAA85420,AAAAAAAAAAA33576}
1898 13 | {3,52,34,23} | {AAAAAA98232,AAAA49534,AAAAAAAAAAA21658}
1899 14 | {78,57,19} | {AAAA8857,AAAAAAAAAAAAAAA73034,AAAAAAAA81587,AAAAAAAAAAAAAAA68526,AAAAA75968,AAAAAAAAAAAAAA65909,AAAAAAAAA10012,AAAAAAAAAAAAAA65909}
1900 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309}
1901 16 | {14,63,85,11} | {AAAAAA66777}
1902 17 | {7,10,81,85} | {AAAAAA43678,AAAAAAA12144,AAAAAAAAAAA50956,AAAAAAAAAAAAAAAAAAA15356}
1903 18 | {1} | {AAAAAAAAAAA33576,AAAAA95309,64261,AAA59323,AAAAAAAAAAAAAA95246,55847,AAAAAAAAAAAA67946,AAAAAAAAAAAAAAAAAA64374}
1904 19 | {52,82,17,74,23,46,69,51,75} | {AAAAAAAAAAAAA73084,AAAAA75968,AAAAAAAAAAAAAAAA14047,AAAAAAA80240,AAAAAAAAAAAAAAAAAAA1205,A68938}
1905 20 | {72,89,70,51,54,37,8,49,79} | {AAAAAA58494}
1906 21 | {2,8,65,10,5,79,43} | {AAAAAAAAAAAAAAAAA88852,AAAAAAAAAAAAAAAAAAA91804,AAAAA64669,AAAAAAAAAAAAAAAA1443,AAAAAAAAAAAAAAAA23657,AAAAA12179,AAAAAAAAAAAAAAAAA88852,AAAAAAAAAAAAAAAA31334,AAAAAAAAAAAAAAAA41303,AAAAAAAAAAAAAAAAAAA85420}
1907 22 | {11,6,56,62,53,30} | {AAAAAAAA72908}
1908 23 | {40,90,5,38,72,40,30,10,43,55} | {A6053,AAAAAAAAAAA6119,AA44673,AAAAAAAAAAAAAAAAA764,AA17009,AAAAA17383,AAAAA70514,AAAAA33250,AAAAA95309,AAAAAAAAAAAA37562}
1909 24 | {94,61,99,35,48} | {AAAAAAAAAAA50956,AAAAAAAAAAA15165,AAAA85070,AAAAAAAAAAAAAAA36627,AAAAA961,AAAAAAAAAA55219}
1910 25 | {31,1,10,11,27,79,38} | {AAAAAAAAAAAAAAAAAA59334,45449}
1911 26 | {71,10,9,69,75} | {47735,AAAAAAA21462,AAAAAAAAAAAAAAAAA6897,AAAAAAAAAAAAAAAAAAA91804,AAAAAAAAA72121,AAAAAAAAAAAAAAAAAAA1205,AAAAA41597,AAAA8857,AAAAAAAAAAAAAAAAAAA15356,AA17009}
1912 27 | {94} | {AA6416,A6053,AAAAAAA21462,AAAAAAA57334,AAAAAAAAAAAAAAAAAA12591,AA88409,AAAAAAAAAAAAA70254}
1913 28 | {14,33,6,34,14} | {AAAAAAAAAAAAAAA13198,AAAAAAAA69452,AAAAAAAAAAA82945,AAAAAAA12144,AAAAAAAAA72121,AAAAAAAAAA18601}
1914 29 | {39,21} | {AAAAAAAAAAAAAAAAA6897,AAAAAAAAAAAAAAAAAAA38885,AAAA85070,AAAAAAAAAAAAAAAAAAA70104,AAAAA66674,AAAAAAAAAAAAA62007,AAAAAAAA69452,AAAAAAA1242,AAAAAAAAAAAAAAAA1729,AAAA35194}
1915 30 | {26,81,47,91,34} | {AAAAAAAAAAAAAAAAAAA70104,AAAAAAA80240}
1916 31 | {80,24,18,21,54} | {AAAAAAAAAAAAAAA13198,AAAAAAAAAAAAAAAAAAA70415,A27153,AAAAAAAAA53663,AAAAAAAAAAAAAAAAA50407,A68938}
1917 32 | {58,79,82,80,67,75,98,10,41} | {AAAAAAAAAAAAAAAAAA61286,AAA54451,AAAAAAAAAAAAAAAAAAA87527,A96617,51533}
1918 33 | {74,73} | {A85417,AAAAAAA56483,AAAAA17383,AAAAAAAAAAAAA62159,AAAAAAAAAAAA52814,AAAAAAAAAAAAA85723,AAAAAAAAAAAAAAAAAA55796}
1919 34 | {70,45} | {AAAAAAAAAAAAAAAAAA71621,AAAAAAAAAAAAAA28620,AAAAAAAAAA55219,AAAAAAAA23648,AAAAAAAAAA22292,AAAAAAA1242}
1920 35 | {23,40} | {AAAAAAAAAAAA52814,AAAA48949,AAAAAAAAA34727,AAAA8857,AAAAAAAAAAAAAAAAAAA62179,AAAAAAAAAAAAAAA68526,AAAAAAA99836,AAAAAAAA50094,AAAA91194,AAAAAAAAAAAAA73084}
1921 36 | {79,82,14,52,30,5,79} | {AAAAAAAAA53663,AAAAAAAAAAAAAAAA55798,AAAAAAAAAAAAAAAAAAA89194,AA88409,AAAAAAAAAAAAAAA81326,AAAAAAAAAAAAAAAAA63050,AAAAAAAAAAAAAAAA33598}
1922 37 | {53,11,81,39,3,78,58,64,74} | {AAAAAAAAAAAAAAAAAAA17075,AAAAAAA66161,AAAAAAAA23648,AAAAAAAAAAAAAA10611}
1923 38 | {59,5,4,95,28} | {AAAAAAAAAAA82945,A96617,47735,AAAAA12179,AAAAA64669,AAAAAA99807,AA74433,AAAAAAAAAAAAAAAAA59387}
1924 39 | {82,43,99,16,74} | {AAAAAAAAAAAAAAA67062,AAAAAAA57334,AAAAAAAAAAAAAA65909,A27153,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAAAAAA43052,AAAAAAAAAA64777,AAAAAAAAAAAA81511,AAAAAAAAAAAAAA65909,AAAAAAAAAAAAAA28620}
1925 40 | {34} | {AAAAAAAAAAAAAA10611,AAAAAAAAAAAAAAAAAAA1205,AAAAAAAAAAA50956,AAAAAAAAAAAAAAAA31334,AAAAA70466,AAAAAAAA81587,AAAAAAA74623}
1926 41 | {19,26,63,12,93,73,27,94} | {AAAAAAA79710,AAAAAAAAAA55219,AAAA41702,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAAAAAAA71621,AAAAAAAAAAAAAAAAA63050,AAAAAAA99836,AAAAAAAAAAAAAA8666}
1927 42 | {15,76,82,75,8,91} | {AAAAAAAAAAA176,AAAAAA38063,45449,AAAAAA54032,AAAAAAA81898,AA6416,AAAAAAAAAAAAAAAAAAA62179,45449,AAAAA60038,AAAAAAAA81587}
1928 43 | {39,87,91,97,79,28} | {AAAAAAAAAAA74076,A96617,AAAAAAAAAAAAAAAAAAA89194,AAAAAAAAAAAAAAAAAA55796,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAA67946}
1929 44 | {40,58,68,29,54} | {AAAAAAA81898,AAAAAA66777,AAAAAA98232}
1930 45 | {99,45} | {AAAAAAAA72908,AAAAAAAAAAAAAAAAAAA17075,AA88409,AAAAAAAAAAAAAAAAAA36842,AAAAAAA48038,AAAAAAAAAAAAAA10611}
1931 46 | {53,24} | {AAAAAAAAAAA53908,AAAAAA54032,AAAAA17383,AAAA48949,AAAAAAAAAA18601,AAAAA64669,45449,AAAAAAAAAAA98051,AAAAAAAAAAAAAAAAAA71621}
1932 47 | {98,23,64,12,75,61} | {AAA59323,AAAAA95309,AAAAAAAAAAAAAAAA31334,AAAAAAAAA27249,AAAAA17383,AAAAAAAAAAAA37562,AAAAAA1059,A84822,55847,AAAAA70466}
1933 48 | {76,14} | {AAAAAAAAAAAAA59671,AAAAAAAAAAAAAAAAAAA91804,AAAAAA66777,AAAAAAAAAAAAAAAAAAA89194,AAAAAAAAAAAAAAA36627,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAA73084,AAAAAAA79710,AAAAAAAAAAAAAAA40402,AAAAAAAAAAAAAAAAAAA65037}
1934 49 | {56,5,54,37,49} | {AA21643,AAAAAAAAAAA92631,AAAAAAAA81587}
1935 50 | {20,12,37,64,93} | {AAAAAAAAAA5483,AAAAAAAAAAAAAAAAAAA1205,AA6416,AAAAAAAAAAAAAAAAA63050,AAAAAAAAAAAAAAAAAA47955}
1936 51 | {47} | {AAAAAAAAAAAAAA96505,AAAAAAAAAAAAAAAAAA36842,AAAAA95309,AAAAAAAA81587,AA6416,AAAA91194,AAAAAA58494,AAAAAA1059,AAAAAAAA69452}
1937 52 | {89,0} | {AAAAAAAAAAAAAAAAAA47955,AAAAAAA48038,AAAAAAAAAAAAAAAAA43052,AAAAAAAAAAAAA73084,AAAAA70466,AAAAAAAAAAAAAAAAA764,AAAAAAAAAAA46154,AA66862}
1938 53 | {38,17} | {AAAAAAAAAAA21658}
1939 54 | {70,47} | {AAAAAAAAAAAAAAAAAA54141,AAAAA40681,AAAAAAA48038,AAAAAAAAAAAAAAAA29150,AAAAA41597,AAAAAAAAAAAAAAAAAA59334,AA15322}
1940 55 | {47,79,47,64,72,25,71,24,93} | {AAAAAAAAAAAAAAAAAA55796,AAAAA62737}
1941 56 | {33,7,60,54,93,90,77,85,39} | {AAAAAAAAAAAAAAAAAA32918,AA42406}
1942 57 | {23,45,10,42,36,21,9,96} | {AAAAAAAAAAAAAAAAAAA70415}
1943 58 | {92} | {AAAAAAAAAAAAAAAA98414,AAAAAAAA23648,AAAAAAAAAAAAAAAAAA55796,AA25381,AAAAAAAAAAA6119}
1944 59 | {9,69,46,77} | {39557,AAAAAAA89932,AAAAAAAAAAAAAAAAA43052,AAAAAAAAAAAAAAAAA26540,AAA20874,AA6416,AAAAAAAAAAAAAAAAAA47955}
1945 60 | {62,2,59,38,89} | {AAAAAAA89932,AAAAAAAAAAAAAAAAAAA15356,AA99927,AA17009,AAAAAAAAAAAAAAA35875}
1946 61 | {72,2,44,95,54,54,13} | {AAAAAAAAAAAAAAAAAAA91804}
1947 62 | {83,72,29,73} | {AAAAAAAAAAAAA15097,AAAA8857,AAAAAAAAAAAA35809,AAAAAAAAAAAA52814,AAAAAAAAAAAAAAAAAAA38885,AAAAAAAAAAAAAAAAAA24183,AAAAAA43678,A96617}
1948 63 | {11,4,61,87} | {AAAAAAAAA27249,AAAAAAAAAAAAAAAAAA32918,AAAAAAAAAAAAAAA13198,AAA20874,39557,51533,AAAAAAAAAAA53908,AAAAAAAAAAAAAA96505,AAAAAAAA78938}
1949 64 | {26,19,34,24,81,78} | {A96617,AAAAAAAAAAAAAAAAAAA70104,A68938,AAAAAAAAAAA53908,AAAAAAAAAAAAAAA453,AA17009,AAAAAAA80240}
1950 65 | {61,5,76,59,17} | {AAAAAA99807,AAAAA64741,AAAAAAAAAAA53908,AA21643,AAAAAAAAA10012}
1951 66 | {31,23,70,52,4,33,48,25} | {AAAAAAAAAAAAAAAAA69675,AAAAAAAA50094,AAAAAAAAAAA92631,AAAA35194,39557,AAAAAAA99836}
1952 67 | {31,94,7,10} | {AAAAAA38063,A96617,AAAA35194,AAAAAAAAAAAA67946}
1953 68 | {90,43,38} | {AA75092,AAAAAAAAAAAAAAAAA69675,AAAAAAAAAAA92631,AAAAAAAAA10012,AAAAAAAAAAAAA7929,AA21643}
1954 69 | {67,35,99,85,72,86,44} | {AAAAAAAAAAAAAAAAAAA1205,AAAAAAAA50094,AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAAAAAAA47955}
1955 70 | {56,70,83} | {AAAA41702,AAAAAAAAAAA82945,AA21643,AAAAAAAAAAA99000,A27153,AA25381,AAAAAAAAAAAAAA96505,AAAAAAA1242}
1956 71 | {74,26} | {AAAAAAAAAAA50956,AA74433,AAAAAAA21462,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAAAA36627,AAAAAAAAAAAAA70254,AAAAAAAAAA43419,39557}
1957 72 | {22,1,16,78,20,91,83} | {47735,AAAAAAA56483,AAAAAAAAAAAAA93788,AA42406,AAAAAAAAAAAAA73084,AAAAAAAA72908,AAAAAAAAAAAAAAAAAA61286,AAAAA66674,AAAAAAAAAAAAAAAAA50407}
1958 73 | {88,25,96,78,65,15,29,19} | {AAA54451,AAAAAAAAA27249,AAAAAAA9228,AAAAAAAAAAAAAAA67062,AAAAAAAAAAAAAAAAAAA70415,AAAAA17383,AAAAAAAAAAAAAAAA33598}
1959 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956}
1960 75 | {12,96,83,24,71,89,55} | {AAAA48949,AAAAAAAA29716,AAAAAAAAAAAAAAAAAAA1205,AAAAAAAAAAAA67946,AAAAAAAAAAAAAAAA29150,AAA28075,AAAAAAAAAAAAAAAAA43052}
1961 76 | {92,55,10,7} | {AAAAAAAAAAAAAAA67062}
1962 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066}
1963 78 | {55,89,44,84,34} | {AAAAAAAAAAA6119,AAAAAAAAAAAAAA8666,AA99927,AA42406,AAAAAAA81898,AAAAAAA9228,AAAAAAAAAAA92631,AA21643,AAAAAAAAAAAAAA28620}
1964 79 | {45} | {AAAAAAAAAA646,AAAAAAAAAAAAAAAAAAA70415,AAAAAA43678,AAAAAAAA72908}
1965 80 | {74,89,44,80,0} | {AAAA35194,AAAAAAAA79710,AAA20874,AAAAAAAAAAAAAAAAAAA70104,AAAAAAAAAAAAA73084,AAAAAAA57334,AAAAAAA9228,AAAAAAAAAAAAA62007}
1966 81 | {63,77,54,48,61,53,97} | {AAAAAAAAAAAAAAA81326,AAAAAAAAAA22292,AA25381,AAAAAAAAAAA74076,AAAAAAA81898,AAAAAAAAA72121}
1967 82 | {34,60,4,79,78,16,86,89,42,50} | {AAAAA40681,AAAAAAAAAAAAAAAAAA12591,AAAAAAA80240,AAAAAAAAAAAAAAAA55798,AAAAAAAAAAAAAAAAAAA70104}
1968 83 | {14,10} | {AAAAAAAAAA22292,AAAAAAAAAAAAA70254,AAAAAAAAAAA6119}
1969 84 | {11,83,35,13,96,94} | {AAAAA95309,AAAAAAAAAAAAAAAAAA32918,AAAAAAAAAAAAAAAAAA24183}
1970 85 | {39,60} | {AAAAAAAAAAAAAAAA55798,AAAAAAAAAA22292,AAAAAAA66161,AAAAAAA21462,AAAAAAAAAAAAAAAAAA12591,55847,AAAAAA98232,AAAAAAAAAAA46154}
1971 86 | {33,81,72,74,45,36,82} | {AAAAAAAA81587,AAAAAAAAAAAAAA96505,45449,AAAA80176}
1972 87 | {57,27,50,12,97,68} | {AAAAAAAAAAAAAAAAA26540,AAAAAAAAA10012,AAAAAAAAAAAA35809,AAAAAAAAAAAAAAAA29150,AAAAAAAAAAA82945,AAAAAA66777,31228,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAA96505}
1973 88 | {41,90,77,24,6,24} | {AAAA35194,AAAA35194,AAAAAAA80240,AAAAAAAAAAA46154,AAAAAA58494,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAAAAAAA59334,AAAAAAAAAAAAAAAAAAA91804,AA74433}
1974 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}
1975 90 | {88,75} | {AAAAA60038,AAAAAAAA23648,AAAAAAAAAAA99000,AAAA41702,AAAAAAAAAAAAA22860,AAAAAAAAAAAAAAA68526}
1976 91 | {78} | {AAAAAAAAAAAAA62007,AAA99043}
1977 92 | {85,63,49,45} | {AAAAAAA89932,AAAAAAAAAAAAA22860,AAAAAAAAAAAAAAAAAAA1205,AAAAAAAAAAAA21089}
1978 93 | {11} | {AAAAAAAAAAA176,AAAAAAAAAAAAAA8666,AAAAAAAAAAAAAAA453,AAAAAAAAAAAAA85723,A68938,AAAAAAAAAAAAA9821,AAAAAAA48038,AAAAAAAAAAAAAAAAA59387,AA99927,AAAAA17383}
1979 94 | {98,9,85,62,88,91,60,61,38,86} | {AAAAAAAA81587,AAAAA17383,AAAAAAAA81587}
1980 95 | {47,77} | {AAAAAAAAAAAAAAAAA764,AAAAAAAAAAA74076,AAAAAAAAAA18107,AAAAA40681,AAAAAAAAAAAAAAA35875,AAAAA60038,AAAAAAA56483}
1981 96 | {23,97,43} | {AAAAAAAAAA646,A87088}
1982 97 | {54,2,86,65} | {47735,AAAAAAA99836,AAAAAAAAAAAAAAAAA6897,AAAAAAAAAAAAAAAA29150,AAAAAAA80240,AAAAAAAAAAAAAAAA98414,AAAAAAA56483,AAAAAAAAAAAAAAAA29150,AAAAAAA39692,AA21643}
1983 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845}
1984 99 | {37,86} | {AAAAAAAAAAAAAAAAAA32918,AAAAA70514,AAAAAAAAA10012,AAAAAAAAAAAAAAAAA59387,AAAAAAAAAA64777,AAAAAAAAAAAAAAAAAAA15356}
1985 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
1987 102 | {NULL} | {NULL}
1990 SELECT * FROM array_index_op_test WHERE i && '{}' ORDER BY seqno;
1995 SELECT * FROM array_index_op_test WHERE i <@ '{}' ORDER BY seqno;
2001 SELECT * FROM array_op_test WHERE i = '{NULL}' ORDER BY seqno;
2003 -------+--------+--------
2004 102 | {NULL} | {NULL}
2007 SELECT * FROM array_op_test WHERE i @> '{NULL}' ORDER BY seqno;
2012 SELECT * FROM array_op_test WHERE i && '{NULL}' ORDER BY seqno;
2017 SELECT * FROM array_op_test WHERE i <@ '{NULL}' ORDER BY seqno;
2023 CREATE INDEX textarrayidx ON array_index_op_test USING gin (t);
2025 SELECT * FROM array_index_op_test WHERE t @> '{AAAAAAAA72908}' ORDER BY seqno;
2027 ------------------------------------------------------------
2030 -> Bitmap Heap Scan on array_index_op_test
2031 Recheck Cond: (t @> '{AAAAAAAA72908}'::text[])
2032 -> Bitmap Index Scan on textarrayidx
2033 Index Cond: (t @> '{AAAAAAAA72908}'::text[])
2036 SELECT * FROM array_index_op_test WHERE t @> '{AAAAAAAA72908}' ORDER BY seqno;
2038 -------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------
2039 22 | {11,6,56,62,53,30} | {AAAAAAAA72908}
2040 45 | {99,45} | {AAAAAAAA72908,AAAAAAAAAAAAAAAAAAA17075,AA88409,AAAAAAAAAAAAAAAAAA36842,AAAAAAA48038,AAAAAAAAAAAAAA10611}
2041 72 | {22,1,16,78,20,91,83} | {47735,AAAAAAA56483,AAAAAAAAAAAAA93788,AA42406,AAAAAAAAAAAAA73084,AAAAAAAA72908,AAAAAAAAAAAAAAAAAA61286,AAAAA66674,AAAAAAAAAAAAAAAAA50407}
2042 79 | {45} | {AAAAAAAAAA646,AAAAAAAAAAAAAAAAAAA70415,AAAAAA43678,AAAAAAAA72908}
2045 SELECT * FROM array_index_op_test WHERE t && '{AAAAAAAA72908}' ORDER BY seqno;
2047 -------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------
2048 22 | {11,6,56,62,53,30} | {AAAAAAAA72908}
2049 45 | {99,45} | {AAAAAAAA72908,AAAAAAAAAAAAAAAAAAA17075,AA88409,AAAAAAAAAAAAAAAAAA36842,AAAAAAA48038,AAAAAAAAAAAAAA10611}
2050 72 | {22,1,16,78,20,91,83} | {47735,AAAAAAA56483,AAAAAAAAAAAAA93788,AA42406,AAAAAAAAAAAAA73084,AAAAAAAA72908,AAAAAAAAAAAAAAAAAA61286,AAAAA66674,AAAAAAAAAAAAAAAAA50407}
2051 79 | {45} | {AAAAAAAAAA646,AAAAAAAAAAAAAAAAAAA70415,AAAAAA43678,AAAAAAAA72908}
2054 SELECT * FROM array_index_op_test WHERE t @> '{AAAAAAAAAA646}' ORDER BY seqno;
2056 -------+------------------+--------------------------------------------------------------------
2057 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309}
2058 79 | {45} | {AAAAAAAAAA646,AAAAAAAAAAAAAAAAAAA70415,AAAAAA43678,AAAAAAAA72908}
2059 96 | {23,97,43} | {AAAAAAAAAA646,A87088}
2062 SELECT * FROM array_index_op_test WHERE t && '{AAAAAAAAAA646}' ORDER BY seqno;
2064 -------+------------------+--------------------------------------------------------------------
2065 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309}
2066 79 | {45} | {AAAAAAAAAA646,AAAAAAAAAAAAAAAAAAA70415,AAAAAA43678,AAAAAAAA72908}
2067 96 | {23,97,43} | {AAAAAAAAAA646,A87088}
2070 SELECT * FROM array_index_op_test WHERE t @> '{AAAAAAAA72908,AAAAAAAAAA646}' ORDER BY seqno;
2072 -------+------+--------------------------------------------------------------------
2073 79 | {45} | {AAAAAAAAAA646,AAAAAAAAAAAAAAAAAAA70415,AAAAAA43678,AAAAAAAA72908}
2076 SELECT * FROM array_index_op_test WHERE t && '{AAAAAAAA72908,AAAAAAAAAA646}' ORDER BY seqno;
2078 -------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------
2079 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309}
2080 22 | {11,6,56,62,53,30} | {AAAAAAAA72908}
2081 45 | {99,45} | {AAAAAAAA72908,AAAAAAAAAAAAAAAAAAA17075,AA88409,AAAAAAAAAAAAAAAAAA36842,AAAAAAA48038,AAAAAAAAAAAAAA10611}
2082 72 | {22,1,16,78,20,91,83} | {47735,AAAAAAA56483,AAAAAAAAAAAAA93788,AA42406,AAAAAAAAAAAAA73084,AAAAAAAA72908,AAAAAAAAAAAAAAAAAA61286,AAAAA66674,AAAAAAAAAAAAAAAAA50407}
2083 79 | {45} | {AAAAAAAAAA646,AAAAAAAAAAAAAAAAAAA70415,AAAAAA43678,AAAAAAAA72908}
2084 96 | {23,97,43} | {AAAAAAAAAA646,A87088}
2087 SELECT * FROM array_index_op_test WHERE t <@ '{AAAAAAAA72908,AAAAAAAAAAAAAAAAAAA17075,AA88409,AAAAAAAAAAAAAAAAAA36842,AAAAAAA48038,AAAAAAAAAAAAAA10611}' ORDER BY seqno;
2089 -------+--------------------+-----------------------------------------------------------------------------------------------------------
2090 22 | {11,6,56,62,53,30} | {AAAAAAAA72908}
2091 45 | {99,45} | {AAAAAAAA72908,AAAAAAAAAAAAAAAAAAA17075,AA88409,AAAAAAAAAAAAAAAAAA36842,AAAAAAA48038,AAAAAAAAAAAAAA10611}
2095 SELECT * FROM array_index_op_test WHERE t = '{AAAAAAAAAA646,A87088}' ORDER BY seqno;
2097 -------+------------+------------------------
2098 96 | {23,97,43} | {AAAAAAAAAA646,A87088}
2101 SELECT * FROM array_index_op_test WHERE t = '{}' ORDER BY seqno;
2107 SELECT * FROM array_index_op_test WHERE t @> '{}' ORDER BY seqno;
2109 -------+---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2110 1 | {92,75,71,52,64,83} | {AAAAAAAA44066,AAAAAA1059,AAAAAAAAAAA176,AAAAAAA48038}
2111 2 | {3,6} | {AAAAAA98232,AAAAAAAA79710,AAAAAAAAAAAAAAAAA69675,AAAAAAAAAAAAAAAA55798,AAAAAAAAA12793}
2112 3 | {37,64,95,43,3,41,13,30,11,43} | {AAAAAAAAAA48845,AAAAA75968,AAAAA95309,AAA54451,AAAAAAAAAA22292,AAAAAAA99836,A96617,AA17009,AAAAAAAAAAAAAA95246}
2113 4 | {71,39,99,55,33,75,45} | {AAAAAAAAA53663,AAAAAAAAAAAAAAA67062,AAAAAAAAAA64777,AAA99043,AAAAAAAAAAAAAAAAAAA91804,39557}
2114 5 | {50,42,77,50,4} | {AAAAAAAAAAAAAAAAA26540,AAAAAAA79710,AAAAAAAAAAAAAAAAAAA1205,AAAAAAAAAAA176,AAAAA95309,AAAAAAAAAAA46154,AAAAAA66777,AAAAAAAAA27249,AAAAAAAAAA64777,AAAAAAAAAAAAAAAAAAA70104}
2115 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657}
2116 7 | {12,51,88,64,8} | {AAAAAAAAAAAAAAAAAA12591,AAAAAAAAAAAAAAAAA50407,AAAAAAAAAAAA67946}
2117 8 | {60,84} | {AAAAAAA81898,AAAAAA1059,AAAAAAAAAAAA81511,AAAAA961,AAAAAAAAAAAAAAAA31334,AAAAA64741,AA6416,AAAAAAAAAAAAAAAAAA32918,AAAAAAAAAAAAAAAAA50407}
2118 9 | {56,52,35,27,80,44,81,22} | {AAAAAAAAAAAAAAA73034,AAAAAAAAAAAAA7929,AAAAAAA66161,AA88409,39557,A27153,AAAAAAAA9523,AAAAAAAAAAA99000}
2119 10 | {71,5,45} | {AAAAAAAAAAA21658,AAAAAAAAAAAA21089,AAA54451,AAAAAAAAAAAAAAAAAA54141,AAAAAAAAAAAAAA28620,AAAAAAAAAAA21658,AAAAAAAAAAA74076,AAAAAAAAA27249}
2120 11 | {41,86,74,48,22,74,47,50} | {AAAAAAAA9523,AAAAAAAAAAAA37562,AAAAAAAAAAAAAAAA14047,AAAAAAAAAAA46154,AAAA41702,AAAAAAAAAAAAAAAAA764,AAAAA62737,39557}
2121 12 | {17,99,18,52,91,72,0,43,96,23} | {AAAAA33250,AAAAAAAAAAAAAAAAAAA85420,AAAAAAAAAAA33576}
2122 13 | {3,52,34,23} | {AAAAAA98232,AAAA49534,AAAAAAAAAAA21658}
2123 14 | {78,57,19} | {AAAA8857,AAAAAAAAAAAAAAA73034,AAAAAAAA81587,AAAAAAAAAAAAAAA68526,AAAAA75968,AAAAAAAAAAAAAA65909,AAAAAAAAA10012,AAAAAAAAAAAAAA65909}
2124 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309}
2125 16 | {14,63,85,11} | {AAAAAA66777}
2126 17 | {7,10,81,85} | {AAAAAA43678,AAAAAAA12144,AAAAAAAAAAA50956,AAAAAAAAAAAAAAAAAAA15356}
2127 18 | {1} | {AAAAAAAAAAA33576,AAAAA95309,64261,AAA59323,AAAAAAAAAAAAAA95246,55847,AAAAAAAAAAAA67946,AAAAAAAAAAAAAAAAAA64374}
2128 19 | {52,82,17,74,23,46,69,51,75} | {AAAAAAAAAAAAA73084,AAAAA75968,AAAAAAAAAAAAAAAA14047,AAAAAAA80240,AAAAAAAAAAAAAAAAAAA1205,A68938}
2129 20 | {72,89,70,51,54,37,8,49,79} | {AAAAAA58494}
2130 21 | {2,8,65,10,5,79,43} | {AAAAAAAAAAAAAAAAA88852,AAAAAAAAAAAAAAAAAAA91804,AAAAA64669,AAAAAAAAAAAAAAAA1443,AAAAAAAAAAAAAAAA23657,AAAAA12179,AAAAAAAAAAAAAAAAA88852,AAAAAAAAAAAAAAAA31334,AAAAAAAAAAAAAAAA41303,AAAAAAAAAAAAAAAAAAA85420}
2131 22 | {11,6,56,62,53,30} | {AAAAAAAA72908}
2132 23 | {40,90,5,38,72,40,30,10,43,55} | {A6053,AAAAAAAAAAA6119,AA44673,AAAAAAAAAAAAAAAAA764,AA17009,AAAAA17383,AAAAA70514,AAAAA33250,AAAAA95309,AAAAAAAAAAAA37562}
2133 24 | {94,61,99,35,48} | {AAAAAAAAAAA50956,AAAAAAAAAAA15165,AAAA85070,AAAAAAAAAAAAAAA36627,AAAAA961,AAAAAAAAAA55219}
2134 25 | {31,1,10,11,27,79,38} | {AAAAAAAAAAAAAAAAAA59334,45449}
2135 26 | {71,10,9,69,75} | {47735,AAAAAAA21462,AAAAAAAAAAAAAAAAA6897,AAAAAAAAAAAAAAAAAAA91804,AAAAAAAAA72121,AAAAAAAAAAAAAAAAAAA1205,AAAAA41597,AAAA8857,AAAAAAAAAAAAAAAAAAA15356,AA17009}
2136 27 | {94} | {AA6416,A6053,AAAAAAA21462,AAAAAAA57334,AAAAAAAAAAAAAAAAAA12591,AA88409,AAAAAAAAAAAAA70254}
2137 28 | {14,33,6,34,14} | {AAAAAAAAAAAAAAA13198,AAAAAAAA69452,AAAAAAAAAAA82945,AAAAAAA12144,AAAAAAAAA72121,AAAAAAAAAA18601}
2138 29 | {39,21} | {AAAAAAAAAAAAAAAAA6897,AAAAAAAAAAAAAAAAAAA38885,AAAA85070,AAAAAAAAAAAAAAAAAAA70104,AAAAA66674,AAAAAAAAAAAAA62007,AAAAAAAA69452,AAAAAAA1242,AAAAAAAAAAAAAAAA1729,AAAA35194}
2139 30 | {26,81,47,91,34} | {AAAAAAAAAAAAAAAAAAA70104,AAAAAAA80240}
2140 31 | {80,24,18,21,54} | {AAAAAAAAAAAAAAA13198,AAAAAAAAAAAAAAAAAAA70415,A27153,AAAAAAAAA53663,AAAAAAAAAAAAAAAAA50407,A68938}
2141 32 | {58,79,82,80,67,75,98,10,41} | {AAAAAAAAAAAAAAAAAA61286,AAA54451,AAAAAAAAAAAAAAAAAAA87527,A96617,51533}
2142 33 | {74,73} | {A85417,AAAAAAA56483,AAAAA17383,AAAAAAAAAAAAA62159,AAAAAAAAAAAA52814,AAAAAAAAAAAAA85723,AAAAAAAAAAAAAAAAAA55796}
2143 34 | {70,45} | {AAAAAAAAAAAAAAAAAA71621,AAAAAAAAAAAAAA28620,AAAAAAAAAA55219,AAAAAAAA23648,AAAAAAAAAA22292,AAAAAAA1242}
2144 35 | {23,40} | {AAAAAAAAAAAA52814,AAAA48949,AAAAAAAAA34727,AAAA8857,AAAAAAAAAAAAAAAAAAA62179,AAAAAAAAAAAAAAA68526,AAAAAAA99836,AAAAAAAA50094,AAAA91194,AAAAAAAAAAAAA73084}
2145 36 | {79,82,14,52,30,5,79} | {AAAAAAAAA53663,AAAAAAAAAAAAAAAA55798,AAAAAAAAAAAAAAAAAAA89194,AA88409,AAAAAAAAAAAAAAA81326,AAAAAAAAAAAAAAAAA63050,AAAAAAAAAAAAAAAA33598}
2146 37 | {53,11,81,39,3,78,58,64,74} | {AAAAAAAAAAAAAAAAAAA17075,AAAAAAA66161,AAAAAAAA23648,AAAAAAAAAAAAAA10611}
2147 38 | {59,5,4,95,28} | {AAAAAAAAAAA82945,A96617,47735,AAAAA12179,AAAAA64669,AAAAAA99807,AA74433,AAAAAAAAAAAAAAAAA59387}
2148 39 | {82,43,99,16,74} | {AAAAAAAAAAAAAAA67062,AAAAAAA57334,AAAAAAAAAAAAAA65909,A27153,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAAAAAA43052,AAAAAAAAAA64777,AAAAAAAAAAAA81511,AAAAAAAAAAAAAA65909,AAAAAAAAAAAAAA28620}
2149 40 | {34} | {AAAAAAAAAAAAAA10611,AAAAAAAAAAAAAAAAAAA1205,AAAAAAAAAAA50956,AAAAAAAAAAAAAAAA31334,AAAAA70466,AAAAAAAA81587,AAAAAAA74623}
2150 41 | {19,26,63,12,93,73,27,94} | {AAAAAAA79710,AAAAAAAAAA55219,AAAA41702,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAAAAAAA71621,AAAAAAAAAAAAAAAAA63050,AAAAAAA99836,AAAAAAAAAAAAAA8666}
2151 42 | {15,76,82,75,8,91} | {AAAAAAAAAAA176,AAAAAA38063,45449,AAAAAA54032,AAAAAAA81898,AA6416,AAAAAAAAAAAAAAAAAAA62179,45449,AAAAA60038,AAAAAAAA81587}
2152 43 | {39,87,91,97,79,28} | {AAAAAAAAAAA74076,A96617,AAAAAAAAAAAAAAAAAAA89194,AAAAAAAAAAAAAAAAAA55796,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAA67946}
2153 44 | {40,58,68,29,54} | {AAAAAAA81898,AAAAAA66777,AAAAAA98232}
2154 45 | {99,45} | {AAAAAAAA72908,AAAAAAAAAAAAAAAAAAA17075,AA88409,AAAAAAAAAAAAAAAAAA36842,AAAAAAA48038,AAAAAAAAAAAAAA10611}
2155 46 | {53,24} | {AAAAAAAAAAA53908,AAAAAA54032,AAAAA17383,AAAA48949,AAAAAAAAAA18601,AAAAA64669,45449,AAAAAAAAAAA98051,AAAAAAAAAAAAAAAAAA71621}
2156 47 | {98,23,64,12,75,61} | {AAA59323,AAAAA95309,AAAAAAAAAAAAAAAA31334,AAAAAAAAA27249,AAAAA17383,AAAAAAAAAAAA37562,AAAAAA1059,A84822,55847,AAAAA70466}
2157 48 | {76,14} | {AAAAAAAAAAAAA59671,AAAAAAAAAAAAAAAAAAA91804,AAAAAA66777,AAAAAAAAAAAAAAAAAAA89194,AAAAAAAAAAAAAAA36627,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAA73084,AAAAAAA79710,AAAAAAAAAAAAAAA40402,AAAAAAAAAAAAAAAAAAA65037}
2158 49 | {56,5,54,37,49} | {AA21643,AAAAAAAAAAA92631,AAAAAAAA81587}
2159 50 | {20,12,37,64,93} | {AAAAAAAAAA5483,AAAAAAAAAAAAAAAAAAA1205,AA6416,AAAAAAAAAAAAAAAAA63050,AAAAAAAAAAAAAAAAAA47955}
2160 51 | {47} | {AAAAAAAAAAAAAA96505,AAAAAAAAAAAAAAAAAA36842,AAAAA95309,AAAAAAAA81587,AA6416,AAAA91194,AAAAAA58494,AAAAAA1059,AAAAAAAA69452}
2161 52 | {89,0} | {AAAAAAAAAAAAAAAAAA47955,AAAAAAA48038,AAAAAAAAAAAAAAAAA43052,AAAAAAAAAAAAA73084,AAAAA70466,AAAAAAAAAAAAAAAAA764,AAAAAAAAAAA46154,AA66862}
2162 53 | {38,17} | {AAAAAAAAAAA21658}
2163 54 | {70,47} | {AAAAAAAAAAAAAAAAAA54141,AAAAA40681,AAAAAAA48038,AAAAAAAAAAAAAAAA29150,AAAAA41597,AAAAAAAAAAAAAAAAAA59334,AA15322}
2164 55 | {47,79,47,64,72,25,71,24,93} | {AAAAAAAAAAAAAAAAAA55796,AAAAA62737}
2165 56 | {33,7,60,54,93,90,77,85,39} | {AAAAAAAAAAAAAAAAAA32918,AA42406}
2166 57 | {23,45,10,42,36,21,9,96} | {AAAAAAAAAAAAAAAAAAA70415}
2167 58 | {92} | {AAAAAAAAAAAAAAAA98414,AAAAAAAA23648,AAAAAAAAAAAAAAAAAA55796,AA25381,AAAAAAAAAAA6119}
2168 59 | {9,69,46,77} | {39557,AAAAAAA89932,AAAAAAAAAAAAAAAAA43052,AAAAAAAAAAAAAAAAA26540,AAA20874,AA6416,AAAAAAAAAAAAAAAAAA47955}
2169 60 | {62,2,59,38,89} | {AAAAAAA89932,AAAAAAAAAAAAAAAAAAA15356,AA99927,AA17009,AAAAAAAAAAAAAAA35875}
2170 61 | {72,2,44,95,54,54,13} | {AAAAAAAAAAAAAAAAAAA91804}
2171 62 | {83,72,29,73} | {AAAAAAAAAAAAA15097,AAAA8857,AAAAAAAAAAAA35809,AAAAAAAAAAAA52814,AAAAAAAAAAAAAAAAAAA38885,AAAAAAAAAAAAAAAAAA24183,AAAAAA43678,A96617}
2172 63 | {11,4,61,87} | {AAAAAAAAA27249,AAAAAAAAAAAAAAAAAA32918,AAAAAAAAAAAAAAA13198,AAA20874,39557,51533,AAAAAAAAAAA53908,AAAAAAAAAAAAAA96505,AAAAAAAA78938}
2173 64 | {26,19,34,24,81,78} | {A96617,AAAAAAAAAAAAAAAAAAA70104,A68938,AAAAAAAAAAA53908,AAAAAAAAAAAAAAA453,AA17009,AAAAAAA80240}
2174 65 | {61,5,76,59,17} | {AAAAAA99807,AAAAA64741,AAAAAAAAAAA53908,AA21643,AAAAAAAAA10012}
2175 66 | {31,23,70,52,4,33,48,25} | {AAAAAAAAAAAAAAAAA69675,AAAAAAAA50094,AAAAAAAAAAA92631,AAAA35194,39557,AAAAAAA99836}
2176 67 | {31,94,7,10} | {AAAAAA38063,A96617,AAAA35194,AAAAAAAAAAAA67946}
2177 68 | {90,43,38} | {AA75092,AAAAAAAAAAAAAAAAA69675,AAAAAAAAAAA92631,AAAAAAAAA10012,AAAAAAAAAAAAA7929,AA21643}
2178 69 | {67,35,99,85,72,86,44} | {AAAAAAAAAAAAAAAAAAA1205,AAAAAAAA50094,AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAAAAAAA47955}
2179 70 | {56,70,83} | {AAAA41702,AAAAAAAAAAA82945,AA21643,AAAAAAAAAAA99000,A27153,AA25381,AAAAAAAAAAAAAA96505,AAAAAAA1242}
2180 71 | {74,26} | {AAAAAAAAAAA50956,AA74433,AAAAAAA21462,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAAAA36627,AAAAAAAAAAAAA70254,AAAAAAAAAA43419,39557}
2181 72 | {22,1,16,78,20,91,83} | {47735,AAAAAAA56483,AAAAAAAAAAAAA93788,AA42406,AAAAAAAAAAAAA73084,AAAAAAAA72908,AAAAAAAAAAAAAAAAAA61286,AAAAA66674,AAAAAAAAAAAAAAAAA50407}
2182 73 | {88,25,96,78,65,15,29,19} | {AAA54451,AAAAAAAAA27249,AAAAAAA9228,AAAAAAAAAAAAAAA67062,AAAAAAAAAAAAAAAAAAA70415,AAAAA17383,AAAAAAAAAAAAAAAA33598}
2183 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956}
2184 75 | {12,96,83,24,71,89,55} | {AAAA48949,AAAAAAAA29716,AAAAAAAAAAAAAAAAAAA1205,AAAAAAAAAAAA67946,AAAAAAAAAAAAAAAA29150,AAA28075,AAAAAAAAAAAAAAAAA43052}
2185 76 | {92,55,10,7} | {AAAAAAAAAAAAAAA67062}
2186 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066}
2187 78 | {55,89,44,84,34} | {AAAAAAAAAAA6119,AAAAAAAAAAAAAA8666,AA99927,AA42406,AAAAAAA81898,AAAAAAA9228,AAAAAAAAAAA92631,AA21643,AAAAAAAAAAAAAA28620}
2188 79 | {45} | {AAAAAAAAAA646,AAAAAAAAAAAAAAAAAAA70415,AAAAAA43678,AAAAAAAA72908}
2189 80 | {74,89,44,80,0} | {AAAA35194,AAAAAAAA79710,AAA20874,AAAAAAAAAAAAAAAAAAA70104,AAAAAAAAAAAAA73084,AAAAAAA57334,AAAAAAA9228,AAAAAAAAAAAAA62007}
2190 81 | {63,77,54,48,61,53,97} | {AAAAAAAAAAAAAAA81326,AAAAAAAAAA22292,AA25381,AAAAAAAAAAA74076,AAAAAAA81898,AAAAAAAAA72121}
2191 82 | {34,60,4,79,78,16,86,89,42,50} | {AAAAA40681,AAAAAAAAAAAAAAAAAA12591,AAAAAAA80240,AAAAAAAAAAAAAAAA55798,AAAAAAAAAAAAAAAAAAA70104}
2192 83 | {14,10} | {AAAAAAAAAA22292,AAAAAAAAAAAAA70254,AAAAAAAAAAA6119}
2193 84 | {11,83,35,13,96,94} | {AAAAA95309,AAAAAAAAAAAAAAAAAA32918,AAAAAAAAAAAAAAAAAA24183}
2194 85 | {39,60} | {AAAAAAAAAAAAAAAA55798,AAAAAAAAAA22292,AAAAAAA66161,AAAAAAA21462,AAAAAAAAAAAAAAAAAA12591,55847,AAAAAA98232,AAAAAAAAAAA46154}
2195 86 | {33,81,72,74,45,36,82} | {AAAAAAAA81587,AAAAAAAAAAAAAA96505,45449,AAAA80176}
2196 87 | {57,27,50,12,97,68} | {AAAAAAAAAAAAAAAAA26540,AAAAAAAAA10012,AAAAAAAAAAAA35809,AAAAAAAAAAAAAAAA29150,AAAAAAAAAAA82945,AAAAAA66777,31228,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAA96505}
2197 88 | {41,90,77,24,6,24} | {AAAA35194,AAAA35194,AAAAAAA80240,AAAAAAAAAAA46154,AAAAAA58494,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAAAAAAA59334,AAAAAAAAAAAAAAAAAAA91804,AA74433}
2198 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}
2199 90 | {88,75} | {AAAAA60038,AAAAAAAA23648,AAAAAAAAAAA99000,AAAA41702,AAAAAAAAAAAAA22860,AAAAAAAAAAAAAAA68526}
2200 91 | {78} | {AAAAAAAAAAAAA62007,AAA99043}
2201 92 | {85,63,49,45} | {AAAAAAA89932,AAAAAAAAAAAAA22860,AAAAAAAAAAAAAAAAAAA1205,AAAAAAAAAAAA21089}
2202 93 | {11} | {AAAAAAAAAAA176,AAAAAAAAAAAAAA8666,AAAAAAAAAAAAAAA453,AAAAAAAAAAAAA85723,A68938,AAAAAAAAAAAAA9821,AAAAAAA48038,AAAAAAAAAAAAAAAAA59387,AA99927,AAAAA17383}
2203 94 | {98,9,85,62,88,91,60,61,38,86} | {AAAAAAAA81587,AAAAA17383,AAAAAAAA81587}
2204 95 | {47,77} | {AAAAAAAAAAAAAAAAA764,AAAAAAAAAAA74076,AAAAAAAAAA18107,AAAAA40681,AAAAAAAAAAAAAAA35875,AAAAA60038,AAAAAAA56483}
2205 96 | {23,97,43} | {AAAAAAAAAA646,A87088}
2206 97 | {54,2,86,65} | {47735,AAAAAAA99836,AAAAAAAAAAAAAAAAA6897,AAAAAAAAAAAAAAAA29150,AAAAAAA80240,AAAAAAAAAAAAAAAA98414,AAAAAAA56483,AAAAAAAAAAAAAAAA29150,AAAAAAA39692,AA21643}
2207 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845}
2208 99 | {37,86} | {AAAAAAAAAAAAAAAAAA32918,AAAAA70514,AAAAAAAAA10012,AAAAAAAAAAAAAAAAA59387,AAAAAAAAAA64777,AAAAAAAAAAAAAAAAAAA15356}
2209 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
2211 102 | {NULL} | {NULL}
2214 SELECT * FROM array_index_op_test WHERE t && '{}' ORDER BY seqno;
2219 SELECT * FROM array_index_op_test WHERE t <@ '{}' ORDER BY seqno;
2225 -- And try it with a multicolumn GIN index
2226 DROP INDEX intarrayidx, textarrayidx;
2227 CREATE INDEX botharrayidx ON array_index_op_test USING gin (i, t);
2228 SELECT * FROM array_index_op_test WHERE i @> '{32}' ORDER BY seqno;
2230 -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------
2231 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657}
2232 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956}
2233 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066}
2234 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}
2235 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845}
2236 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
2239 SELECT * FROM array_index_op_test WHERE i && '{32}' ORDER BY seqno;
2241 -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------
2242 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657}
2243 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956}
2244 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066}
2245 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}
2246 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845}
2247 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
2250 SELECT * FROM array_index_op_test WHERE t @> '{AAAAAAA80240}' ORDER BY seqno;
2252 -------+--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------
2253 19 | {52,82,17,74,23,46,69,51,75} | {AAAAAAAAAAAAA73084,AAAAA75968,AAAAAAAAAAAAAAAA14047,AAAAAAA80240,AAAAAAAAAAAAAAAAAAA1205,A68938}
2254 30 | {26,81,47,91,34} | {AAAAAAAAAAAAAAAAAAA70104,AAAAAAA80240}
2255 64 | {26,19,34,24,81,78} | {A96617,AAAAAAAAAAAAAAAAAAA70104,A68938,AAAAAAAAAAA53908,AAAAAAAAAAAAAAA453,AA17009,AAAAAAA80240}
2256 82 | {34,60,4,79,78,16,86,89,42,50} | {AAAAA40681,AAAAAAAAAAAAAAAAAA12591,AAAAAAA80240,AAAAAAAAAAAAAAAA55798,AAAAAAAAAAAAAAAAAAA70104}
2257 88 | {41,90,77,24,6,24} | {AAAA35194,AAAA35194,AAAAAAA80240,AAAAAAAAAAA46154,AAAAAA58494,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAAAAAAA59334,AAAAAAAAAAAAAAAAAAA91804,AA74433}
2258 97 | {54,2,86,65} | {47735,AAAAAAA99836,AAAAAAAAAAAAAAAAA6897,AAAAAAAAAAAAAAAA29150,AAAAAAA80240,AAAAAAAAAAAAAAAA98414,AAAAAAA56483,AAAAAAAAAAAAAAAA29150,AAAAAAA39692,AA21643}
2259 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
2262 SELECT * FROM array_index_op_test WHERE t && '{AAAAAAA80240}' ORDER BY seqno;
2264 -------+--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------
2265 19 | {52,82,17,74,23,46,69,51,75} | {AAAAAAAAAAAAA73084,AAAAA75968,AAAAAAAAAAAAAAAA14047,AAAAAAA80240,AAAAAAAAAAAAAAAAAAA1205,A68938}
2266 30 | {26,81,47,91,34} | {AAAAAAAAAAAAAAAAAAA70104,AAAAAAA80240}
2267 64 | {26,19,34,24,81,78} | {A96617,AAAAAAAAAAAAAAAAAAA70104,A68938,AAAAAAAAAAA53908,AAAAAAAAAAAAAAA453,AA17009,AAAAAAA80240}
2268 82 | {34,60,4,79,78,16,86,89,42,50} | {AAAAA40681,AAAAAAAAAAAAAAAAAA12591,AAAAAAA80240,AAAAAAAAAAAAAAAA55798,AAAAAAAAAAAAAAAAAAA70104}
2269 88 | {41,90,77,24,6,24} | {AAAA35194,AAAA35194,AAAAAAA80240,AAAAAAAAAAA46154,AAAAAA58494,AAAAAAAAAAAAAAAAAAA17075,AAAAAAAAAAAAAAAAAA59334,AAAAAAAAAAAAAAAAAAA91804,AA74433}
2270 97 | {54,2,86,65} | {47735,AAAAAAA99836,AAAAAAAAAAAAAAAAA6897,AAAAAAAAAAAAAAAA29150,AAAAAAA80240,AAAAAAAAAAAAAAAA98414,AAAAAAA56483,AAAAAAAAAAAAAAAA29150,AAAAAAA39692,AA21643}
2271 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
2274 SELECT * FROM array_index_op_test WHERE i @> '{32}' AND t && '{AAAAAAA80240}' ORDER BY seqno;
2276 -------+-----------------------------+------------------------------------------------------------------------------
2277 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
2280 SELECT * FROM array_index_op_test WHERE i && '{32}' AND t @> '{AAAAAAA80240}' ORDER BY seqno;
2282 -------+-----------------------------+------------------------------------------------------------------------------
2283 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}
2286 SELECT * FROM array_index_op_test WHERE t = '{}' ORDER BY seqno;
2292 SELECT * FROM array_op_test WHERE i = '{NULL}' ORDER BY seqno;
2294 -------+--------+--------
2295 102 | {NULL} | {NULL}
2298 SELECT * FROM array_op_test WHERE i <@ '{NULL}' ORDER BY seqno;
2304 RESET enable_seqscan;
2305 RESET enable_indexscan;
2306 RESET enable_bitmapscan;
2308 -- Try a GIN index with a lot of items with same key. (GIN creates a posting
2309 -- tree when there are enough duplicates)
2311 CREATE TABLE array_gin_test (a int[]);
2312 INSERT INTO array_gin_test SELECT ARRAY[1, g%5, g] FROM generate_series(1, 10000) g;
2313 CREATE INDEX array_gin_test_idx ON array_gin_test USING gin (a);
2314 SELECT COUNT(*) FROM array_gin_test WHERE a @> '{2}';
2320 DROP TABLE array_gin_test;
2322 -- Test GIN index's reloptions
2324 CREATE INDEX gin_relopts_test ON array_index_op_test USING gin (i)
2325 WITH (FASTUPDATE=on, GIN_PENDING_LIST_LIMIT=128);
2326 \d+ gin_relopts_test
2327 Index "public.gin_relopts_test"
2328 Column | Type | Definition | Storage
2329 --------+---------+------------+---------
2330 i | integer | i | plain
2331 gin, for table "public.array_index_op_test"
2332 Options: fastupdate=on, gin_pending_list_limit=128
2337 CREATE INDEX hash_i4_index ON hash_i4_heap USING hash (random int4_ops);
2338 WARNING: hash indexes are not WAL-logged and their use is discouraged
2339 CREATE INDEX hash_name_index ON hash_name_heap USING hash (random name_ops);
2340 WARNING: hash indexes are not WAL-logged and their use is discouraged
2341 CREATE INDEX hash_txt_index ON hash_txt_heap USING hash (random text_ops);
2342 WARNING: hash indexes are not WAL-logged and their use is discouraged
2343 CREATE INDEX hash_f8_index ON hash_f8_heap USING hash (random float8_ops);
2344 WARNING: hash indexes are not WAL-logged and their use is discouraged
2345 CREATE UNLOGGED TABLE unlogged_hash_table (id int4);
2346 CREATE INDEX unlogged_hash_index ON unlogged_hash_table USING hash (id int4_ops);
2347 DROP TABLE unlogged_hash_table;
2348 -- CREATE INDEX hash_ovfl_index ON hash_ovfl_heap USING hash (x int4_ops);
2350 -- Test functional index
2352 CREATE TABLE func_index_heap (f1 text, f2 text);
2353 CREATE UNIQUE INDEX func_index_index on func_index_heap (textcat(f1,f2));
2354 INSERT INTO func_index_heap VALUES('ABC','DEF');
2355 INSERT INTO func_index_heap VALUES('AB','CDEFG');
2356 INSERT INTO func_index_heap VALUES('QWE','RTY');
2357 -- this should fail because of unique index:
2358 INSERT INTO func_index_heap VALUES('ABCD', 'EF');
2359 ERROR: duplicate key value violates unique constraint "func_index_index"
2360 DETAIL: Key (textcat(f1, f2))=(ABCDEF) already exists.
2361 -- but this shouldn't:
2362 INSERT INTO func_index_heap VALUES('QWERTY');
2364 -- Same test, expressional index
2366 DROP TABLE func_index_heap;
2367 CREATE TABLE func_index_heap (f1 text, f2 text);
2368 CREATE UNIQUE INDEX func_index_index on func_index_heap ((f1 || f2) text_ops);
2369 INSERT INTO func_index_heap VALUES('ABC','DEF');
2370 INSERT INTO func_index_heap VALUES('AB','CDEFG');
2371 INSERT INTO func_index_heap VALUES('QWE','RTY');
2372 -- this should fail because of unique index:
2373 INSERT INTO func_index_heap VALUES('ABCD', 'EF');
2374 ERROR: duplicate key value violates unique constraint "func_index_index"
2375 DETAIL: Key ((f1 || f2))=(ABCDEF) already exists.
2376 -- but this shouldn't:
2377 INSERT INTO func_index_heap VALUES('QWERTY');
2379 -- Also try building functional, expressional, and partial indexes on
2380 -- tables that already contain data.
2382 create unique index hash_f8_index_1 on hash_f8_heap(abs(random));
2383 create unique index hash_f8_index_2 on hash_f8_heap((seqno + 1), random);
2384 create unique index hash_f8_index_3 on hash_f8_heap(random) where seqno > 1000;
2386 -- Try some concurrent index builds
2388 -- Unfortunately this only tests about half the code paths because there are
2389 -- no concurrent updates happening to the table at the same time.
2390 CREATE TABLE concur_heap (f1 text, f2 text);
2392 CREATE INDEX CONCURRENTLY concur_index1 ON concur_heap(f2,f1);
2393 CREATE INDEX CONCURRENTLY IF NOT EXISTS concur_index1 ON concur_heap(f2,f1);
2394 NOTICE: relation "concur_index1" already exists, skipping
2395 INSERT INTO concur_heap VALUES ('a','b');
2396 INSERT INTO concur_heap VALUES ('b','b');
2398 CREATE UNIQUE INDEX CONCURRENTLY concur_index2 ON concur_heap(f1);
2399 CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS concur_index2 ON concur_heap(f1);
2400 NOTICE: relation "concur_index2" already exists, skipping
2401 -- check if constraint is set up properly to be enforced
2402 INSERT INTO concur_heap VALUES ('b','x');
2403 ERROR: duplicate key value violates unique constraint "concur_index2"
2404 DETAIL: Key (f1)=(b) already exists.
2405 -- check if constraint is enforced properly at build time
2406 CREATE UNIQUE INDEX CONCURRENTLY concur_index3 ON concur_heap(f2);
2407 ERROR: could not create unique index "concur_index3"
2408 DETAIL: Key (f2)=(b) is duplicated.
2409 -- test that expression indexes and partial indexes work concurrently
2410 CREATE INDEX CONCURRENTLY concur_index4 on concur_heap(f2) WHERE f1='a';
2411 CREATE INDEX CONCURRENTLY concur_index5 on concur_heap(f2) WHERE f1='x';
2412 -- here we also check that you can default the index name
2413 CREATE INDEX CONCURRENTLY on concur_heap((f2||f1));
2414 -- You can't do a concurrent index build in a transaction
2416 CREATE INDEX CONCURRENTLY concur_index7 ON concur_heap(f1);
2417 ERROR: CREATE INDEX CONCURRENTLY cannot run inside a transaction block
2419 -- But you can do a regular index build in a transaction
2421 CREATE INDEX std_index on concur_heap(f2);
2423 -- Failed builds are left invalid by VACUUM FULL, fixed by REINDEX
2424 VACUUM FULL concur_heap;
2425 REINDEX TABLE concur_heap;
2426 ERROR: could not create unique index "concur_index3"
2427 DETAIL: Key (f2)=(b) is duplicated.
2428 DELETE FROM concur_heap WHERE f1 = 'b';
2429 VACUUM FULL concur_heap;
2431 Table "public.concur_heap"
2432 Column | Type | Modifiers
2433 --------+------+-----------
2437 "concur_index2" UNIQUE, btree (f1)
2438 "concur_index3" UNIQUE, btree (f2) INVALID
2439 "concur_heap_expr_idx" btree ((f2 || f1))
2440 "concur_index1" btree (f2, f1)
2441 "concur_index4" btree (f2) WHERE f1 = 'a'::text
2442 "concur_index5" btree (f2) WHERE f1 = 'x'::text
2443 "std_index" btree (f2)
2445 REINDEX TABLE concur_heap;
2447 Table "public.concur_heap"
2448 Column | Type | Modifiers
2449 --------+------+-----------
2453 "concur_index2" UNIQUE, btree (f1)
2454 "concur_index3" UNIQUE, btree (f2)
2455 "concur_heap_expr_idx" btree ((f2 || f1))
2456 "concur_index1" btree (f2, f1)
2457 "concur_index4" btree (f2) WHERE f1 = 'a'::text
2458 "concur_index5" btree (f2) WHERE f1 = 'x'::text
2459 "std_index" btree (f2)
2462 -- Try some concurrent index drops
2464 DROP INDEX CONCURRENTLY "concur_index2"; -- works
2465 DROP INDEX CONCURRENTLY IF EXISTS "concur_index2"; -- notice
2466 NOTICE: index "concur_index2" does not exist, skipping
2468 DROP INDEX CONCURRENTLY "concur_index2", "concur_index3";
2469 ERROR: DROP INDEX CONCURRENTLY does not support dropping multiple objects
2471 DROP INDEX CONCURRENTLY "concur_index5";
2472 ERROR: DROP INDEX CONCURRENTLY cannot run inside a transaction block
2475 DROP INDEX CONCURRENTLY IF EXISTS "concur_index3";
2476 DROP INDEX CONCURRENTLY "concur_index4";
2477 DROP INDEX CONCURRENTLY "concur_index5";
2478 DROP INDEX CONCURRENTLY "concur_index1";
2479 DROP INDEX CONCURRENTLY "concur_heap_expr_idx";
2481 Table "public.concur_heap"
2482 Column | Type | Modifiers
2483 --------+------+-----------
2487 "std_index" btree (f2)
2489 DROP TABLE concur_heap;
2491 -- Test ADD CONSTRAINT USING INDEX
2493 CREATE TABLE cwi_test( a int , b varchar(10), c char);
2494 -- add some data so that all tests have something to work with.
2495 INSERT INTO cwi_test VALUES(1, 2), (3, 4), (5, 6);
2496 CREATE UNIQUE INDEX cwi_uniq_idx ON cwi_test(a , b);
2497 ALTER TABLE cwi_test ADD primary key USING INDEX cwi_uniq_idx;
2499 Table "public.cwi_test"
2500 Column | Type | Modifiers
2501 --------+-----------------------+-----------
2502 a | integer | not null
2503 b | character varying(10) | not null
2506 "cwi_uniq_idx" PRIMARY KEY, btree (a, b)
2509 Index "public.cwi_uniq_idx"
2510 Column | Type | Definition
2511 --------+-----------------------+------------
2513 b | character varying(10) | b
2514 primary key, btree, for table "public.cwi_test"
2516 CREATE UNIQUE INDEX cwi_uniq2_idx ON cwi_test(b , a);
2517 ALTER TABLE cwi_test DROP CONSTRAINT cwi_uniq_idx,
2518 ADD CONSTRAINT cwi_replaced_pkey PRIMARY KEY
2519 USING INDEX cwi_uniq2_idx;
2520 NOTICE: ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index "cwi_uniq2_idx" to "cwi_replaced_pkey"
2522 Table "public.cwi_test"
2523 Column | Type | Modifiers
2524 --------+-----------------------+-----------
2525 a | integer | not null
2526 b | character varying(10) | not null
2529 "cwi_replaced_pkey" PRIMARY KEY, btree (b, a)
2531 \d cwi_replaced_pkey
2532 Index "public.cwi_replaced_pkey"
2533 Column | Type | Definition
2534 --------+-----------------------+------------
2535 b | character varying(10) | b
2537 primary key, btree, for table "public.cwi_test"
2539 DROP INDEX cwi_replaced_pkey; -- Should fail; a constraint depends on it
2540 ERROR: cannot drop index cwi_replaced_pkey because constraint cwi_replaced_pkey on table cwi_test requires it
2541 HINT: You can drop constraint cwi_replaced_pkey on table cwi_test instead.
2542 DROP TABLE cwi_test;
2544 -- Tests for IS NULL/IS NOT NULL with b-tree indexes
2546 SELECT unique1, unique2 INTO onek_with_null FROM onek;
2547 INSERT INTO onek_with_null (unique1,unique2) VALUES (NULL, -1), (NULL, NULL);
2548 CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2,unique1);
2549 SET enable_seqscan = OFF;
2550 SET enable_indexscan = ON;
2551 SET enable_bitmapscan = ON;
2552 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL;
2558 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL;
2564 SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL;
2570 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL;
2576 SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500;
2582 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500;
2588 DROP INDEX onek_nulltest;
2589 CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2 desc,unique1);
2590 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL;
2596 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL;
2602 SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL;
2608 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL;
2614 SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500;
2620 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500;
2626 DROP INDEX onek_nulltest;
2627 CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2 desc nulls last,unique1);
2628 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL;
2634 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL;
2640 SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL;
2646 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL;
2652 SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500;
2658 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500;
2664 DROP INDEX onek_nulltest;
2665 CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2 nulls first,unique1);
2666 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL;
2672 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL;
2678 SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL;
2684 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL;
2690 SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500;
2696 SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500;
2702 DROP INDEX onek_nulltest;
2703 -- Check initial-positioning logic too
2704 CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2);
2705 SET enable_seqscan = OFF;
2706 SET enable_indexscan = ON;
2707 SET enable_bitmapscan = OFF;
2708 SELECT unique1, unique2 FROM onek_with_null
2709 ORDER BY unique2 LIMIT 2;
2716 SELECT unique1, unique2 FROM onek_with_null WHERE unique2 >= -1
2717 ORDER BY unique2 LIMIT 2;
2724 SELECT unique1, unique2 FROM onek_with_null WHERE unique2 >= 0
2725 ORDER BY unique2 LIMIT 2;
2732 SELECT unique1, unique2 FROM onek_with_null
2733 ORDER BY unique2 DESC LIMIT 2;
2740 SELECT unique1, unique2 FROM onek_with_null WHERE unique2 >= -1
2741 ORDER BY unique2 DESC LIMIT 2;
2748 SELECT unique1, unique2 FROM onek_with_null WHERE unique2 < 999
2749 ORDER BY unique2 DESC LIMIT 2;
2756 RESET enable_seqscan;
2757 RESET enable_indexscan;
2758 RESET enable_bitmapscan;
2759 DROP TABLE onek_with_null;
2761 -- Check bitmap index path planning
2765 WHERE thousand = 42 AND (tenthous = 1 OR tenthous = 3 OR tenthous = 42);
2767 -----------------------------------------------------------------------------------------------------------------------------------------
2768 Bitmap Heap Scan on tenk1
2769 Recheck Cond: (((thousand = 42) AND (tenthous = 1)) OR ((thousand = 42) AND (tenthous = 3)) OR ((thousand = 42) AND (tenthous = 42)))
2771 -> Bitmap Index Scan on tenk1_thous_tenthous
2772 Index Cond: ((thousand = 42) AND (tenthous = 1))
2773 -> Bitmap Index Scan on tenk1_thous_tenthous
2774 Index Cond: ((thousand = 42) AND (tenthous = 3))
2775 -> Bitmap Index Scan on tenk1_thous_tenthous
2776 Index Cond: ((thousand = 42) AND (tenthous = 42))
2780 WHERE thousand = 42 AND (tenthous = 1 OR tenthous = 3 OR tenthous = 42);
2781 unique1 | unique2 | two | four | ten | twenty | hundred | thousand | twothousand | fivethous | tenthous | odd | even | stringu1 | stringu2 | string4
2782 ---------+---------+-----+------+-----+--------+---------+----------+-------------+-----------+----------+-----+------+----------+----------+---------
2783 42 | 5530 | 0 | 2 | 2 | 2 | 42 | 42 | 42 | 42 | 42 | 84 | 85 | QBAAAA | SEIAAA | OOOOxx
2787 SELECT count(*) FROM tenk1
2788 WHERE hundred = 42 AND (thousand = 42 OR thousand = 99);
2790 ---------------------------------------------------------------------------------
2792 -> Bitmap Heap Scan on tenk1
2793 Recheck Cond: ((hundred = 42) AND ((thousand = 42) OR (thousand = 99)))
2795 -> Bitmap Index Scan on tenk1_hundred
2796 Index Cond: (hundred = 42)
2798 -> Bitmap Index Scan on tenk1_thous_tenthous
2799 Index Cond: (thousand = 42)
2800 -> Bitmap Index Scan on tenk1_thous_tenthous
2801 Index Cond: (thousand = 99)
2804 SELECT count(*) FROM tenk1
2805 WHERE hundred = 42 AND (thousand = 42 OR thousand = 99);
2812 -- Check behavior with duplicate index column contents
2814 CREATE TABLE dupindexcols AS
2815 SELECT unique1 as id, stringu2::text as f1 FROM tenk1;
2816 CREATE INDEX dupindexcols_i ON dupindexcols (f1, id, f1 text_pattern_ops);
2817 ANALYZE dupindexcols;
2819 SELECT count(*) FROM dupindexcols
2820 WHERE f1 BETWEEN 'WA' AND 'ZZZ' and id < 1000 and f1 ~<~ 'YX';
2822 ----------------------------------------------------------------------------------------------------------------
2824 -> Bitmap Heap Scan on dupindexcols
2825 Recheck Cond: ((f1 >= 'WA'::text) AND (f1 <= 'ZZZ'::text) AND (id < 1000) AND (f1 ~<~ 'YX'::text))
2826 -> Bitmap Index Scan on dupindexcols_i
2827 Index Cond: ((f1 >= 'WA'::text) AND (f1 <= 'ZZZ'::text) AND (id < 1000) AND (f1 ~<~ 'YX'::text))
2830 SELECT count(*) FROM dupindexcols
2831 WHERE f1 BETWEEN 'WA' AND 'ZZZ' and id < 1000 and f1 ~<~ 'YX';
2838 -- Check ordering of =ANY indexqual results (bug in 9.2.0)
2840 vacuum tenk1; -- ensure we get consistent plans here
2842 SELECT unique1 FROM tenk1
2843 WHERE unique1 IN (1,42,7)
2846 -------------------------------------------------------
2847 Index Only Scan using tenk1_unique1 on tenk1
2848 Index Cond: (unique1 = ANY ('{1,42,7}'::integer[]))
2851 SELECT unique1 FROM tenk1
2852 WHERE unique1 IN (1,42,7)
2862 SELECT thousand, tenthous FROM tenk1
2863 WHERE thousand < 2 AND tenthous IN (1001,3000)
2866 -------------------------------------------------------
2867 Index Only Scan using tenk1_thous_tenthous on tenk1
2868 Index Cond: (thousand < 2)
2869 Filter: (tenthous = ANY ('{1001,3000}'::integer[]))
2872 SELECT thousand, tenthous FROM tenk1
2873 WHERE thousand < 2 AND tenthous IN (1001,3000)
2876 ----------+----------
2881 SET enable_indexonlyscan = OFF;
2883 SELECT thousand, tenthous FROM tenk1
2884 WHERE thousand < 2 AND tenthous IN (1001,3000)
2887 --------------------------------------------------------------------------------------
2890 -> Index Scan using tenk1_thous_tenthous on tenk1
2891 Index Cond: ((thousand < 2) AND (tenthous = ANY ('{1001,3000}'::integer[])))
2894 SELECT thousand, tenthous FROM tenk1
2895 WHERE thousand < 2 AND tenthous IN (1001,3000)
2898 ----------+----------
2903 RESET enable_indexscan;
2905 -- Check elimination of constant-NULL subexpressions
2908 select * from tenk1 where (thousand, tenthous) in ((1,1001), (null,null));
2910 ------------------------------------------------------
2911 Index Scan using tenk1_thous_tenthous on tenk1
2912 Index Cond: ((thousand = 1) AND (tenthous = 1001))
2916 -- REINDEX (VERBOSE)
2918 CREATE TABLE reindex_verbose(id integer primary key);
2919 \set VERBOSITY terse
2920 REINDEX (VERBOSE) TABLE reindex_verbose;
2921 INFO: index "reindex_verbose_pkey" was reindexed
2922 DROP TABLE reindex_verbose;
2926 REINDEX SCHEMA schema_to_reindex; -- failure, schema does not exist
2927 ERROR: schema "schema_to_reindex" does not exist
2928 CREATE SCHEMA schema_to_reindex;
2929 SET search_path = 'schema_to_reindex';
2930 CREATE TABLE table1(col1 SERIAL PRIMARY KEY);
2931 INSERT INTO table1 SELECT generate_series(1,400);
2932 CREATE TABLE table2(col1 SERIAL PRIMARY KEY, col2 TEXT NOT NULL);
2933 INSERT INTO table2 SELECT generate_series(1,400), 'abc';
2934 CREATE INDEX ON table2(col2);
2935 CREATE MATERIALIZED VIEW matview AS SELECT col1 FROM table2;
2936 CREATE INDEX ON matview(col1);
2937 CREATE VIEW view AS SELECT col2 FROM table2;
2938 CREATE TABLE reindex_before AS
2939 SELECT oid, relname, relfilenode, relkind, reltoastrelid
2941 where relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'schema_to_reindex');
2942 INSERT INTO reindex_before
2943 SELECT oid, 'pg_toast_TABLE', relfilenode, relkind, reltoastrelid
2944 FROM pg_class WHERE oid IN
2945 (SELECT reltoastrelid FROM reindex_before WHERE reltoastrelid > 0);
2946 INSERT INTO reindex_before
2947 SELECT oid, 'pg_toast_TABLE_index', relfilenode, relkind, reltoastrelid
2948 FROM pg_class where oid in
2949 (select indexrelid from pg_index where indrelid in
2950 (select reltoastrelid from reindex_before where reltoastrelid > 0));
2951 REINDEX SCHEMA schema_to_reindex;
2952 CREATE TABLE reindex_after AS SELECT oid, relname, relfilenode, relkind
2954 where relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'schema_to_reindex');
2957 CASE WHEN a.relfilenode = b.relfilenode THEN 'relfilenode is unchanged'
2958 ELSE 'relfilenode has changed' END
2959 FROM reindex_before b JOIN pg_class a ON b.oid = a.oid
2961 relname | relkind | case
2962 ----------------------+---------+--------------------------
2963 matview | m | relfilenode is unchanged
2964 matview_col1_idx | i | relfilenode has changed
2965 pg_toast_TABLE | t | relfilenode is unchanged
2966 pg_toast_TABLE_index | i | relfilenode has changed
2967 table1 | r | relfilenode is unchanged
2968 table1_col1_seq | S | relfilenode is unchanged
2969 table1_pkey | i | relfilenode has changed
2970 table2 | r | relfilenode is unchanged
2971 table2_col1_seq | S | relfilenode is unchanged
2972 table2_col2_idx | i | relfilenode has changed
2973 table2_pkey | i | relfilenode has changed
2974 view | v | relfilenode is unchanged
2977 REINDEX SCHEMA schema_to_reindex;
2979 REINDEX SCHEMA schema_to_reindex; -- failure, cannot run in a transaction
2980 ERROR: REINDEX SCHEMA cannot run inside a transaction block
2982 -- Failure for unauthorized user
2983 CREATE ROLE regression_reindexuser NOLOGIN;
2984 SET SESSION ROLE regression_reindexuser;
2985 REINDEX SCHEMA schema_to_reindex;
2986 ERROR: must be owner of schema schema_to_reindex
2989 DROP ROLE regression_reindexuser;
2990 SET client_min_messages TO 'warning';
2991 DROP SCHEMA schema_to_reindex CASCADE;
2992 RESET client_min_messages;