diff options
Diffstat (limited to 'src/backend/utils/adt/array_userfuncs.c')
-rw-r--r-- | src/backend/utils/adt/array_userfuncs.c | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/src/backend/utils/adt/array_userfuncs.c b/src/backend/utils/adt/array_userfuncs.c index 8da3e0ac5b8..dc2a1749db1 100644 --- a/src/backend/utils/adt/array_userfuncs.c +++ b/src/backend/utils/adt/array_userfuncs.c @@ -455,79 +455,6 @@ array_cat(PG_FUNCTION_ARGS) /* - * create_singleton_array - make a one-element array - * - * If desired, the caller can ask for it to be higher than one-dimensional. - * Caller's fcinfo must be passed in, as we use fn_extra for caching. - */ -ArrayType * -create_singleton_array(FunctionCallInfo fcinfo, - Oid element_type, - Datum element, - bool isNull, - int ndims) -{ - Datum dvalues[1]; - bool nulls[1]; - int16 typlen; - bool typbyval; - char typalign; - int dims[MAXDIM]; - int lbs[MAXDIM]; - int i; - ArrayMetaState *my_extra; - - if (ndims < 1) - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid number of dimensions: %d", ndims))); - if (ndims > MAXDIM) - ereport(ERROR, - (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), - errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)", - ndims, MAXDIM))); - - dvalues[0] = element; - nulls[0] = isNull; - - for (i = 0; i < ndims; i++) - { - dims[i] = 1; - lbs[i] = 1; - } - - /* - * We arrange to look up info about element type only once per series of - * calls, assuming the element type doesn't change underneath us. - */ - my_extra = (ArrayMetaState *) fcinfo->flinfo->fn_extra; - if (my_extra == NULL) - { - fcinfo->flinfo->fn_extra = MemoryContextAlloc(fcinfo->flinfo->fn_mcxt, - sizeof(ArrayMetaState)); - my_extra = (ArrayMetaState *) fcinfo->flinfo->fn_extra; - my_extra->element_type = ~element_type; - } - - if (my_extra->element_type != element_type) - { - /* Get info about element type */ - get_typlenbyvalalign(element_type, - &my_extra->typlen, - &my_extra->typbyval, - &my_extra->typalign); - my_extra->element_type = element_type; - } - typlen = my_extra->typlen; - typbyval = my_extra->typbyval; - typalign = my_extra->typalign; - - return construct_md_array(dvalues, nulls, ndims, dims, lbs, element_type, - typlen, typbyval, typalign); -} - - -/* * ARRAY_AGG(anynonarray) aggregate function */ Datum |