ページの先頭行へ戻る
Enterprise Postgres 17 リリース情報

2.2.191 intarry拡張の「<@」と「@>」演算子の最適化を対応しないように変更

非互換

FUJITSU Enterprise Postgres 14では、intarry拡張の「<@」と「@>」演算子の最適化を対応しないように変更します。

FUJITSU Enterprise Postgres 13 SP1以前の場合

「Seq Scan」以外の最適化処理を通ることができます。

[例]

=# CREATE EXTENSION intarray;
CREATE EXTENSION
=# CREATE TABLE test_int(a int[]);
CREATE TABLE
=# INSERT INTO test_int values (array[73,23,20]);
INSERT 0 1
=# CREATE INDEX text_idx ON test_int USING gist ( a gist__int_ops );
CREATE INDEX
=# SET enable_seqscan=off;
SET
=# EXPLAIN SELECT * FROM test_int WHERE a <@ '{73,23,20}';
                                QUERY PLAN
--------------------------------------------------------------------------
 Index Scan using text_idx on test_int  (cost=0.13..8.15 rows=1 width=32)
   Index Cond: (a <@ '{73,23,20}'::integer[])
(2 rows)
FUJITSU Enterprise Postgres 14の場合

最適化処理を対応せず、「Seq Scan」の処理しか通らないように修正します。

[例]

=# CREATE EXTENSION intarray;
CREATE EXTENSION
=# CREATE TABLE test_int(a int[]);
CREATE TABLE
=# INSERT INTO test_int values (array[73,23,20]);
INSERT 0 1
=# CREATE INDEX text_idx ON test_int USING gist ( a gist__int_ops );
CREATE INDEX
=# SET enable_seqscan=off;
SET
=# EXPLAIN SELECT * FROM test_int WHERE a <@ '{73,23,20}';
                                 QUERY PLAN
-----------------------------------------------------------------------------
 Seq Scan on test_int  (cost=10000000000.00..10000000001.04 rows=1 width=32)
   Filter: (a <@ '{73,23,20}'::integer[])
(2 rows)

対処方法

ありません。