非互換
FUJITSU Enterprise Postgres 12では、nameデータ型に対する比較演算子は、常にCではなく、任意の照合順序が使えるようになります。これまでの問い合わせの意味を維持するため、name型の列は明示的にC照合順序を持つと印付けされるようになります。これにより、name型の列に対する正規表現演算子が、ロケールに依存する正規表現パターン(psql の \w で実行される SQLなど)の振る舞いを決める際のデフォルトの照合順序がデータベースの照合順序からC照合順序に変更となります。
name型の列は明示的にC照合順序を持つと印付けされません。
[例]
=# SELECT t.typname, t.typcollation, c.collname FROM pg_type t -# JOIN pg_collation c ON (t.typcollation = c.oid) WHERE typname = 'name'; typname | typcollation | collname ---------+--------------+---------- (0 rows)
name型の列は明示的にC照合順序を持つと印付けされます。
[例]
=# SELECT t.typname, t.typcollation, c.collname FROM pg_type t -# JOIN pg_collation c ON (t.typcollation = c.oid) WHERE typname = 'name'; typname | typcollation | collname ---------+--------------+---------- name | 950 | C (1 row)
対処方法
name型の列に対する正規表現でC照合順序以外の振る舞いをさせる場合は、明示的にCOLLATE句を追加してください。