|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.113 2004/09/27 01:39:02 tgl Exp $ |
| 11 | + * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.114 2004/12/17 20:58:26 tgl Exp $ |
12 | 12 | *
|
13 | 13 | *-------------------------------------------------------------------------
|
14 | 14 | */
|
@@ -2241,7 +2241,13 @@ array_map(FunctionCallInfo fcinfo, Oid inpType, Oid retType)
|
2241 | 2241 |
|
2242 | 2242 | /* Check for empty array */
|
2243 | 2243 | if (nitems <=0)
|
2244 |
| -PG_RETURN_ARRAYTYPE_P(v); |
| 2244 | +{ |
| 2245 | +/* Return empty array */ |
| 2246 | +result= (ArrayType*)palloc0(sizeof(ArrayType)); |
| 2247 | +result->size=sizeof(ArrayType); |
| 2248 | +result->elemtype=retType; |
| 2249 | +PG_RETURN_ARRAYTYPE_P(result); |
| 2250 | +} |
2245 | 2251 |
|
2246 | 2252 | /*
|
2247 | 2253 | * We arrange to look up info about input and return element types
|
@@ -2425,14 +2431,9 @@ construct_md_array(Datum *elems,
|
2425 | 2431 | if (ndims==0)
|
2426 | 2432 | {
|
2427 | 2433 | /* Allocate and initialize 0-D result array */
|
2428 |
| -nbytes=ARR_OVERHEAD(ndims); |
2429 |
| -result= (ArrayType*)palloc(nbytes); |
2430 |
| - |
2431 |
| -result->size=nbytes; |
2432 |
| -result->ndim=ndims; |
2433 |
| -result->flags=0; |
| 2434 | +result= (ArrayType*)palloc0(sizeof(ArrayType)); |
| 2435 | +result->size=sizeof(ArrayType); |
2434 | 2436 | result->elemtype=elmtype;
|
2435 |
| - |
2436 | 2437 | returnresult;
|
2437 | 2438 | }
|
2438 | 2439 |
|
|