diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2017-05-02 20:41:37 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2017-05-02 20:41:37 -0400 |
commit | 23c6eb03360d270051bf7dcb289ecb0cd114d29f (patch) | |
tree | d776860b1c41b1669683ebb4d2b566434793b3e4 /src/include/utils/array.h | |
parent | 9209e07605afe0349660447f20d83ef165cdd0ae (diff) | |
download | postgresql-23c6eb03360d270051bf7dcb289ecb0cd114d29f.tar.gz postgresql-23c6eb03360d270051bf7dcb289ecb0cd114d29f.zip |
Remove create_singleton_array(), hard-coding the case in its sole caller.
create_singleton_array() was not really as useful as we perhaps thought
when we added it. It had never accreted more than one call site, and is
only saving a dozen lines of code at that one, which is considerably less
bulk than the function itself. Moreover, because of its insistence on
using the caller's fn_extra cache space, it's arguably a coding hazard.
text_to_array_internal() does not currently use fn_extra in any other way,
but if it did it would be subtly broken, since the conflicting fn_extra
uses could be needed within a single query, in the seldom-tested case that
the field separator varies during the query. The same objection seems
likely to apply to any other potential caller.
The replacement code is a bit uglier, because it hardwires knowledge of
the storage parameters of type TEXT, but it's not like we haven't got
dozens or hundreds of other places that do the same. Uglier seems like
a good tradeoff for smaller, faster, and safer.
Per discussion with Neha Khatri.
Discussion: https://postgr.es/m/CAFO0U+_fS5SRhzq6uPG+4fbERhoA9N2+nPrtvaC9mmeWivxbsA@mail.gmail.com
Diffstat (limited to 'src/include/utils/array.h')
-rw-r--r-- | src/include/utils/array.h | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/src/include/utils/array.h b/src/include/utils/array.h index b0ff73b7e09..552c08f0d50 100644 --- a/src/include/utils/array.h +++ b/src/include/utils/array.h @@ -443,13 +443,4 @@ extern ExpandedArrayHeader *DatumGetExpandedArrayX(Datum d, extern AnyArrayType *DatumGetAnyArray(Datum d); extern void deconstruct_expanded_array(ExpandedArrayHeader *eah); -/* - * prototypes for functions defined in array_userfuncs.c - */ -extern ArrayType *create_singleton_array(FunctionCallInfo fcinfo, - Oid element_type, - Datum element, - bool isNull, - int ndims); - #endif /* ARRAY_H */ |