PostgreSQL7.4リリース 36
ストーリー by wakatono
待望のあの機能も 部門より
待望のあの機能も 部門より
いくつかタレコミをもらったが、その中からL.star 曰く、 "PostgreSQL Global Development Teamはカナダの現地時間11/17に1年ぶりの新バージョン、PostgreSQL7.4をリリースした。
今回の改良には当初の目玉とされていたWin32ネイティブ対応と、PITR(Point In Time Recovery)は含まれなかった。そのため、特筆すべき新機能というのはあまりないが、
- 問い合わせプロトコルがバージョンアップした。
- 開発者には待望のエラーコードが実装された
- GROUP BY、JOIN、IN副問い合わせなどのパフォーマンスが大幅改善した。
- SQL定義関数のインライン化が行われるようになった
- 正規表現エンジンがTCLのものに変更され、高速かつ高機能に
- INFORMATIONAL SCHEMAや読み込み専用トランザクションの追加
- IPv6の完全サポート
"ところで、さらなる新バージョンである7.5は7.4に入れられなかった目玉機能を取り込むべく精力的に開発が進められている。すでにオーバーホールされたバッファ管理、ディスク書き込み専用のプロセスといったパフォーマンスの改善につながる機能や、VACUUMをより使いやすくするための仕組みなどが評価されているほか、永安氏が実装した分散トランザクション機能の取り込みも計画されており、まだリリースは先の話だがこちらも期待大だ。"
また、mumumu 曰く、 "レプリケーションソリューションeRserverの追加、性能向上、Opteronのサポート、SQL標準のエラーフレームワークのサポート等、期待できる機能は多い。個人的には「性能向上」にかなり期待している"とのこと。
リリースについては日本語版プレスリリースも出ている。そちらも参考にしてほしい。
追加参考情報を (スコア:3, 参考になる)
個人的にはサブクエリ周りでのオプティマイザが賢くなったのが非常にうれしいです。以前の開発ではまったことがあったので…。
New client-to-server protocolとな。。。 (スコア:2, 興味深い)
絶賛放置中でアレですがDBD::PgPP [cpan.org]のメンテナンスを引き継いでくれる方募集中です(涙)
# DBD::mysqlPP [cpan.org]も。。。
Re:New client-to-server protocolとな。。。 (スコア:2, 参考になる)
Frontend/Backend Protocol [postgresql.org]とか
Summary of Changes since Protocol 2.0 [postgresql.org]とかをどんぞ。
で、日本語対応はどうなの? (スコア:1, 参考になる)
リリースノートに
とか書いてあるんで、ものすごく不安なんですが。日本語使う場合には、locale周りって鬼門だったと思うんだけど、大丈夫になったってこと?
Re:で、日本語対応はどうなの? (スコア:3, 参考になる)
reindex が不要に? (スコア:1)
ということで、 reindex が不要になりそうですね。
# 実運用環境では恐いので、結局 非concurrent vacuum + reindex をしてしまいそうですが。
Re:reindex が不要に? (スコア:0)
「drop index XXX;」して
「crate index XXX on YYY(ZZZ);」
するってとっちゃたんですが、
「vacuumdb -f-z -a」あたりで、問題なかったんじゃないですか?
これだけでかなり軽くなってましたよ。
ただし、時間がかかるのが玉に傷。
今度の7.4ってたしか、vacuumかけなくてよくなったんですよね
Re:reindex が不要に? (スコア:2, 参考になる)
vacuumは相変わらず必要です。もっとも、7.0あたりに比べて、その問題点は大分解消されていますが。あと、autovacuumという自動化ツールがついています。ちなみに、reindexも不要と言い切れるわけではありません。
Re:reindex が不要に? (スコア:0)
Re:reindex が不要に? (スコア:0)
使ってみるとディスクスペースが節約できるようになるんですね。
L.starさん Thank you.
JDBCドライバにもエラーコードつくんですか? (スコア:1)
Re:JDBCドライバにもエラーコードつくんですか? (スコア:2, 参考になる)
となっているようです。
Re:JDBCドライバにもエラーコードつくんですか? (スコア:1)
Re:JDBCドライバにもエラーコードつくんですか? (スコア:1)
SQL Injection (スコア:0)
SQLインジェクションの防止機能とかないでしょうか?
プログラマーの責任ですが、なかなかなくなりません。
Re:SQL Injection (スコア:1)
プログラマがいちいち、SQL文が入ってきたかどうかを
チェックしなくても、データをデータとして扱える機能
だと思うのです。
http://www.atmarkit.co.jp/fsecurity/rensai/webhole02/webhole01.html
私は、セキュリティ目的ではなく、単にシングルクォートの
エスケープをするのが面倒なので、SQL文を生成するのが
ヤなだけなんですけどね。
Re:SQL Injection (スコア:0)
それはDB側の機能として対処する話では無いんじゃない?
第一インジェクションさせるSQLだってSQL構文に乗っ取っている訳だから
DB側で判断させようが無いと思いますが・・・
まぁ解った上で聞いている話だと思いますけどね。
やはり入り口で値チェックするのが一番でしょうなぁ。
Re:SQL Injection (スコア:0)
サニタイジングとかいう人は素人。
Re:SQL Injection (スコア:1)
XSSは出口ですが。
わたしもわからないので、ぜひ教えてください。
Re:SQL Injection (スコア:2, 参考になる)
よって SQL Injection に於ける出口とは,SQL を組み立てるときのこと。
Injection (含XSS) の基本は,出口でサニタイズ。これ以外はほぼ絶対に,穴か理不尽な制約(ex. [']を入力すると消されるなど)が付きます。
Re:SQL Injection (スコア:1)
私の知ってる対処法と同じでした。
「出口」「入口」という書き方が間違いの元ですね。
PostgreSQLの話題なんで、PostgreSQLから見た「入口」という意味で私は使っておりました。
「出口で対処するって言ったって、DBに不正なクエリが既に逝ってるじゃん」って。
# 元ACの本意は同じ?
Re:SQL Injection (スコア:0)
>元ACの本意は同じ?
同じです。言葉尻を取られて誤解があった様ですね。すんません
私の参考にしているのはIPAのセキュアプログラミング講座 [ipa.go.jp]です。
もぅ何度も/.では紹介されていますけどね。
Re:SQL Injection (スコア:0)
> XSSは出口ですが。
差し込む文字列は必ず「'」でくくって、
差し込む文字列中の「'」を「''」にエスケープする。
そんだけ。
Re:SQL Injection (スコア:0)
もしよろしければ「出口ですべし」の理由をご教授願えないでしょうか
Re:SQL Injection (スコア:0)
Re:SQL Injection (スコア:0)
って、postgresに無いから困ってるんだけどね。
SQL文解析と実行計画生成のコストを迂回するのにも
使えるんで便利なんですけどねぇ。
Re:SQL Injection (スコア:1)
何て読むんでしょう (スコア:0)
Re:何て読むんでしょう (スコア:1, 興味深い)
1.1) PostgreSQL とは何ですか? 何と読みますか? [postgresql.org]
Re:何て読むんでしょう (スコア:1)
矯正するよう努力します。。。
マクロの基本は検索置換(by y.mikome)
Re:何て読むんでしょう (スコア:0)
でも聞いてるほうは別に区別できないよなあ。
Re:何て読むんでしょう (スコア:0)
とあります。
Re:何て読むんでしょう (スコア:0)
そもそも PostgresQLじゃないんだし、
Postgresとかの流れから、そのように発音する人もいますけど、
今となっては、文字通りに読めば ポストグレ_エスキューエル の方が
目と耳に優しい気がするけどね。
Re:何て読むんでしょう (スコア:0)
Re:何て読むんでしょう (スコア:0)
Re:何て読むんでしょう (スコア:0)