2014-11-13 Kyotaro Horiguchi * pg_dbms_stats.c: 権限をもたないテーブルにアクセス可能なビューを通 してアクセスした際に、そのテーブルの統計情報をロックしていてもシス テムの統計情報が利用される問題を修正しています。 現在の実装ではプランナがカラムの統計情報を要求してきた際に pg_dbms_stats は現在のユーザがSELECT権限を持っているカラムについて のみ値を返すビューを通して統計情報を取得しているため、自身がSELECT 権限を持たないテーブルにビューを通してアクセスした場合は統計情報ロッ クが働きません。その解決のためダミー統計情報テーブルの権限とそこへ のアクセスの仕方を変更しています。 2014-09-16 Kyotaro Horiguchi * pg_dbms_stats.c: 内部の統計情報キャッシュでテーブルの継承状態を正 しく扱っていなかったバグを修正しました。この問題により継承テーブル の親テーブルに関する統計情報ロックが正しく行えていませんでした。 2014-08-25 Kyotaro Horiguchi * pg_dbms_stats.c: 内部の統計情報キャッシュのキーであるリレーション IDのハッシュ値を文字列として計算していたバグを修正しました。この問 題により中に"0x00"のバイト値を持ち、それより下位(リトルエンディアン の場合)のバイトが一致する複数のOIDが間違って一致しているものとして 扱われる可能性がありました。これによって間違ったテーブルの統計情報 が返却された場合には、クラッシュするか最低でも間違ったプランが選択 される可能性があります。 *pg_dbms_stats-1.3.3.sql: pg_dbms_stats の操作におけるロックの粒度 を細かくしました。これによって異なるテーブルに対する複数のロック操 作は互いにブロックしなくなります。 2014-06-06 Kyotaro Horiguchi *ロックされていないテーブル/カラムに関する実行計画作成中に pg_dbms_statsの統計情報管理テーブルへの不要なアクセスを行わないよう になりました。これによりロックを行っていないテーブル/インデックス等 への軽量な問い合わせ(数ミリ秒程度以内で完了するようなもの)への性能 の影響が軽減されます。 *特定の条件でSEGVを発生する可能性があるバグを修正しました。 *機能拡張としてのバージョンを正しく設定するように修正しました。 旧 バージョンからのALTER EXTENSIONが可能です。 2013-11-07 Kyotaro Horiguchi *ロックしたテーブルにおいてデータ型を変更するとSEGVを引き起こすこと が有るバグの修正 *clean_up_stats()関数を実装。ロックを解除せずに列やテーブルを削除す ると、使用しないダミー統計情報が残ります。この関数はこの残されたダ ミー統計情報を一括削除します。 2013-11-07 Kyotaro Horiguchi *公開初版