PostgreSQLをMySQL互換にする(2/2 ページ)

» 2005年12月20日 13時00分 公開
[Joe-'Zonker'-Brockmeier,japan.linux.com]
前のページへ 1|2       

互換関数か、ネイティブサポートか

 ところで、PostgreSQLのサポートを追加するのではなく、互換関数という形にするのはなぜなのだろうか。PostgreSQLのコアメンバーであるジョシュ・バーカス氏は、各プロジェクトがPostgreSQLをネイティブサポートしてくれる方がありがたいが、そうはなり得そうもないと言う。「考えてもみてください。SourceForgeには、MySQL 4の機能さえサポートしていないWebプロジェクトが1000ほどもあるんです。しかも、その多くはたった一人の開発者が自分の休みの時間を割いて作業をしています。そこにさらに別のデータベースシステムをサポートしてくれと頼んだとしても、笑われるのが落ちでしょう」

 キングス・リン氏は、MySQLだけを念頭に置いてきたプロジェクトがPostgreSQLのサポートを追加するのは難しいだろうと言う。「Webアプリケーションの世界にはちょっと悲しい現実があります。オープンソースプロジェクトのほとんどすべてがMySQLだけを対象にして始まるのです。ほかのデータベースのことを考え始めるのは数年後のことで、そのころにはかなり困難な状態になっています」

 PostgreSQLコミュニティーもこうした状況を座視してきたわけではない。PostgreSQLを使いたい人のために、MySQLアプリケーションがPostgreSQLに対応しやすくする機能を追加している。バーカス氏は、複数のリレーショナルデータベースエンジンのサポートを容易にするためにPostgreSQL 8.1リリースで追加された関数を例に出した。「デニス・ビョルクルン氏がMySQLのlast_insert_idに対応してLastval()関数を、Pavel StehuleがGreatest()関数とLeast()関数を追加しました。些細なことのように思えるでしょうが、移植作業というのは、こうしたところでつまずくものなのです」

 また、MySQLの標準準拠が強化されていることも有利だという。「MySQL 5.0の『完全準拠モード』向けに作られたアプリケーションなら、とても簡単に移植できるでしょう」

 しかし、最も大きな課題は解説書の不備だとバーカス氏は言う。「このコミュニティーに本当に必要なのは、MySQLからの移植に関する、分かりやすく包括的で最新情報を盛り込んだ手順書です。細々したことからアーキテクチャーまで、違いを網羅した解説書なのです。ユーザーにとっては、そうした情報の方が、山盛りのスクリプトや互換関数よりも役に立つでしょう。残念ながら、解説書の執筆や改訂よりもコードを書く方が遥かに面白い。だから、誰も解説書を作ろうとしないのです」

 確かにMySQL互換関数は完全なソリューションではないかもしれない。しかし、好みのデータベースを使って多くのオープンソースアプリケーションを使ってみたいと考えているPostgreSQLユーザーにとって、一つの回答ではある。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ