PostgreSQL が私に与えてくれたもの (1)
SRA OSS, Inc. 日本支社 石井達夫
初出:Software Design 2007 年 2 月号
ハワイで PostgreSQL の祖先と出会う
私が最初に PostgreSQL というか,その前身の postgres に出会ったのはハワイ大学でした. 勤務先からソフトウェア工学の研究を行うエンジニアとして赴任を命じられた '91 年のことです. 私の仕事の中には,オブジェクト指向的なデータベースを実装することも含まれており, ゼロからデータベースエンジンを実装するのはさすがに無理だったので,適当なデータベースを探していました.
当時非常に高価だった商用 DB は乏しい研究予算では買えなかったですし, 研究目的としてはソースコードがあったほうが良いので,フリーソフト (当時は「オープンソース」という言葉はまだありませんでした)で公開されているものを探しているうちに出会ったのが, カリフォルニア大学バークレー校(UCB)で開発されていた postgres です.
そのときは,私は単に postgres を使って DB アプリケーションを作っていたに過ぎませんが, 基本機能は商用 DB に負けない postgres に感動しました. ただ,安定性や性能は今にして思えばかなりお寒い状態で,バグにも悩まされましたが, ソースを調べて修正するほどの技量も根性もなく,せいぜいメーリングリストで情報を集める程度でした.
ちなみに,postgres の問い合わせ言語は SQL ではなくて POSTQUELという Ingres の流れを組む ちょっと特殊なものでした.
日本に帰ってから postgres のソースをいじり始める
postgres のコードをいじり始めたのは '93 年に帰国してからのことです. postgres で日本語正規表現検索を行わせるためのパッチを作ったりしていました. 当時の記録は手元に残っていないのですが,
ftp://ftp.sra.co.jp/pub/cmd/postgres/postgres-v4r2/README
によれば,ネットニュース(当時は ML よりもネットニュースのほうが主要なコミュニケーション手段として使われていました)の fj.sources という,ソースコードを投稿するためのニュースグループに,'94 年 4 月にパッチを投稿していたようです.
他にも,当時広く使われていた SONY 製のワークステーション "NEWS" 用のパッチを作ったりしていたようですが, 実際に何をしていたのかは自分でもよく覚えていません:-).
はじめての雑誌投稿
'95 年になると,WWW が普及し始めました.当時の最新技術は「動的ページ」, すなわち CGI を使って動的に生成したページを表示することでした.
今では「それがどうした」と言う感じですが,当時は DBから抜き出した結果を CGI で表示するだけでも雑誌記事が1本書けるほどで, 実際私が生まれてはじめて書いた雑誌記事('95 年 5 月)は postgres の検索結果を HTML で表示する,というものでした. その記事を読み返してみると,CGI プログラムはシェルと Tcl 言語で書かれており,時代を感じます.
私がはじめて書いたこの拙い記事は,のちに,思わぬところで日本における PostgreSQL コミュニティ誕生のきっかけへとつながっていきます.
postgres95 との出会い
前述の postgres は,'94 年を最後にプロジェクトとしては終了しました. このまま終わっていれば今日の PostgreSQL の誕生はありませんでしたが, postgresプロジェクトのメンバであった学生 2 人が,ボランティアベースで「postgres95」の開発を始めました.
postgres95 は,postgres のバグを取り,コードを整理して効率を高め,そして問い合わせ言語として SQL を採用しました. postgres95 は当時かなり注目を集めましたが,私はそのことを知りませんでした. ところが,桑村潤さん(現日本 PostgreSQL ユーザ会理事)からメールで postgres95 のことを教えていただいたことをきっかけに, postgres95 に関するメーリングリストを開始することになりました. それが '95 年の 8 月のことでした.
"postgres95 ML" ができてからは一挙にコミュニケーションが広がり, それまで細々と postgres や postgres95 を利用していた方々が,一緒に活動ができるようになりました.
PostgreSQL 誕生と開発コミュニティへのデビュー
'96 年に postgres95 は PostgreSQL として,現在の開発体制に移行します.
それまで日本の postgres95 ML ではかなりアクティブに活動していた私ですが,「本家」の ML にデビューしたのは, たぶん'97 年のことです(これも記録が残っていないので,Web での検索に頼りました). そのときの記事を引用しておきます. MkLinux への PostgreSQL の移植を行った,という内容でした.
Date: 1997-02-04 11:03:06 Subject: [HACKERS] Mklinux port Hello, I'm not sure if this is the correct list or not. Anyway, I have ported postgresql 6.0 to MkLinux, linux for Power Macintosh, except the dynamic loading functionarity which is not supported by the platform yet. I have tested the patch on my PowerMac 7100/66AV running MkLinux DR2 with 970129 updates. How to compile: 1. Apply the patch 2. Run customize 3. Select port name as "linux" 4. Answer "n" to the question asking if this is an ELF system 5. Add following 2 lines to Makefile.custom mklinux = 1 CFLAGS += -Dmklinux 6. Run make Tatsuo Ishii
(2008年11月18日公開)
(2) は、PostgreSQL 開発へのそのほかの貢献、ビジネスへの関わり、ユーザ会の立ち上げのお話です!