aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/array_userfuncs.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-12-17 21:00:07 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-12-17 21:00:07 +0000
commitb6c56b73e7f552028d73dc05805da8e9784b1158 (patch)
tree62b12019c7b0228c583dd8f0fb8530cdfe0f0499 /src/backend/utils/adt/array_userfuncs.c
parent9ab182c2f1137e2f3394d023b18b01b882d968a9 (diff)
downloadpostgresql-b6c56b73e7f552028d73dc05805da8e9784b1158.tar.gz
postgresql-b6c56b73e7f552028d73dc05805da8e9784b1158.zip
Make array_cat more paranoid about checking datatypes in empty arrays.
Diffstat (limited to 'src/backend/utils/adt/array_userfuncs.c')
-rw-r--r--src/backend/utils/adt/array_userfuncs.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/backend/utils/adt/array_userfuncs.c b/src/backend/utils/adt/array_userfuncs.c
index 2397a2b2cfd..cdd4b7b16a6 100644
--- a/src/backend/utils/adt/array_userfuncs.c
+++ b/src/backend/utils/adt/array_userfuncs.c
@@ -6,7 +6,7 @@
* Copyright (c) 2003, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/array_userfuncs.c,v 1.11 2003/09/25 06:58:03 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/array_userfuncs.c,v 1.11.2.1 2004/12/17 21:00:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -165,6 +165,22 @@ array_cat(PG_FUNCTION_ARGS)
v1 = PG_GETARG_ARRAYTYPE_P(0);
v2 = PG_GETARG_ARRAYTYPE_P(1);
+ element_type1 = ARR_ELEMTYPE(v1);
+ element_type2 = ARR_ELEMTYPE(v2);
+
+ /* Check we have matching element types */
+ if (element_type1 != element_type2)
+ ereport(ERROR,
+ (errcode(ERRCODE_DATATYPE_MISMATCH),
+ errmsg("cannot concatenate incompatible arrays"),
+ errdetail("Arrays with element types %s and %s are not "
+ "compatible for concatenation.",
+ format_type_be(element_type1),
+ format_type_be(element_type2))));
+
+ /* OK, use it */
+ element_type = element_type1;
+
/*----------
* We must have one of the following combinations of inputs:
* 1) one empty array, and one non-empty array
@@ -200,22 +216,6 @@ array_cat(PG_FUNCTION_ARGS)
"compatible for concatenation.",
ndims1, ndims2)));
- element_type1 = ARR_ELEMTYPE(v1);
- element_type2 = ARR_ELEMTYPE(v2);
-
- /* Check we have matching element types */
- if (element_type1 != element_type2)
- ereport(ERROR,
- (errcode(ERRCODE_DATATYPE_MISMATCH),
- errmsg("cannot concatenate incompatible arrays"),
- errdetail("Arrays with element types %s and %s are not "
- "compatible for concatenation.",
- format_type_be(element_type1),
- format_type_be(element_type2))));
-
- /* OK, use it */
- element_type = element_type1;
-
/* get argument array details */
lbs1 = ARR_LBOUND(v1);
lbs2 = ARR_LBOUND(v2);