mirror of
https://github.com/postgres/postgres.git
synced 2025-05-20 05:13:53 +03:00
array_map failed to insert correct result type in an empty array.
Per example from Florian Pflug.
This commit is contained in:
parent
1d3ee97a3c
commit
9ab182c2f1
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.100.2.1 2004/06/08 20:28:29 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.100.2.2 2004/12/17 20:58:36 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -2063,7 +2063,13 @@ array_map(FunctionCallInfo fcinfo, Oid inpType, Oid retType)
|
|||||||
|
|
||||||
/* Check for empty array */
|
/* Check for empty array */
|
||||||
if (nitems <= 0)
|
if (nitems <= 0)
|
||||||
PG_RETURN_ARRAYTYPE_P(v);
|
{
|
||||||
|
/* Return empty array */
|
||||||
|
result = (ArrayType *) palloc0(sizeof(ArrayType));
|
||||||
|
result->size = sizeof(ArrayType);
|
||||||
|
result->elemtype = retType;
|
||||||
|
PG_RETURN_ARRAYTYPE_P(result);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We arrange to look up info about input and return element types
|
* We arrange to look up info about input and return element types
|
||||||
@ -2247,14 +2253,9 @@ construct_md_array(Datum *elems,
|
|||||||
if (ndims == 0)
|
if (ndims == 0)
|
||||||
{
|
{
|
||||||
/* Allocate and initialize 0-D result array */
|
/* Allocate and initialize 0-D result array */
|
||||||
nbytes = ARR_OVERHEAD(ndims);
|
result = (ArrayType *) palloc0(sizeof(ArrayType));
|
||||||
result = (ArrayType *) palloc(nbytes);
|
result->size = sizeof(ArrayType);
|
||||||
|
|
||||||
result->size = nbytes;
|
|
||||||
result->ndim = ndims;
|
|
||||||
result->flags = 0;
|
|
||||||
result->elemtype = elmtype;
|
result->elemtype = elmtype;
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user