Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

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

Provide feedback

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

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit001d30e

Browse files
committed
Add support to GIN for =(anyarray,anyarray) operation
1 parent6d57ed7 commit001d30e

File tree

6 files changed

+52
-5
lines changed

6 files changed

+52
-5
lines changed

‎src/backend/access/gin/ginarrayproc.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* Portions Copyright (c) 1994, Regents of the University of California
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/access/gin/ginarrayproc.c,v 1.2 2006/07/1117:04:12 momjian Exp $
11+
* $PostgreSQL: pgsql/src/backend/access/gin/ginarrayproc.c,v 1.3 2006/07/1119:49:13 teodor Exp $
1212
*-------------------------------------------------------------------------
1313
*/
1414

@@ -28,6 +28,7 @@
2828
#defineGinOverlapStrategy1
2929
#defineGinContainsStrategy2
3030
#defineGinContainedStrategy3
31+
#defineGinEqualStrategy4
3132

3233
#defineARRAYCHECK(x) do { \
3334
if ( ARR_HASNULL(x) )\
@@ -86,6 +87,7 @@ ginarrayconsistent(PG_FUNCTION_ARGS) {
8687
res= TRUE;
8788
break;
8889
caseGinContainsStrategy:
90+
caseGinEqualStrategy:
8991
res= TRUE;
9092
for(i=0;i<nentries;i++)
9193
if ( !check[i] ) {

‎src/include/catalog/catversion.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
3838
* Portions Copyright (c) 1994, Regents of the University of California
3939
*
40-
* $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.337 2006/07/10 16:20:51 alvherre Exp $
40+
* $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.338 2006/07/11 19:49:13 teodor Exp $
4141
*
4242
*-------------------------------------------------------------------------
4343
*/
@@ -53,6 +53,6 @@
5353
*/
5454

5555
/*yyyymmddN */
56-
#defineCATALOG_VERSION_NO200607101
56+
#defineCATALOG_VERSION_NO200607111
5757

5858
#endif

‎src/include/catalog/pg_amop.h

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
2424
* Portions Copyright (c) 1994, Regents of the University of California
2525
*
26-
* $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.71 2006/05/02 15:23:16 teodor Exp $
26+
* $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.72 2006/07/11 19:49:13 teodor Exp $
2727
*
2828
* NOTES
2929
* the genbki.sh script reads this file and generates .bki
@@ -642,208 +642,238 @@ DATA(insert (25950 12 t2590 ));
642642
DATA(insert (274501f2750 ));
643643
DATA(insert (274502f2751 ));
644644
DATA(insert (274503t2752 ));
645+
DATA(insert (274504t1070 ));
645646

646647
/*
647648
* gin _text_ops
648649
*/
649650
DATA(insert (274601f2750 ));
650651
DATA(insert (274602f2751 ));
651652
DATA(insert (274603t2752 ));
653+
DATA(insert (274604t1070 ));
652654

653655
/*
654656
* gin _abstime_ops
655657
*/
656658
DATA(insert (275301f2750 ));
657659
DATA(insert (275302f2751 ));
658660
DATA(insert (275303t2752 ));
661+
DATA(insert (275304t1070 ));
659662

660663
/*
661664
* gin _bit_ops
662665
*/
663666
DATA(insert (275401f2750 ));
664667
DATA(insert (275402f2751 ));
665668
DATA(insert (275403t2752 ));
669+
DATA(insert (275404t1070 ));
666670

667671
/*
668672
* gin _bool_ops
669673
*/
670674
DATA(insert (275501f2750 ));
671675
DATA(insert (275502f2751 ));
672676
DATA(insert (275503t2752 ));
677+
DATA(insert (275504t1070 ));
673678

674679
/*
675680
* gin _bpchar_ops
676681
*/
677682
DATA(insert (275601f2750 ));
678683
DATA(insert (275602f2751 ));
679684
DATA(insert (275603t2752 ));
685+
DATA(insert (275604t1070 ));
680686

681687
/*
682688
* gin _bytea_ops
683689
*/
684690
DATA(insert (275701f2750 ));
685691
DATA(insert (275702f2751 ));
686692
DATA(insert (275703t2752 ));
693+
DATA(insert (275704t1070 ));
687694

688695
/*
689696
* gin _char_ops
690697
*/
691698
DATA(insert (275801f2750 ));
692699
DATA(insert (275802f2751 ));
693700
DATA(insert (275803t2752 ));
701+
DATA(insert (275804t1070 ));
694702

695703
/*
696704
* gin _cidr_ops
697705
*/
698706
DATA(insert (275901f2750 ));
699707
DATA(insert (275902f2751 ));
700708
DATA(insert (275903t2752 ));
709+
DATA(insert (275904t1070 ));
701710

702711
/*
703712
* gin _date_ops
704713
*/
705714
DATA(insert (276001f2750 ));
706715
DATA(insert (276002f2751 ));
707716
DATA(insert (276003t2752 ));
717+
DATA(insert (276004t1070 ));
708718

709719
/*
710720
* gin _float4_ops
711721
*/
712722
DATA(insert (276101f2750 ));
713723
DATA(insert (276102f2751 ));
714724
DATA(insert (276103t2752 ));
725+
DATA(insert (276104t1070 ));
715726

716727
/*
717728
* gin _float8_ops
718729
*/
719730
DATA(insert (276201f2750 ));
720731
DATA(insert (276202f2751 ));
721732
DATA(insert (276203t2752 ));
733+
DATA(insert (276204t1070 ));
722734

723735
/*
724736
* gin _inet_ops
725737
*/
726738
DATA(insert (276301f2750 ));
727739
DATA(insert (276302f2751 ));
728740
DATA(insert (276303t2752 ));
741+
DATA(insert (276304t1070 ));
729742

730743
/*
731744
* gin _int2_ops
732745
*/
733746
DATA(insert (276401f2750 ));
734747
DATA(insert (276402f2751 ));
735748
DATA(insert (276403t2752 ));
749+
DATA(insert (276404t1070 ));
736750

737751
/*
738752
* gin _int8_ops
739753
*/
740754
DATA(insert (276501f2750 ));
741755
DATA(insert (276502f2751 ));
742756
DATA(insert (276503t2752 ));
757+
DATA(insert (276504t1070 ));
743758

744759
/*
745760
* gin _interval_ops
746761
*/
747762
DATA(insert (276601f2750 ));
748763
DATA(insert (276602f2751 ));
749764
DATA(insert (276603t2752 ));
765+
DATA(insert (276604t1070 ));
750766

751767
/*
752768
* gin _macaddr_ops
753769
*/
754770
DATA(insert (276701f2750 ));
755771
DATA(insert (276702f2751 ));
756772
DATA(insert (276703t2752 ));
773+
DATA(insert (276704t1070 ));
757774

758775
/*
759776
* gin _name_ops
760777
*/
761778
DATA(insert (276801f2750 ));
762779
DATA(insert (276802f2751 ));
763780
DATA(insert (276803t2752 ));
781+
DATA(insert (276804t1070 ));
764782

765783
/*
766784
* gin _numeric_ops
767785
*/
768786
DATA(insert (276901f2750 ));
769787
DATA(insert (276902f2751 ));
770788
DATA(insert (276903t2752 ));
789+
DATA(insert (276904t1070 ));
771790

772791
/*
773792
* gin _oid_ops
774793
*/
775794
DATA(insert (277001f2750 ));
776795
DATA(insert (277002f2751 ));
777796
DATA(insert (277003t2752 ));
797+
DATA(insert (277004t1070 ));
778798

779799
/*
780800
* gin _oidvector_ops
781801
*/
782802
DATA(insert (277101f2750 ));
783803
DATA(insert (277102f2751 ));
784804
DATA(insert (277103t2752 ));
805+
DATA(insert (277104t1070 ));
785806

786807
/*
787808
* gin _time_ops
788809
*/
789810
DATA(insert (277201f2750 ));
790811
DATA(insert (277202f2751 ));
791812
DATA(insert (277203t2752 ));
813+
DATA(insert (277204t1070 ));
792814

793815
/*
794816
* gin _timestamptz_ops
795817
*/
796818
DATA(insert (277301f2750 ));
797819
DATA(insert (277302f2751 ));
798820
DATA(insert (277303t2752 ));
821+
DATA(insert (277304t1070 ));
799822

800823
/*
801824
* gin _timetz_ops
802825
*/
803826
DATA(insert (277401f2750 ));
804827
DATA(insert (277402f2751 ));
805828
DATA(insert (277403t2752 ));
829+
DATA(insert (277404t1070 ));
806830

807831
/*
808832
* gin _varbit_ops
809833
*/
810834
DATA(insert (277501f2750 ));
811835
DATA(insert (277502f2751 ));
812836
DATA(insert (277503t2752 ));
837+
DATA(insert (277504t1070 ));
813838

814839
/*
815840
* gin _varchar_ops
816841
*/
817842
DATA(insert (277601f2750 ));
818843
DATA(insert (277602f2751 ));
819844
DATA(insert (277603t2752 ));
845+
DATA(insert (277604t1070 ));
820846

821847
/*
822848
* gin _timestamp_ops
823849
*/
824850
DATA(insert (277701f2750 ));
825851
DATA(insert (277702f2751 ));
826852
DATA(insert (277703t2752 ));
853+
DATA(insert (277704t1070 ));
827854

828855
/*
829856
* gin _money_ops
830857
*/
831858
DATA(insert (277801f2750 ));
832859
DATA(insert (277802f2751 ));
833860
DATA(insert (277803t2752 ));
861+
DATA(insert (277804t1070 ));
834862

835863
/*
836864
* gin _reltime_ops
837865
*/
838866
DATA(insert (277901f2750 ));
839867
DATA(insert (277902f2751 ));
840868
DATA(insert (277903t2752 ));
869+
DATA(insert (277904t1070 ));
841870

842871
/*
843872
* gin _tinterval_ops
844873
*/
845874
DATA(insert (278001f2750 ));
846875
DATA(insert (278002f2751 ));
847876
DATA(insert (278003t2752 ));
877+
DATA(insert (278004t1070 ));
848878

849879
#endif/* PG_AMOP_H */

‎src/test/regress/expected/create_index.out

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,12 @@ SELECT * FROM array_index_op_test WHERE i ~ '{38,34,32,89}' ORDER BY seqno;
244244
98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845}
245245
(3 rows)
246246

247+
SELECT * FROM array_index_op_test WHERE i = '{47,77}' ORDER BY seqno;
248+
seqno | i | t
249+
-------+---------+-----------------------------------------------------------------------------------------------------------------
250+
95 | {47,77} | {AAAAAAAAAAAAAAAAA764,AAAAAAAAAAA74076,AAAAAAAAAA18107,AAAAA40681,AAAAAAAAAAAAAAA35875,AAAAA60038,AAAAAAA56483}
251+
(1 row)
252+
247253
CREATE INDEX textarrayidx ON array_index_op_test USING gin (t);
248254
SELECT * FROM array_index_op_test WHERE t @ '{AAAAAAAA72908}' ORDER BY seqno;
249255
seqno | i | t
@@ -303,6 +309,12 @@ SELECT * FROM array_index_op_test WHERE t ~ '{AAAAAAAA72908,AAAAAAAAAAAAAAAAAAA1
303309
45 | {99,45} | {AAAAAAAA72908,AAAAAAAAAAAAAAAAAAA17075,AA88409,AAAAAAAAAAAAAAAAAA36842,AAAAAAA48038,AAAAAAAAAAAAAA10611}
304310
(2 rows)
305311

312+
SELECT * FROM array_index_op_test WHERE t = '{AAAAAAAAAA646,A87088}' ORDER BY seqno;
313+
seqno | i | t
314+
-------+------------+------------------------
315+
96 | {23,97,43} | {AAAAAAAAAA646,A87088}
316+
(1 row)
317+
306318
RESET enable_seqscan;
307319
RESET enable_indexscan;
308320
RESET enable_bitmapscan;

‎src/test/regress/expected/opr_sanity.out

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,8 @@ ORDER BY 1, 2, 3;
833833
2742 | 1 | &&
834834
2742 | 2 | @
835835
2742 | 3 | ~
836-
(27 rows)
836+
2742 | 4 | =
837+
(28 rows)
837838

838839
-- Check that all operators linked to by opclass entries have selectivity
839840
-- estimators. This is not absolutely required, but it seems a reasonable

‎src/test/regress/sql/create_index.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ SELECT * FROM array_index_op_test WHERE i && '{17}' ORDER BY seqno;
150150
SELECT*FROM array_index_op_testWHERE i @'{32,17}'ORDER BY seqno;
151151
SELECT*FROM array_index_op_testWHERE i &&'{32,17}'ORDER BY seqno;
152152
SELECT*FROM array_index_op_testWHERE i ~'{38,34,32,89}'ORDER BY seqno;
153+
SELECT*FROM array_index_op_testWHERE i='{47,77}'ORDER BY seqno;
153154

154155
CREATEINDEXtextarrayidxON array_index_op_test USING gin (t);
155156

@@ -160,6 +161,7 @@ SELECT * FROM array_index_op_test WHERE t && '{AAAAAAAAAA646}' ORDER BY seqno;
160161
SELECT*FROM array_index_op_testWHERE t @'{AAAAAAAA72908,AAAAAAAAAA646}'ORDER BY seqno;
161162
SELECT*FROM array_index_op_testWHERE t &&'{AAAAAAAA72908,AAAAAAAAAA646}'ORDER BY seqno;
162163
SELECT*FROM array_index_op_testWHERE t ~'{AAAAAAAA72908,AAAAAAAAAAAAAAAAAAA17075,AA88409,AAAAAAAAAAAAAAAAAA36842,AAAAAAA48038,AAAAAAAAAAAAAA10611}'ORDER BY seqno;
164+
SELECT*FROM array_index_op_testWHERE t='{AAAAAAAAAA646,A87088}'ORDER BY seqno;
163165

164166

165167
RESET enable_seqscan;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp