Skip to content

Commit 816e10d

Browse files
committed
Fix BRIN operator family definitions
The original definitions were leaving no room for cross-type operators, so queries that compared a column of one type against something of a different type were not taking advantage of the index. Fix by making the opfamilies more like the ones for Btree, and include a few cross-type operator classes. Catalog version bumped. Per complaints from Hubert Lubaczewski, Mark Wong, Heikki Linnakangas.
1 parent ae04bf5 commit 816e10d

File tree

5 files changed

+275
-95
lines changed

5 files changed

+275
-95
lines changed

src/include/catalog/catversion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@
5353
*/
5454

5555
/* yyyymmddN */
56-
#define CATALOG_VERSION_NO 201411271
56+
#define CATALOG_VERSION_NO 201411281
5757

5858
#endif

src/include/catalog/pg_amop.h

Lines changed: 100 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -864,24 +864,53 @@ DATA(insert ( 4065 19 19 2 s 661 3580 0 ));
864864
DATA(insert ( 4065 19 19 3 s 93 3580 0 ));
865865
DATA(insert ( 4065 19 19 4 s 663 3580 0 ));
866866
DATA(insert ( 4065 19 19 5 s 662 3580 0 ));
867-
/* minmax bigint */
868-
DATA(insert ( 4063 20 20 1 s 412 3580 0 ));
869-
DATA(insert ( 4063 20 20 2 s 414 3580 0 ));
870-
DATA(insert ( 4063 20 20 3 s 410 3580 0 ));
871-
DATA(insert ( 4063 20 20 4 s 415 3580 0 ));
872-
DATA(insert ( 4063 20 20 5 s 413 3580 0 ));
873-
/* minmax smallint */
874-
DATA(insert ( 4067 21 21 1 s 95 3580 0 ));
875-
DATA(insert ( 4067 21 21 2 s 522 3580 0 ));
876-
DATA(insert ( 4067 21 21 3 s 94 3580 0 ));
877-
DATA(insert ( 4067 21 21 4 s 524 3580 0 ));
878-
DATA(insert ( 4067 21 21 5 s 520 3580 0 ));
879867
/* minmax integer */
868+
DATA(insert ( 4054 20 20 1 s 412 3580 0 ));
869+
DATA(insert ( 4054 20 20 2 s 414 3580 0 ));
870+
DATA(insert ( 4054 20 20 3 s 410 3580 0 ));
871+
DATA(insert ( 4054 20 20 4 s 415 3580 0 ));
872+
DATA(insert ( 4054 20 20 5 s 413 3580 0 ));
873+
DATA(insert ( 4054 20 21 1 s 1870 3580 0 ));
874+
DATA(insert ( 4054 20 21 2 s 1872 3580 0 ));
875+
DATA(insert ( 4054 20 21 3 s 1868 3580 0 ));
876+
DATA(insert ( 4054 20 21 4 s 1873 3580 0 ));
877+
DATA(insert ( 4054 20 21 5 s 1871 3580 0 ));
878+
DATA(insert ( 4054 20 23 1 s 418 3580 0 ));
879+
DATA(insert ( 4054 20 23 2 s 420 3580 0 ));
880+
DATA(insert ( 4054 20 23 3 s 416 3580 0 ));
881+
DATA(insert ( 4054 20 23 4 s 430 3580 0 ));
882+
DATA(insert ( 4054 20 23 5 s 419 3580 0 ));
883+
DATA(insert ( 4054 21 21 1 s 95 3580 0 ));
884+
DATA(insert ( 4054 21 21 2 s 522 3580 0 ));
885+
DATA(insert ( 4054 21 21 3 s 94 3580 0 ));
886+
DATA(insert ( 4054 21 21 4 s 524 3580 0 ));
887+
DATA(insert ( 4054 21 21 5 s 520 3580 0 ));
888+
DATA(insert ( 4054 21 20 1 s 1864 3580 0 ));
889+
DATA(insert ( 4054 21 20 2 s 1866 3580 0 ));
890+
DATA(insert ( 4054 21 20 3 s 1862 3580 0 ));
891+
DATA(insert ( 4054 21 20 4 s 1867 3580 0 ));
892+
DATA(insert ( 4054 21 20 5 s 1865 3580 0 ));
893+
DATA(insert ( 4054 21 23 1 s 534 3580 0 ));
894+
DATA(insert ( 4054 21 23 2 s 540 3580 0 ));
895+
DATA(insert ( 4054 21 23 3 s 532 3580 0 ));
896+
DATA(insert ( 4054 21 23 4 s 542 3580 0 ));
897+
DATA(insert ( 4054 21 23 5 s 536 3580 0 ));
880898
DATA(insert ( 4054 23 23 1 s 97 3580 0 ));
881899
DATA(insert ( 4054 23 23 2 s 523 3580 0 ));
882900
DATA(insert ( 4054 23 23 3 s 96 3580 0 ));
883901
DATA(insert ( 4054 23 23 4 s 525 3580 0 ));
884902
DATA(insert ( 4054 23 23 5 s 521 3580 0 ));
903+
DATA(insert ( 4054 23 21 1 s 535 3580 0 ));
904+
DATA(insert ( 4054 23 21 2 s 541 3580 0 ));
905+
DATA(insert ( 4054 23 21 3 s 533 3580 0 ));
906+
DATA(insert ( 4054 23 21 4 s 543 3580 0 ));
907+
DATA(insert ( 4054 23 21 5 s 537 3580 0 ));
908+
DATA(insert ( 4054 23 20 1 s 37 3580 0 ));
909+
DATA(insert ( 4054 23 20 2 s 80 3580 0 ));
910+
DATA(insert ( 4054 23 20 3 s 15 3580 0 ));
911+
DATA(insert ( 4054 23 20 4 s 82 3580 0 ));
912+
DATA(insert ( 4054 23 20 5 s 76 3580 0 ));
913+
885914
/* minmax text */
886915
DATA(insert ( 4056 25 25 1 s 664 3580 0 ));
887916
DATA(insert ( 4056 25 25 2 s 665 3580 0 ));
@@ -900,18 +929,28 @@ DATA(insert ( 4069 27 27 2 s 2801 3580 0 ));
900929
DATA(insert ( 4069 27 27 3 s 387 3580 0 ));
901930
DATA(insert ( 4069 27 27 4 s 2802 3580 0 ));
902931
DATA(insert ( 4069 27 27 5 s 2800 3580 0 ));
903-
/* minmax real */
932+
/* minmax float (float4, float8) */
904933
DATA(insert ( 4070 700 700 1 s 622 3580 0 ));
905934
DATA(insert ( 4070 700 700 2 s 624 3580 0 ));
906935
DATA(insert ( 4070 700 700 3 s 620 3580 0 ));
907936
DATA(insert ( 4070 700 700 4 s 625 3580 0 ));
908937
DATA(insert ( 4070 700 700 5 s 623 3580 0 ));
909-
/* minmax double precision */
910-
DATA(insert ( 4071 701 701 1 s 672 3580 0 ));
911-
DATA(insert ( 4071 701 701 2 s 673 3580 0 ));
912-
DATA(insert ( 4071 701 701 3 s 670 3580 0 ));
913-
DATA(insert ( 4071 701 701 4 s 675 3580 0 ));
914-
DATA(insert ( 4071 701 701 5 s 674 3580 0 ));
938+
DATA(insert ( 4070 700 701 1 s 1122 3580 0 ));
939+
DATA(insert ( 4070 700 701 2 s 1124 3580 0 ));
940+
DATA(insert ( 4070 700 701 3 s 1120 3580 0 ));
941+
DATA(insert ( 4070 700 701 4 s 1125 3580 0 ));
942+
DATA(insert ( 4070 700 701 5 s 1123 3580 0 ));
943+
DATA(insert ( 4070 701 700 1 s 1132 3580 0 ));
944+
DATA(insert ( 4070 701 700 2 s 1134 3580 0 ));
945+
DATA(insert ( 4070 701 700 3 s 1130 3580 0 ));
946+
DATA(insert ( 4070 701 700 4 s 1135 3580 0 ));
947+
DATA(insert ( 4070 701 700 5 s 1133 3580 0 ));
948+
DATA(insert ( 4070 701 701 1 s 672 3580 0 ));
949+
DATA(insert ( 4070 701 701 2 s 673 3580 0 ));
950+
DATA(insert ( 4070 701 701 3 s 670 3580 0 ));
951+
DATA(insert ( 4070 701 701 4 s 675 3580 0 ));
952+
DATA(insert ( 4070 701 701 5 s 674 3580 0 ));
953+
915954
/* minmax abstime */
916955
DATA(insert ( 4072 702 702 1 s 562 3580 0 ));
917956
DATA(insert ( 4072 702 702 2 s 564 3580 0 ));
@@ -942,30 +981,59 @@ DATA(insert ( 4076 1042 1042 2 s 1059 3580 0 ));
942981
DATA(insert ( 4076 1042 1042 3 s 1054 3580 0 ));
943982
DATA(insert ( 4076 1042 1042 4 s 1061 3580 0 ));
944983
DATA(insert ( 4076 1042 1042 5 s 1060 3580 0 ));
945-
/* minmax date */
946-
DATA(insert ( 4061 1082 1082 1 s 1095 3580 0 ));
947-
DATA(insert ( 4061 1082 1082 2 s 1096 3580 0 ));
948-
DATA(insert ( 4061 1082 1082 3 s 1093 3580 0 ));
949-
DATA(insert ( 4061 1082 1082 4 s 1098 3580 0 ));
950-
DATA(insert ( 4061 1082 1082 5 s 1097 3580 0 ));
951984
/* minmax time without time zone */
952985
DATA(insert ( 4077 1083 1083 1 s 1110 3580 0 ));
953986
DATA(insert ( 4077 1083 1083 2 s 1111 3580 0 ));
954987
DATA(insert ( 4077 1083 1083 3 s 1108 3580 0 ));
955988
DATA(insert ( 4077 1083 1083 4 s 1113 3580 0 ));
956989
DATA(insert ( 4077 1083 1083 5 s 1112 3580 0 ));
957-
/* minmax timestamp without time zone */
990+
/* minmax datetime (date, timestamp, timestamptz) */
958991
DATA(insert ( 4059 1114 1114 1 s 2062 3580 0 ));
959992
DATA(insert ( 4059 1114 1114 2 s 2063 3580 0 ));
960993
DATA(insert ( 4059 1114 1114 3 s 2060 3580 0 ));
961994
DATA(insert ( 4059 1114 1114 4 s 2065 3580 0 ));
962995
DATA(insert ( 4059 1114 1114 5 s 2064 3580 0 ));
963-
/* minmax timestamp with time zone */
964-
DATA(insert ( 4060 1184 1184 1 s 1322 3580 0 ));
965-
DATA(insert ( 4060 1184 1184 2 s 1323 3580 0 ));
966-
DATA(insert ( 4060 1184 1184 3 s 1320 3580 0 ));
967-
DATA(insert ( 4060 1184 1184 4 s 1325 3580 0 ));
968-
DATA(insert ( 4060 1184 1184 5 s 1324 3580 0 ));
996+
DATA(insert ( 4059 1114 1082 1 s 2371 3580 0 ));
997+
DATA(insert ( 4059 1114 1082 2 s 2372 3580 0 ));
998+
DATA(insert ( 4059 1114 1082 3 s 2373 3580 0 ));
999+
DATA(insert ( 4059 1114 1082 4 s 2374 3580 0 ));
1000+
DATA(insert ( 4059 1114 1082 5 s 2375 3580 0 ));
1001+
DATA(insert ( 4059 1114 1184 1 s 2534 3580 0 ));
1002+
DATA(insert ( 4059 1114 1184 2 s 2535 3580 0 ));
1003+
DATA(insert ( 4059 1114 1184 3 s 2536 3580 0 ));
1004+
DATA(insert ( 4059 1114 1184 4 s 2537 3580 0 ));
1005+
DATA(insert ( 4059 1114 1184 5 s 2538 3580 0 ));
1006+
DATA(insert ( 4059 1082 1082 1 s 1095 3580 0 ));
1007+
DATA(insert ( 4059 1082 1082 2 s 1096 3580 0 ));
1008+
DATA(insert ( 4059 1082 1082 3 s 1093 3580 0 ));
1009+
DATA(insert ( 4059 1082 1082 4 s 1098 3580 0 ));
1010+
DATA(insert ( 4059 1082 1082 5 s 1097 3580 0 ));
1011+
DATA(insert ( 4059 1082 1114 1 s 2345 3580 0 ));
1012+
DATA(insert ( 4059 1082 1114 2 s 2346 3580 0 ));
1013+
DATA(insert ( 4059 1082 1114 3 s 2347 3580 0 ));
1014+
DATA(insert ( 4059 1082 1114 4 s 2348 3580 0 ));
1015+
DATA(insert ( 4059 1082 1114 5 s 2349 3580 0 ));
1016+
DATA(insert ( 4059 1082 1184 1 s 2358 3580 0 ));
1017+
DATA(insert ( 4059 1082 1184 2 s 2359 3580 0 ));
1018+
DATA(insert ( 4059 1082 1184 3 s 2360 3580 0 ));
1019+
DATA(insert ( 4059 1082 1184 4 s 2361 3580 0 ));
1020+
DATA(insert ( 4059 1082 1184 5 s 2362 3580 0 ));
1021+
DATA(insert ( 4059 1184 1082 1 s 2384 3580 0 ));
1022+
DATA(insert ( 4059 1184 1082 2 s 2385 3580 0 ));
1023+
DATA(insert ( 4059 1184 1082 3 s 2386 3580 0 ));
1024+
DATA(insert ( 4059 1184 1082 4 s 2387 3580 0 ));
1025+
DATA(insert ( 4059 1184 1082 5 s 2388 3580 0 ));
1026+
DATA(insert ( 4059 1184 1114 1 s 2540 3580 0 ));
1027+
DATA(insert ( 4059 1184 1114 2 s 2541 3580 0 ));
1028+
DATA(insert ( 4059 1184 1114 3 s 2542 3580 0 ));
1029+
DATA(insert ( 4059 1184 1114 4 s 2543 3580 0 ));
1030+
DATA(insert ( 4059 1184 1114 5 s 2544 3580 0 ));
1031+
DATA(insert ( 4059 1184 1184 1 s 1322 3580 0 ));
1032+
DATA(insert ( 4059 1184 1184 2 s 1323 3580 0 ));
1033+
DATA(insert ( 4059 1184 1184 3 s 1320 3580 0 ));
1034+
DATA(insert ( 4059 1184 1184 4 s 1325 3580 0 ));
1035+
DATA(insert ( 4059 1184 1184 5 s 1324 3580 0 ));
1036+
9691037
/* minmax interval */
9701038
DATA(insert ( 4078 1186 1186 1 s 1332 3580 0 ));
9711039
DATA(insert ( 4078 1186 1186 2 s 1333 3580 0 ));

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy