Introduce a SQL-callable function array_sort(anyarray). Create a function that will sort the elements of an array according to the element type's sort order. If the array has more than one dimension, the sub-arrays of the first dimension are sorted per normal array-comparison rules, leaving their contents alone.
In support of this, add pg_type.typarray to the set of fields cached by the typcache. Author: Junwang Zhao <zhjw...@gmail.com> Co-authored-by: Jian He <jian.universal...@gmail.com> Reviewed-by: Aleksander Alekseev <aleksan...@timescale.com> Discussion: https://postgr.es/m/caeg8a3j41a4dpw_-f94ff-jprxyxw-gfsgogotkcjs9lvfe...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/6c12ae09f5a5d6c153eaea7901542591dc28fb9e Modified Files -------------- doc/src/sgml/func.sgml | 36 +++++ src/backend/utils/adt/array_userfuncs.c | 178 +++++++++++++++++++++++++ src/backend/utils/cache/typcache.c | 2 + src/include/catalog/catversion.h | 2 +- src/include/catalog/pg_proc.dat | 12 ++ src/include/utils/typcache.h | 1 + src/test/regress/expected/arrays.out | 142 ++++++++++++++++++++ src/test/regress/expected/collate.icu.utf8.out | 13 ++ src/test/regress/sql/arrays.sql | 36 +++++ src/test/regress/sql/collate.icu.utf8.sql | 4 + src/tools/pgindent/typedefs.list | 1 + 11 files changed, 426 insertions(+), 1 deletion(-)