Make SQL arrays support null elements. This commit fixes the core array

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

Commit: cecb6075594a407b7adcd9c9a0c243ca4b43c9a3
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2005-11-17T22:14:56Z
Releases: 8.2.0
Make SQL arrays support null elements.  This commit fixes the core array
functionality, but I still need to make another pass looking at places
that incidentally use arrays (such as ACL manipulation) to make sure they
are null-safe.  Contrib needs work too.
I have not changed the behaviors that are still under discussion about
array comparison and what to do with lower bounds.

Files

PathChange+/−
contrib/intagg/int_aggregate.c modified +1 −1
contrib/intarray/_int_tool.c modified +3 −2
contrib/tsearch2/query_rewrite.c modified +1 −1
doc/src/sgml/array.sgml modified +58 −52
doc/src/sgml/config.sgml modified +55 −28
doc/src/sgml/func.sgml modified +25 −1
doc/src/sgml/ref/insert.sgml modified +4 −4
doc/src/sgml/xfunc.sgml modified +10 −8
src/backend/catalog/pg_proc.c modified +8 −5
src/backend/executor/execQual.c modified +136 −108
src/backend/optimizer/util/clauses.c modified +4 −3
src/backend/utils/adt/acl.c modified +2 −2
src/backend/utils/adt/arrayfuncs.c modified +1363 −569
src/backend/utils/adt/array_userfuncs.c modified +89 −23
src/backend/utils/adt/arrayutils.c modified +84 −26
src/backend/utils/adt/float.c modified +2 −1
src/backend/utils/adt/int.c modified +6 −6
src/backend/utils/adt/numeric.c modified +11 −8
src/backend/utils/adt/oid.c modified +6 −6
src/backend/utils/adt/ruleutils.c modified +2 −2
src/backend/utils/adt/timestamp.c modified +3 −3
src/backend/utils/cache/lsyscache.c modified +4 −3
src/backend/utils/fmgr/funcapi.c modified +8 −3
src/backend/utils/misc/guc.c modified +16 −8
src/backend/utils/misc/postgresql.conf.sample modified +3 −2
src/include/catalog/catversion.h modified +2 −2
src/include/catalog/pg_proc.h modified +4 −4
src/include/c.h modified +5 −5
src/include/utils/acl.h modified +3 −3
src/include/utils/array.h modified +94 −33
src/pl/plpgsql/src/pl_comp.c modified +4 −2
src/pl/plpgsql/src/pl_exec.c modified +13 −15
src/test/regress/expected/arrays.out modified +95 −6
src/test/regress/expected/domain.out modified +1 −1
src/test/regress/sql/arrays.sql modified +20 −0