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 <zhjwpku@gmail.com>
Co-authored-by: Jian He <jian.universality@gmail.com>
Reviewed-by: Aleksander Alekseev <aleksander@timescale.com>
Discussion: https://postgr.es/m/CAEG8a3J41a4dpw_-F94fF-JPRXYxw-GfsgoGotKcjs9LVfEEvw@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(-)