Cross-data-type comparisons are now indexable by btrees, pursuant to my

Tom Lane <tgl@sss.pgh.pa.us>

Commit: fa5c8a055a02e44f446e4593e397c33a572c4d67
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2003-11-12T21:15:59Z
Releases: 8.0.0
Cross-data-type comparisons are now indexable by btrees, pursuant to my
pghackers proposal of 8-Nov.  All the existing cross-type comparison
operators (int2/int4/int8 and float4/float8) have appropriate support.
The original proposal of storing the right-hand-side datatype as part of
the primary key for pg_amop and pg_amproc got modified a bit in the event;
it is easier to store zero as the 'default' case and only store a nonzero
when the operator is actually cross-type.  Along the way, remove the
long-since-defunct bigbox_ops operator class.

Files

PathChange+/−
contrib/dblink/dblink.c modified +4 −4
contrib/miscutil/misc_utils.c modified +4 −5
doc/src/sgml/catalogs.sgml modified +18 −3
doc/src/sgml/xindex.sgml modified +67 −2
src/backend/access/common/scankey.c modified +35 −7
src/backend/access/gist/gistget.c modified +27 −16
src/backend/access/gist/gistscan.c modified +3 −2
src/backend/access/heap/tuptoaster.c modified +25 −29
src/backend/access/nbtree/nbtcompare.c modified +85 −1
src/backend/access/nbtree/nbtinsert.c modified +8 −7
src/backend/access/nbtree/nbtree.c modified +2 −27
src/backend/access/nbtree/nbtsearch.c modified +178 −83
src/backend/access/nbtree/nbtsort.c modified +30 −19
src/backend/access/nbtree/nbtutils.c modified +176 −131
src/backend/access/rtree/rtproc.c modified +1 −15
src/backend/access/rtree/rtscan.c modified +6 −4
src/backend/catalog/aclchk.c modified +13 −13
src/backend/catalog/dependency.c modified +57 −63
src/backend/catalog/heap.c modified +37 −38
src/backend/catalog/index.c modified +9 −9
src/backend/catalog/pg_constraint.c modified +21 −21
src/backend/catalog/pg_conversion.c modified +5 −6
src/backend/catalog/pg_depend.c modified +17 −18
src/backend/catalog/pg_largeobject.c modified +9 −10
src/backend/commands/async.c modified +9 −10
src/backend/commands/cluster.c modified +5 −6
src/backend/commands/comment.c modified +41 −43
src/backend/commands/dbcommands.c modified +29 −30
src/backend/commands/functioncmds.c modified +5 −5
src/backend/commands/indexcmds.c modified +6 −2
src/backend/commands/opclasscmds.c modified +217 −72
src/backend/commands/tablecmds.c modified +9 −9
src/backend/commands/trigger.c modified +41 −42
src/backend/commands/typecmds.c modified +17 −17
src/backend/commands/user.c modified +5 −5
src/backend/commands/vacuum.c modified +9 −10
src/backend/executor/nodeIndexscan.c modified +11 −7
src/backend/nodes/copyfuncs.c modified +12 −1
src/backend/nodes/outfuncs.c modified +11 −1
src/backend/optimizer/path/indxpath.c modified +76 −56
src/backend/optimizer/plan/createplan.c modified +36 −18
src/backend/optimizer/util/plancat.c modified +5 −6
src/backend/parser/parse_func.c modified +5 −5
src/backend/rewrite/rewriteRemove.c modified +5 −6
src/backend/storage/large_object/inv_api.c modified +21 −21
src/backend/utils/adt/float.c modified +21 −1
src/backend/utils/adt/regproc.c modified +17 −17
src/backend/utils/adt/ruleutils.c modified +9 −9
src/backend/utils/adt/selfuncs.c modified +7 −4
src/backend/utils/cache/catcache.c modified +3 −3
src/backend/utils/cache/lsyscache.c modified +14 −11
src/backend/utils/cache/relcache.c modified +81 −91
src/backend/utils/cache/syscache.c modified +5 −5
src/backend/utils/cache/typcache.c modified +10 −5
src/backend/utils/init/postinit.c modified +5 −6
src/backend/utils/sort/tuplesort.c modified +13 −10
src/include/access/nbtree.h modified +6 −7
src/include/access/skey.h modified +18 −12
src/include/catalog/catversion.h modified +2 −2
src/include/catalog/indexing.h modified +5 −5
src/include/catalog/namespace.h modified +3 −3
src/include/catalog/pg_amop.h modified +288 −244
src/include/catalog/pg_amproc.h modified +95 −83
src/include/catalog/pg_opclass.h modified +9 −9
src/include/catalog/pg_proc.h modified +10 −4
src/include/nodes/plannodes.h modified +2 −1
src/include/utils/builtins.h modified +9 −1
src/include/utils/geo_decls.h modified +1 −2
src/include/utils/lsyscache.h modified +5 −4
src/include/utils/rel.h modified +3 −3
src/test/regress/expected/create_index.out modified +1 −1
src/test/regress/expected/oidjoins.out modified +16 −0
src/test/regress/expected/opr_sanity.out modified +97 −24
src/test/regress/sql/create_index.sql modified +1 −1
src/test/regress/sql/oidjoins.sql modified +8 −0
src/test/regress/sql/opr_sanity.sql modified +62 −20