Има по-прост метод, който е грозен, но смятам, че е технически правилен:извличане на възможно най-големия отрязък от масива, за разлика от точния срез с изчислени граници. Той избягва двете извиквания на функции.
Пример:
select ('[5:7]={1,2,3}'::int[])[-2147483648:2147483647];
води до:
int4 --------- {1,2,3}