このリリースは PostgreSQL 7.3 (2002/11/27リリース)に関する技術情報をお届けします。本ドキュメントは PostgreSQL のリリースノートを元に弊社で解説を加えたものです。
PostgreSQL 7.2.3 から 7.3 への変更点
注意: ここにあげた変更点は、すべてを網羅していない可能性があります。詳しくはソースに付属の HISTORY というファイルを見てください。
互換性のない変更点
- データベースのフォーマットが変わったので、7.2.x またはそれ以前で作成したデータベースは使えません。
pg_dump か COPY コマンドを使って、以前のデータベースをダンプし、7.3 でロードする必要があります。
また、オブジェクト間の依存関係の処理の変更により、7.3 より前のデータベースのデータをロードすると、SERIAL、ユニーク制約、外部キーについての、依存関係情報が作成されません。リリースソースの
contrib/adddepend
に、これらの依存関係を追加するスクリプトと詳しい説明があります。
- フロントエンド/バックエンドの通信プロトコルについては、6.3 より前のバージョンのクライアントがサポートされなくなりました。
- 7.3 では、4 つのシステムテーブルと 2 つのシステムビューの追加、ネームスペースの追加などの理由により、
殆どのテーブルとビューに、フィールドの削除や追加などの修正がなされています。7.3 のシステムカタログの詳細は、PostgreSQL のドキュメントの
Chapter 3. System Catalogs にあります。システムカタログを参照しているアプリケーションについては、
ポーティングガイドにヒントがまとめられています。
- 追加されたシステムテーブルは以下の通りです。
pg_namespace
ネームスペース情報
pg_cast
キャストのデータタイプ変換情報
pg_constraint
制約情報
pg_conversion
エンコーディング変換情報
pg_depend
オブジェクト依存関係情報
- 追加されたシステムビューは以下の通りです。
pg_locks
ロック状況表示
pg_settings
GUC 設定の表示と変更
- 変更されたシステムテーブルは以下の通りです。
pg_aggregate
フィールドの削除と追加、インデックスの追加、NOT NULL 制約の追加
pg_am
NOT NULL 制約の追加
pg_amop
同上
pg_amproc
同上
pg_attrdef
同上
pg_attribute
フィールドの追加、NOT NULL 制約の追加
pg_class
フィールドの削除と追加、インデックスの変更、NOT NULL 制約の追加
pg_database
フィールドの追加、NOT NULL 制約の追加
pg_description
NOT NULL 制約の追加
pg_group
インデックスの変更、NOT NULL 制約の追加
pg_index
NOT NULL 制約の追加
pg_inherits
同上
pg_language
フィールドの追加、NOT NULL 制約の追加
pg_largeobject
NOT NULL 制約の追加
pg_listener
同上
pg_opclass
フィールドの追加、インデックスの変更、NOT NULL 制約の追加
pg_operator
フィールドの削除と追加、インデックスの変更、NOT NULL 制約の追加
pg_proc
同上
pg_rewrite
NOT NULL 制約の追加
pg_shadow
フィールドの削除と追加、NOT NULL 制約の追加
pg_statistic
NOT NULL 制約の追加
pg_trigger
インデックスの変更、NOT NULL 制約の追加
pg_type
フィールドの削除と追加、インデックスの変更、NOT NULL 制約の追加
- 変更されたシステムビューは以下の通りです。
pg_indexes
フィールドの追加
pg_rules
同上
pg_stat_all_indexes
同上
pg_stat_all_tables
同上
pg_stat_sys_indexes
同上
pg_stat_sys_tables
同上
pg_stat_user_indexes
同上
pg_stat_user_tables
同上
pg_statio_all_indexes
同上
pg_statio_all_sequences
同上
pg_statio_all_tables
同上
pg_statio_sys_indexes
同上
pg_statio_sys_sequences
同上
pg_statio_sys_tables
同上
pg_statio_user_indexes
同上
pg_statio_user_sequences
同上
pg_statio_user_tables
同上
pg_stats
同上
pg_tables
同上
pg_user
同上
pg_views
同上
- 削除されたシステムテーブルは以下の通りです。
- pg_relcheck
- pg_relcheck
- 変更のないシステムビューは以下の通りです。
- pg_stat_activity
- pg_stat_database
- pg_stat_activity
- TOAST テーブルのインデックスのサフィックスが _idx から _index に変更されました。
- 追加されたシステムテーブルは以下の通りです。
- ODBC、Perl、pgeasy、libpq++ の標準インターフェースライブラリが GBorg の
psqlODBC – The PostgreSQL ODBC Driver、
The pgperl Project、
The pgeasy Project、
The libpqpp Project、に移りました。
今後、これらのライブラリは、PostgreSQL のリリースとは独立に、GBorg で開発が続けられます。
- 関数のパラメータ数が 16 から 32 になり、識別子の最大長が 31 バイトから 63 バイトになりました。
- インストール時のマルチバイトサポートがデフォルトで有効になりました。ロケールサポートも有効になったため、7.2 と同じように日本語を使えるようにデータベースクラスタを作成するには、以下のようにする必要があります。
$ initdb –encoding=EUC_JP –no-locale
EUC_JP 以外のエンコーディングのなどの詳細は、リリースソース中の
doc/README.mb.jp に説明があります。 - 関数と手続言語に権限の設定が追加されました。デフォルトでは、関数の作成者のみが実行権を持ちます。詳細は、PostgreSQL のドキュメントの
4.4. Privilegesにあります。
- pg_hba.conf
pg_hba.conf の詳細は、PostgreSQL のドキュメントの 6.1. The pg_hba.conf file にあります。- セカンダリパスワードが廃止されました。
- USER カラムが追加されました。
- データベースとユーザをカンマ区切りで列挙できるようになりました。また、+グループ名でグループを、@ファイル名でデータベース名またはユーザ名を記述したファイルを指定できるようになりました。
- キーワードsamegroupが追加されました。
- セカンダリパスワードが廃止されました。
- テーブル値コンストラクタのすべての値を行値コンストラクタで指定しなければならなくなりました。つまり、INSERT INTO tab (col1, col2) VALUES (‘val1’) は、エラーとなります。INSERT INTO tab (col1, col2) VALUES (‘val1’, NULL) としてください。
- COPY でのカラム省略で NULL が仮定されなくなりました。
- LIMIT #,# が廃止されました。LIMIT # OFFSET # を使ってください。
- SERIAL で自動的にインデックスが作成されなくなりました。
- トランザクション内の SET 操作は、トランザクションがアボートするとロールバックされるようになりました。
- TIMESTAMP 型と TIME 型は、デフォルトで WITHOUT TIMEZONE となりました。
- SQL 標準のドメインの実装の影響によって、0::bool や 1::interval はエラーとなってしまうようになりました。‘0’::bool、’1′::interval として回避してください。
- 整数型の読み込みで、空文字列が禁止されました。この結果、整数型フィールドに対し、COPY 文での入力フィールドの空指定や VALUES 句での空文字列 ” 指定などで、0 入力とはならず、エラーとなります。
追加された機能
- SQL 標準のスキーマがサポートされ、ユーザ毎にネームスペースを持てるようになりました。スキーマの詳細は、PostgreSQL のドキュメントの 2.8. Schemas にあります。
- SQL 標準のドメインについて、CREATE DOMAIN と DROP DOMAIN がサポートされました。ALTER DOMAIN は、未サポートです。ドメインの詳細は、PostgreSQL のドキュメントの CREATE DOMAIN と DROP DOMAIN にあります。
- 複数の行と列を返す関数が簡単に使用できるようになりました。詳細は、PostgreSQL のドキュメントの
9.7. Table Functions にあります。 - プリペアドクエリーがサポートされました。
詳細は、PostgreSQL のドキュメントの PREPARE、
EXECUTE、 DEALLOCATEにあります。また、リリースソースの
src/test/regress/sql/prepare.sql に使用例があります。 - オブジェクト間の依存関係を pg_depend テーブルに保存することにより、依存関係のあるオブジェクトの処理が改善されました。PostgreSQL のドキュメントの 2.10. Dependency Trackingに説明があります。
この改善により、DROP コマンドで、CASCADE か RESTRICT を指定して依存関係のあるオブジェクトの削除ができるようになっています。 - pg_locks ビューで、ロック状況を参照できるようになりました。
postgres=# select * from pg_locks ;
relation | database | transaction | pid | mode | granted
———-+———-+————-+——-+—————–+———
1259 | 16976 | | 12020 | AccessShareLock | t
16757 | 16976 | | 12027 | AccessShareLock | t
| | 666 | 12020 | ExclusiveLock | t
16977 | 16976 | | 12020 | AccessShareLock | t
16977 | 16976 | | 12020 | RowShareLock | t
| | 685 | 12027 | ExclusiveLock | t
(6 rows) - GUC パラメータの追加/変更/削除
GUC の詳細は、PostgreSQL のドキュメントの 3.4. Run-time Configuration にあります。
- パラメータ名の変更
- debug_print_query が log_statement に変更されました。
- debug_level が server_min_message に変更されました。
- show_query_stats が show_statement_stats に変更されました。
- debug_print_query が log_statement に変更されました。
- 削除されたパラメータ。
- ksqo。KSQO (Key Set Query Optimizer) は、7.1 以後無効となっていため削除されました。
- wal_files。WAL ファイルが再利用されるようになったため不要となりました。
- ksqo。KSQO (Key Set Query Optimizer) は、7.1 以後無効となっていため削除されました。
- 追加されたパラメータ。
- autocommit。オートコミットのオン/オフ。デフォルトは on です。on の場合には、トランザクションの開始と終了は、今まで通りです。off の場合には、BEGIN や START TRANSACTION がない場合に、自動的にトランザクションが開始されます。
- client_min_messages。クライアントへのメッセージのレベル。デフォルトは NOTICE です。
- db_user_namespace。username@dbname 形式のユーザ名。デフォルトは off です。実験的な実装で、廃止される可能性があります。
- default_statistics_target。デフォルトの統計情報分割数。デフォルトは 10 です。
- explain_pretty_print。EXPLAIN VERBOSE 結果の清書表示。デフォルトは on です。
- LC_MESSAGES。LC_MESSAGES ロケール。
- LC_MONETARY。LC_MONETARY ロケール。
- LC_NUMERIC。LC_NUMERIC ロケール。
- LC_TIME。LC_TIME ロケール。
- log_duration。クエリー実行時間のログ。デフォルトは false です。
- log_min_error_statement。サーバログのレベル。デフォルトは NOTICE です。
- search_path。ネームスペースサーチパス。デフォルトは ‘$user,public’ です。
- statement_timeout。ミリ秒単位のクエリー実行のタイムアウト。クエリー発行後、指定した時間経過しても結果が返らない場合に、クエリーがキャンセルされます。デフォルトは 0 で、タイムアウトしません。
- superuser_reserved_connections。スーパーユーザ用の予約コネクション。デフォルトは 2 です。
- autocommit。オートコミットのオン/オフ。デフォルトは on です。on の場合には、トランザクションの開始と終了は、今まで通りです。off の場合には、BEGIN や START TRANSACTION がない場合に、自動的にトランザクションが開始されます。
- パラメータ名の変更
- PL/pgSQL 関係
- 複数の行を返すことができるようになりました。
- クォートした識別子を扱えるようになりました。
- PERFORM で FOUND がセットされるようになりました。
- 複数の行を返すことができるようになりました。
- 認証
- KTH (KUNGL TEKNISKA HOGSKOLAN) の Heimdal (Kerberos5 国際化版)がサポートされました。
- ホームディレクトリの .pgpass に、データベースホストとユーザパスワードが記述できるようになりました。環境変数 PGPASSWORD ではなく、.pgpass を使用するようにしてください。
- KTH (KUNGL TEKNISKA HOGSKOLAN) の Heimdal (Kerberos5 国際化版)がサポートされました。
- 権限
- CREATE DATABASE に OWNER オプションが追加されました。データベース作成権限のないユーザ用のデータベースをスーパーユーザで次のようにして作成できます。
=# CREATE DATABASE www WITH OWNER = www;
CREATE DATABASE
=#
また、以下のように = 指定がオプションとなり、WITH 句で重複オプションがエラーとなるように変更されました。
CREATE DATABASE name
[ WITH [ OWNER [=] dbowner ]
[ LOCATION [=] ‘dbpath’ ]
[ TEMPLATE [=] template ]
- EXECUTE と USAGE の 2 つのアクセス権が追加されました。
- 関数がそのオーナの権限で実行されるようになりました。
- CREATE DATABASE に OWNER オプションが追加されました。データベース作成権限のないユーザ用のデータベースをスーパーユーザで次のようにして作成できます。
- 追加された標準ユーティリティコマンド
- clusterdb。クラスター化を行ったことのあるテーブルに対して、再クラスター化をします。
- pg_controldata。pg_control ファイルの情報表示。contrib から標準ユーティリティコマンドとなりました。
- pg_resetxlog。トランザクションログのリセット。contrib から標準ユーティリティコマンドとなりました。
- clusterdb。クラスター化を行ったことのあるテーブルに対して、再クラスター化をします。
- 標準ユーティリティコマンド pg_passwd が削除されました。
- 標準ユーティリティコマンド createdb に -O/–owner オプションが追加されました。また、コメントが template1 データベースに登録されていたのがカレントデータベースに登録されるように修正されています。
- psql
- copy でカラム指定ができるようになりました。
- copy コマンドのパラメータ解析でのメモリリークが修正されました。
- d コマンドで、インデックス情報が詳しく表示されるようになりました。
- d コマンドで、一時テーブル情報と外部キーが表示されるようになりました。
- ドメインを表示する dD コマンドが追加されました。
- iming コマンドが追加され、クライアントから見たクエリーの実行時間が正確に計測できるようになりました。
- ビューのコンプリーションができるようになりました。また、GRANT DELETE のコンプリーションが FROM となるのが ON に修正されています。
- 変数置換を使用するとメモリ破壊により不安定になるバグが修正されました。
- copy でカラム指定ができるようになりました。
- libpq
- 関数 PQconnectdb() のパラメータに、connect_timeout が追加されました。
- 関数 PQunescapeBytea() が追加されました。
- ノンブロッキングコネクションで大きなクエリー文を扱えるようになりました。
- 関数 PQconnectdb() のパラメータに、connect_timeout が追加されました。
- SQL コマンド
- CREATE OR REPLACE VIEW と CREATE OR REPLACE RULE が追加されました。
- ALTER TABLE … DROP COLUMN によって、カラムの削除ができるようになりました。
- ALTER TABLE … DROP CONSTRAINT によって、制約の削除ができるようになりました。現時点では、同じ名前の異なる制約は、すべて削除されてしまうことに注意してください。詳しくは、 ALTER TABLE の DROP CONSTRAINT を参照してください。
- ALTER TABLE OWNER で、インデックス、TOAST テーブル、TOAST テーブルのインデックスのオーナも変更されるようになりました。
- ALTER TRIGGER RENAME が追加されました。
- トランザクション内で、ANALYZE が実行できるようになりました。
- COPY でカラム指定ができるようになりました。
- COPY SQL コマンドの WITH 句によるオプション指定が統一的な形式に変更されました。互換性のために旧形式も使用できます。
- CREATE FUNCTION に、関数の評価方法を指定する属性値 IMMUTABLE、STABLE、VOLATILE が追加されました。デフォルトは VOLATILE です。
- CREATE RULE の複数文記述時の鈎括弧 ([ と ]) が廃止されました。
- DROP TABLE で SERIAL カラムのシーケンスが削除されるようになりました。
- EXPLAIN の結果が NOTIFY でなく、タプルで返るようになりました。
- EXPLAIN でソートキーとインデックスの条件が表示されるようになりました。
- INSERT の行値コンストラクタの値に、キーワード DEFAULT を指定することができるようになりました。
- TOAST テーブルに REINDEX を使用できるようになりました。
- SET に LOCAL オプションが追加され、SET LOCAL var = value とすると、トランザクションローカルな設定ができるようになりました。
- SHOW の結果が NOTIFY でなく、タプルで返るようになりました。
- SQL99 の START TRANSACTION が追加されました。
- 参照整合性制約のある場合にテーブルを TRUNCATE できなくなりました。
- VACUUM が関数内から呼ぶことができないようになりました。
- エラーメッセージで、エラーになった識別子と位置の表示が改善されました。
- ビューからシステムカラムが削除され、ビュー定義時に、テーブルのシステムカラムを指定し、値を持たせることができるようになりました。
- 外部キーとして使用されているカラムが削除できないようになりました。
- カラム名とテーブル名の変更が外部キー制約に伝播されるようになりました。
- CREATE OR REPLACE VIEW と CREATE OR REPLACE RULE が追加されました。
- データ型、関数、演算子
- CREATE CAST と DROP CAST でユーザ定義キャストが定義できるようになりました。また、CAST() と同義の TREAT() が追加されています。
- CURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMP、CURRENT_USER、SESSION_USER、USER での「()」の指定が廃止されました。
- SIMILAR TO が演算子 ~ の代わりに使えるようになりました。
- SUBSTRING() のパターンに正規表現が使えるようになりました。
- 文字列操作関数 overlay()、replace()、split_part()、to_hex()が追加されました。
- timetz() が timezone() に変更されました。
- 関数 current_database() で、カレントデータベースが返るようになりました。
- 関数 pg_backend_pid() で、バックエンドのプロセス ID が返るようになりました。
- 日付と時刻の型の内部表現に、64 ビット整数を使用することができるようになりました。この内部表現を使用するためには、configure 時にオプション –enable-integer-datetimes を指定する必要があります。
- パラメータ指定のない関数 LOCALTIME と LOCALTIMESTAMP が追加されました。
- ルールとトリガーが名前の辞書順で実行されるようになりました。
- 型変換関数の命名規則に従っていない、bitfromint4 と bittoint4 が、それぞれ bit と int4 に変更されました。
- CREATE CAST と DROP CAST でユーザ定義キャストが定義できるようになりました。また、CAST() と同義の TREAT() が追加されています。
- 国際化
- SQL99 の関数 CONVERT() が追加されました。詳細は、リリースソース中の doc/README.mb.jp にあります。
- COPY FROM の DELIMITER が 8 ビットクリーンになりました。
- CREATE CONVERSION と DROP CONVERSION により、ユーザ定義のコンバージョンの作成と削除ができるようになりました。詳細は、リリースソース中の doc/README.mb.jp にあります。
- Korean (JOHAB)、Thai (WIN874)、Vietnamese (TCVN)、Arabic (WIN1256)、Simplified Chinese (GBK)、Korean (UHC)、GB18030 の各エンコーディングが追加されました。
- SQL99 の関数 CONVERT() が追加されました。詳細は、リリースソース中の doc/README.mb.jp にあります。
- タイムゾーンの追加、TZ と DTZ の値の修正、名称の修正がされました。
* 印は訂正、- 印は削除、無印は追加です。
AMST Armenia Summer Time (Yerevan)
AMT Armenia Time (Yerevan)
ANAST Anadyr Summer Time (Russia)
ANAT Anadyr Time (Russia)
ART Argentina Time
AZOST Azores Summer Time
AZOT Azores Time
AZST Azerbaijan Summer Time
AZT Azerbaijan Time
BNT Brunei Darussalam Time
BORT Borneo Time (Indonesia)
BOT Bolivia Time
BRA Brazil Time
BST* British Summer Time
BT Baghdad Time
BTT Bhutan Time
CCT China Coast Time
CHADT Chatham Island Daylight Time (13:45)
CHAST Chatham Island Time (12:45)
CKT Cook Islands Time
CLST Chile Summer Time
CLT Chile Time
COT Columbia Time
CVT Christmas Island Time (Indian Ocean)
CXT Christmas Island Time (Indian Ocean)
DAVT Davis Time (Antarctica)
DDUT Dumont-d’Urville Time (Antarctica)
EASST Easter Island Summer Time
EAST* Easter Island Time
EAT East Africa Time
EAST Indian Antananarivo Savings Time
EAT Indian Antananarivo Time
ECT Eastern Caribbean Time
ECT Ecuador Time
EEST Eastern Europe Summer Time
EETDST* Eastern Europe Daylight Time
EGST East Greenland Summer Time
EGT East Greenland Time
FJST Fiji Summer Time (13 hour offset!)
FJT Fiji Time
FKST Falkland Islands Summer Time
FKT Falkland Islands Time
GALT Galapagos Time
GAMT Gambier Time
GEST Georgia Summer Time
GET Georgia Time
GFT French Guiana Time
GILT Gilbert Islands Time
GYT Guyana Time
HDT* Hawaii/Alaska Daylight Time
HMT- Hellas
HKT Hong Kong Time
ICT Indochina Time
IRKST Irkutsk Summer Time
IRKT Irkutsk Time
IRT Iran Time
JAVT Java Time (07:00 see JT)
JAYT Jayapura Time (Indonesia)
JT Java Time (07:30 see JAVT)
KDT Korea Daylight Time
KGST Kyrgyzstan Summer Time
KGT Kyrgyzstan Time
KOST Kosrae Time
KRAST Krasnoyarsk Summer Time
KRAT Krasnoyarsk Standard Time
LHDT Lord Howe Daylight Time, Australia
LHST Lord Howe Standard Time, Australia
LINT Line Islands Time (Kiribati; +14 hours!)
LKT Lanka Time
MAGST Magadan Summer Time
MAGT Magadan Time
MART Marquesas Time
MMT Myannar Time
MPT North Mariana Islands Time
MSD Moscow Summer Time
MSK Moscow Time
MUT* Mauritius Island Time
MVT* Maldives Island Time
MYT Malaysia Time
NCT New Caledonia Time
NOVST Novosibirsk Summer Time
NOVT Novosibirsk Standard Time
NUT Niue Time
OMSST Omsk Summer Time
OMST Omsk Time
PET Peru Time
PETST Petropavlovsk-Kamchatski Summer Time
PETT Petropavlovsk-Kamchatski Time
PGT Papua New Guinea Time
PHOT Phoenix Islands (Kiribati) Time
PHT Phillipine Time
PKT Pakistan Time
PMDT Pierre & Miquelon Daylight Time
PONT Ponape Time (Micronesia)
PWT Palau Time
PYST Paraguay Summer Time
PYT Paraguay Time
T Filler for ISO time fields
THAT Tahiti Time
TJT Tajikistan Time
TKT Tokelau Time
TMT Turkmenistan Time
TOT Tonga Time
TRUK Truk Time
ULAST Ulan Bator Summer Time
ULAT Ulan Bator Time
UYST Uruguay Summer Time
UYT Uruguay Time
UZST Uzbekistan Summer Time
UZT Uzbekistan Time
VET Venezuela Time
VLAST Vladivostok Summer Time
VLAT Vladivostok Time
VUT Vanuata Time
WAKT Wake Time
WEST Western Europe Summer Time
WETDST Western Europe Daylight Savings Time
WFT Wallis and Futuna Time
WGST West Greenland Summer Time
WGT West Greenland Time
WST West Australian Standard Time
YAKST Yakutsk Summer Time
YAKT Yakutsk Time
YAPT Yap Time (Micronesia)
YEKST Yekaterinburg Summer Time
YEKT Yekaterinburg Time
性能向上,改良
- 更新の多い処理でのインデックスの性能が改良され、速度の低下が改善されました。
- pg_internal.init にシステムカタログ情報をキャッシュすることにより、バックエンドの起動時間が改善されました。
- ラージオブジェクトのリストア時の速度が改善されました。
- NULL 値の持ち方の改良とタプルオーバヘッドの削減によって、タプルサイズが減少しました。
- 大きなテーブルでのフリースペースマップの処理が改善されました。
- サーバの DEBUG タグメッセージが LOG タグメッセージに変更されました。
- アクセス統計情報を関数 pg_stat_reset() によって、稼働中にゼロクリアできるようになりました。
- 同じ正規表現が続けて用いられる場合が多いを考慮して、正規表現のコンパイル結果のキャッシュをリングバッファに変更し、LRU で検索されるように変更されました。以前は、先頭からキャッシュを検索していました。
- ダイナミックローディング。
- FreeBSD の古いバージョンで、dlopen に RTLD_GLOBAL 指定が存在しないことへの対処がされました。
- dlopen の呼び出しの RTLD_LAZY 指定が RTLD_NOW に変更されました。このことにより、名前解決のできない関数が実行されてしまい、バックエンドが落ちることがなくなりました。
- FreeBSD の古いバージョンで、dlopen に RTLD_GLOBAL 指定が存在しないことへの対処がされました。
- CREATE TABLE AS で、クエリーが UNION を含む場合に、明示的に指定したカラム名が使用されませんでした。
=# CREATE TABLE foo (x integer, y integer, z integer);
CREATE
=# CREATE TABLE bar (a integer, b integer, c integer);
CREATE
=# CREATE TABLE foo_union_bar (s, u, t) AS
-# SELECT x, y, z FROM foo UNION SELECT a, b, c FROM bar;
SELECT
=# SELECT * FROM foo_union_bar;
x | y | z
—+—+—
(0 rows)
修正後は、以下のように明示的に指定したカラム名が使用されます。
=# SELECT * FROM foo_union_bar;
s | u | t
—+—+—
(0 rows)
- ecpg で生成される float と double の C コードで、文字列バッファ長が 1 バイト少ないために不安定な動作をしていたのが修正されました。
- pg_dump
- OS でラージファイルが使用可能な場合に、pg_dump で 2G を越えるファイルが扱えるようになりました。
- COPY コマンドの結果が標準出力の場合に、PQexec の結果がメモリリークになっていたのが修正されました。
- ラージオブジェクトの OID が 20 億を越えた場合に、バックアップとリストアができないバグが修正されました。
- 未定義タイプのオーナが定まっていない場合に、以下の警告メッセージが表示されないようになりました。
WARNING: owner of data type %s appears to be invalid
- OS でラージファイルが使用可能な場合に、pg_dump で 2G を越えるファイルが扱えるようになりました。