OSDN Git Service

Modify array operations to include array's element type OID in the
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 26 Aug 2002 17:54:02 +0000 (17:54 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 26 Aug 2002 17:54:02 +0000 (17:54 +0000)
commit5cabcfccce4b8b826c9b30828f3012b7926a6946
tree3e14c0710a45b4195734dd3189eb89eac4969073
parent8009c275925dda90f1275ba70f5c2a63abaa520b
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.
38 files changed:
contrib/array/README.array_iterator
contrib/array/array_iterator.c
contrib/array/array_iterator.h
contrib/array/array_iterator.sql.in
contrib/dblink/dblink.c
contrib/intagg/int_aggregate.c
contrib/ltree/_ltree_gist.c
contrib/ltree/_ltree_op.c
src/backend/catalog/pg_constraint.c
src/backend/commands/analyze.c
src/backend/executor/execQual.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/readfuncs.c
src/backend/parser/parse_expr.c
src/backend/parser/parse_node.c
src/backend/rewrite/rewriteHandler.c
src/backend/utils/adt/acl.c
src/backend/utils/adt/arrayfuncs.c
src/backend/utils/adt/float.c
src/backend/utils/adt/name.c
src/backend/utils/adt/numeric.c
src/backend/utils/adt/pseudotypes.c
src/backend/utils/adt/ruleutils.c
src/backend/utils/adt/timestamp.c
src/backend/utils/adt/varbit.c
src/backend/utils/adt/varchar.c
src/backend/utils/cache/lsyscache.c
src/backend/utils/misc/guc.c
src/include/catalog/catversion.h
src/include/catalog/pg_proc.h
src/include/catalog/pg_type.h
src/include/nodes/primnodes.h
src/include/utils/array.h
src/include/utils/lsyscache.h
src/test/regress/expected/type_sanity.out
src/test/regress/sql/type_sanity.sql