From e945246321506732ac9d2cab74b49782e12c4768 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 17 Aug 2003 23:43:27 +0000 Subject: Fix ARRAY[] construct so that in multidimensional case, elements can be anything yielding an array of the proper kind, not only sub-ARRAY[] constructs; do subscript checking at runtime not parse time. Also, adjust array_cat to make array || array comply with the SQL99 spec. Joe Conway --- src/backend/nodes/copyfuncs.c | 4 ++-- src/backend/nodes/equalfuncs.c | 4 ++-- src/backend/nodes/outfuncs.c | 4 ++-- src/backend/nodes/readfuncs.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/backend/nodes') diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 55076ec48d3..17b32cd4ab8 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -15,7 +15,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.264 2003/08/17 19:58:05 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.265 2003/08/17 23:43:25 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -947,7 +947,7 @@ _copyArrayExpr(ArrayExpr *from) COPY_SCALAR_FIELD(array_typeid); COPY_SCALAR_FIELD(element_typeid); COPY_NODE_FIELD(elements); - COPY_SCALAR_FIELD(ndims); + COPY_SCALAR_FIELD(multidims); return newnode; } diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index e3a59f4739a..5066a556e45 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -18,7 +18,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.208 2003/08/17 19:58:05 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.209 2003/08/17 23:43:26 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -409,7 +409,7 @@ _equalArrayExpr(ArrayExpr *a, ArrayExpr *b) COMPARE_SCALAR_FIELD(array_typeid); COMPARE_SCALAR_FIELD(element_typeid); COMPARE_NODE_FIELD(elements); - COMPARE_SCALAR_FIELD(ndims); + COMPARE_SCALAR_FIELD(multidims); return true; } diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index b7c1a370695..97d9aed2407 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.217 2003/08/08 21:41:44 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.218 2003/08/17 23:43:26 tgl Exp $ * * NOTES * Every node type that can appear in stored rules' parsetrees *must* @@ -785,7 +785,7 @@ _outArrayExpr(StringInfo str, ArrayExpr *node) WRITE_OID_FIELD(array_typeid); WRITE_OID_FIELD(element_typeid); WRITE_NODE_FIELD(elements); - WRITE_INT_FIELD(ndims); + WRITE_BOOL_FIELD(multidims); } static void diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index d261ac7f862..74d25c7db1b 100644 --- a/src/backend/nodes/readfuncs.c +++ b/src/backend/nodes/readfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.161 2003/08/04 02:39:59 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.162 2003/08/17 23:43:26 tgl Exp $ * * NOTES * Path and Plan nodes do not have any readfuncs support, because we @@ -659,7 +659,7 @@ _readArrayExpr(void) READ_OID_FIELD(array_typeid); READ_OID_FIELD(element_typeid); READ_NODE_FIELD(elements); - READ_INT_FIELD(ndims); + READ_BOOL_FIELD(multidims); READ_DONE(); } -- cgit v1.2.3