非互換
FUJITSU Enterprise Postgres 10では、pg_dump、pg_upgrade、vacuumdb、および他のクライアントコマンドにおいて、search_path設定にpg_catalogスキーマのみを含むように変更します。本変更により、クライアントコマンドがエラーになる場合があります。
クライアントコマンドのスキーマの検索順序はsearch_pathパラメータで設定した順となります。
[例]
=# CREATE FUNCTION f1(int) RETURNS int LANGUAGE SQL AS 'SELECT $1 + 1'; CREATE FUNCTION =# CREATE FUNCTION f2(int) RETURNS int LANGUAGE SQL AS 'SELECT f1($1) + 1'; CREATE FUNCTION =# CREATE TABLE t1(c1 int, c2 int, c3 int); CREATE TABLE =# CREATE INDEX ix1 ON t1(f2(c1)); CREATE INDEX $ reindexdb db
クライアントコマンドのスキーマの検索対象はpg_catalogスキーマのみです。
[例]
=# CREATE FUNCTION f1(int) RETURNS int LANGUAGE SQL AS 'SELECT $1 + 1'; CREATE FUNCTION =# CREATE FUNCTION f2(int) RETURNS int LANGUAGE SQL AS 'SELECT f1($1) + 1'; CREATE FUNCTION =# CREATE TABLE t1(c1 int, c2 int, c3 int); CREATE TABLE =# CREATE INDEX ix1 ON t1(f2(c1)); CREATE INDEX $ reindex db reindexdb: データベース"db"の再インデックス化に失敗しました: ERROR: 関数f1(integer) は存在しません (10494) 行 1: SELECT f1($1) + 1 ^ HINT: 指定名称、指定引数型に合う関数がありません。明示的な型キャストが必要かもしれません (14431) QUERY: SELECT f1($1) + 1 CONTEXT: SQL関数"f2"がインラインになっています (14744)
対処方法
クライアントコマンドがエラーになった場合、エラーの原因となったオブジェクトをスキーマ修飾してください。