醜いもっと簡単な方法がありますが、技術的には正しいと思います。計算された境界を持つ正確なスライスではなく、配列から可能な限り最大のスライスを抽出します。これにより、2つの関数呼び出しが回避されます。
例:
select ('[5:7]={1,2,3}'::int[])[-2147483648:2147483647];
結果:
int4 --------- {1,2,3}
醜いもっと簡単な方法がありますが、技術的には正しいと思います。計算された境界を持つ正確なスライスではなく、配列から可能な限り最大のスライスを抽出します。これにより、2つの関数呼び出しが回避されます。
例:
select ('[5:7]={1,2,3}'::int[])[-2147483648:2147483647];
結果:
int4 --------- {1,2,3}