Der er en enklere metode, der er grim, men jeg mener, at den er teknisk korrekt:Træk det størst mulige udsnit ud af arrayet i modsætning til det nøjagtige udsnit med beregnede grænser. Det undgår de to funktionskald.
Eksempel:
select ('[5:7]={1,2,3}'::int[])[-2147483648:2147483647];
resulterer i:
int4 --------- {1,2,3}