Istnieje prostsza metoda, która jest brzydka, ale uważam, że jest technicznie poprawna:wyodrębnij największy możliwy wycinek z tablicy, w przeciwieństwie do dokładnego wycinka z obliczonymi granicami. Pozwala to uniknąć dwóch wywołań funkcji.
Przykład:
select ('[5:7]={1,2,3}'::int[])[-2147483648:2147483647];
wyniki w:
int4 --------- {1,2,3}