デフォルト値は作成時に解析されます(早期バインディング!)。 psql、pgAdmin、またはその他のクライアントに表示されるのはテキスト表現ですが、実際にはOID
関数のnow()
列の作成時に、デフォルトはシステムカタログに保存されます pg_attrdef
。引用:
adbin pg_node_tree The internal representation of the column default value
adsrc text A human-readable representation of the default value
search_path
、これにより、Postgresはスキーマ修飾された関数の名前を表示します。これは、現在のsearch_path
では正しく解決されなくなるためです。 。
ダンプと復元は、カスタムのsearch_path
とは関係ありません。 設定。彼らはそれを明示的に設定しました。したがって、表示される内容は、ダンプ/復元サイクルとは関係ありません。
組み込み関数をオーバーライドする
public
を配置する pg_catalog
の前 search_path
内 危険のゲームです 。恵まれないユーザー(自分自身を含む)は、多くの場合、そこに書き込み、システム機能を誤って無効にする可能性のある機能を作成することが許可されます-任意の(または悪意のある)結果をもたらします。
アクセスが制限された専用スキーマが必要です 組み込み関数をオーバーライドします。代わりに次のようなものを使用してください:
SET search_path = override, pg_catalog, public;
この