PostgreSQL 9.6 - システムカタログの差分

今度は、9.5と9.6のシステムカタログの差分を見てみる。
PostgreSQLの場合、特にDDLの追加や変更があった場合、必ずと言っていいほどシステムカタログに変更がある。裏を返せば、シスタムカタログの変更から、どんな機能追加があったのかを推測することもできる。
(まあ、リリースノート見たほうが早いのだけど)

調べ方

PostgrerSQL 9.5とPostgreSQL 9.6 beta1を起動して、PostgreSQL 9.6 beta1 のpsqlから

psql postgres -q -c "\d pg_*" > ファイル名

でファイルを生成。そのファイルのdiffを取る。シンプル。

システムカタログの差分

テーブル/ビュー名 変更種別 変更内容 ぬこメモ
pg_aggregate 列の追加 aggcombinefn, aggserialfn, aggdeserialfn, aggserialtype の追加 パラレル集約の関係?要調査
pg_am 全面変更 個々のアクセスメソッド用フラグが消えて、ハンドラ関数ポインタに置き換わったみたい。 インデックスのサポート能力ってSQLからどうやって見ればいいのだろう。
pg_config カタログの追加 pg_config相当の情報 リモートからconfigが参照可能になったってことだね。
pg_init_privs カタログの追加 システム内オブジェクトの初期権限管理用のカタログ? 普段使うものではない?要調査
pg_proc 列の追加 proparallelの追加 名前からすると、関数が並列処理に対応するかどうかのフラグ?CREATE FUNCTIONに影響あるのかな。
pg_replication_slots 列の追加 confirmed_flush_lsn の追加。 ロジカルレプリケーション利用者が受信した場所を示す列かな。
pg_stat_activity 列の変更 waitingがwait_event_typeとwait_eventに分離したみたい。 監視方式にも影響でるのかな?
pg_stat_progress_vacuum カタログの追加 VACUUM処理進捗表示のためのカタログ PostgreSQL: Documentation: 9.6: Progress Reportingを見ればいいのだな。
pg_stat_wal_receiver カタログの追加 名前のとおり、wal recieverの挙動に関する稼働統計情報かな。 これを使うと、どういう監視が出来るようになるのかなあ。

システムカタログも結構変更が入っているな。

  • pg_am(インデックスアクセスメソッド)の詳細が見れなくなってる・・・どうやって見ればいいんだろうな。
  • pg_configの追加なんかは、ベンチマーク測定時の環境情報取得時に、ちょい楽になりそう。