Teach btree to handle ScalarArrayOpExpr quals natively.
Tom Lane <tgl@sss.pgh.pa.us>
Teach btree to handle ScalarArrayOpExpr quals natively. This allows "indexedcol op ANY(ARRAY[...])" conditions to be used in plain indexscans, and particularly in index-only scans.
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/catalogs.sgml | modified | +7 −0 |
| src/backend/access/nbtree/nbtree.c | modified | +100 −49 |
| src/backend/access/nbtree/nbtutils.c | modified | +450 −7 |
| src/backend/executor/nodeIndexscan.c | modified | +64 −11 |
| src/backend/optimizer/path/costsize.c | modified | +8 −3 |
| src/backend/optimizer/path/indxpath.c | modified | +30 −19 |
| src/backend/optimizer/util/plancat.c | modified | +1 −0 |
| src/backend/utils/adt/selfuncs.c | modified | +0 −7 |
| src/include/access/nbtree.h | modified | +19 −0 |
| src/include/access/skey.h | modified | +17 −6 |
| src/include/catalog/catversion.h | modified | +1 −1 |
| src/include/catalog/pg_am.h | modified | +26 −24 |
| src/include/nodes/relation.h | modified | +2 −1 |