Modify array operations to include array's element type OID in the

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

Commit: 5cabcfccce4b8b826c9b30828f3012b7926a6946
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2002-08-26T17:54:02Z
Releases: 7.3.1
Modify array operations to include array's element type OID in the
array header, and to compute sizing and alignment of array elements
the same way normal tuple access operations do --- viz, using the
tupmacs.h macros att_addlength and att_align.  This makes the world
safe for arrays of cstrings or intervals, and should make it much
easier to write array-type-polymorphic functions; as examples see
the cleanups of array_out and contrib/array_iterator.  By Joe Conway
and Tom Lane.

Files

PathChange+/−
contrib/array/array_iterator.c modified +54 −90
contrib/array/array_iterator.h modified +18 −25
contrib/array/array_iterator.sql.in modified +30 −30
contrib/array/README.array_iterator modified +4 −4
contrib/dblink/dblink.c modified +5 −0
contrib/intagg/int_aggregate.c modified +5 −3
contrib/ltree/_ltree_gist.c modified +1 −1
contrib/ltree/_ltree_op.c modified +9 −9
src/backend/catalog/pg_constraint.c modified +4 −3
src/backend/commands/analyze.c modified +5 −3
src/backend/executor/execQual.c modified +14 −11
src/backend/nodes/copyfuncs.c modified +3 −2
src/backend/nodes/equalfuncs.c modified +7 −3
src/backend/nodes/outfuncs.c modified +8 −6
src/backend/nodes/readfuncs.c modified +10 −6
src/backend/parser/parse_expr.c modified +2 −2
src/backend/parser/parse_node.c modified +4 −3
src/backend/rewrite/rewriteHandler.c modified +3 −3
src/backend/utils/adt/acl.c modified +3 −1
src/backend/utils/adt/arrayfuncs.c modified +223 −149
src/backend/utils/adt/float.c modified +9 −6
src/backend/utils/adt/name.c modified +4 −2
src/backend/utils/adt/numeric.c modified +7 −6
src/backend/utils/adt/pseudotypes.c modified +5 −4
src/backend/utils/adt/ruleutils.c modified +2 −2
src/backend/utils/adt/timestamp.c modified +5 −4
src/backend/utils/adt/varbit.c modified +3 −3
src/backend/utils/adt/varchar.c modified +3 −3
src/backend/utils/cache/lsyscache.c modified +30 −4
src/backend/utils/misc/guc.c modified +42 −11
src/include/catalog/catversion.h modified +2 −2
src/include/catalog/pg_proc.h modified +4 −4
src/include/catalog/pg_type.h modified +2 −1
src/include/nodes/primnodes.h modified +7 −7
src/include/utils/array.h modified +16 −18
src/include/utils/lsyscache.h modified +3 −1
src/test/regress/expected/type_sanity.out modified +1 −1
src/test/regress/sql/type_sanity.sql modified +1 −1