データベース

PGDLLEXPORT覚書

放っておくと忘れてしまうので覚書。 最近PGDLLEXPORTというマクロが導入され、たとえばsrc/include/fmgr.h内の次のマクロ定義に使用されている。 #define PG_MODULE_MAGIC \ extern PGDLLEXPORT const Pg_magic_struct *PG_MAGIC_FUNCTION_NAME(void); \ co…

 ルールシステムはこのままでよいのだろうか?

PostgreSQLではVIEWの仕組をRULEシステムをベースに構築しており、更にこれを利用して更新可能なVIEWも作成が可能となっている。しかし更新可能な virtual tableとしてVIEWを見たときいささか心許ないものがある。実際私は更新可能なVIEWを使う気になれない…

XA-Compliantな実装覚書

以前に1-pipe方式では、XAの関数の中で有効な実装が必要なのはxa_recover()(とxa_open/close())だけと書いたがこれは間違いであった。xa_recover()要求に対しリストアップされるin-doubtトランザクションに対してxa_rollback()かxa_commit()を発行する(msd…

psqlodbcドライバ実装シミュレーション覚え書き

少し気になっていたインターフェイスポインターのスレッドをまたがる使用についてであるが、まずDTC Proxyから渡されるITransactionEnlistmentAsyncへのインターフェイスポインターはThreadingModel=Bothで実装されているようなので、どのスレッドからも同じ…

psqlodbcのMSDTC対応シミュレーション

前回記載のITransactionResourceAsyncオブジェクトの早死に問題をもう少し追いかけてみた。今回はITransactionReourceAsyncオブジェクトを正式にCOMを通してCoCreateInstanceで作成した。更に念には念を入れてCoLoadLibraryも呼び出してみた。しかし残念なが…

psqlodbcドライバによるXA-Compliantな? DB接続シミュレーション

前回記載のone-pipe方式の動作が気になったので調べてみた。前回はWindows2000だったが、今回はWindowsXP SP2を使用した。securityを強化しているせいか、なかなか動作せずに(XARMCreateでエラー)苦労したが、なんとか動作するようになった。実行内容を確…

MSDTC -> psqlodbc 〜 XA-Compliant? DB接続

以前にODBCドライバ(psqlodbc)を使って、MSDTC(MicroSoft Distributed Transaction Coordiantor)からXA-Compliantなデータベースへのアクセスをトレースしたことがある。今回そのコードを引っ張り出してきて再度試してみた。ちなみにMSDTCはXAインターフェ…

 何のための標準? 何のための2PC?

PGでは2PCらしきものの実装が終り、徐々にその後の議論が始まっているようである。全く順序が逆であろう。XAなどの標準が存在しなかった時代から2PCを実装しているデータベースがXA-Compliancyを実現するのに苦労したとしてもそれはやむをえないことだった…

The Two-phase commit implementation could be XA-compliant ?

PGの今回の2PC実装について引き続き少し調べてみたが、中途半端で危険というのが印象だ。最近の(5月位からの)議論にはXAインターフェイスのことはほとんど出てきていないようだし、わずかに出た質問(もっともな質問だと思うが)も無視されてしまったよう…

 PGの2PC実装

PGに2PC(2相コミット)が取り込まれることになったようだ。早速 http://itpro.nikkeibp.co.jp/members/ITPro/oss/20050616/162881/ の解説を見てみたがPREPARE TRANSACTION等のコマンド追加により2PCを実現するものであり、以前に見たことのあるFE/BEプ…

 Escape handling in strings

久々にPGの話題。pgsql-patchesに流れている表題のスレッド、BM氏の例によってあまりにも無造作な提案、いつまでたっても懲りない人である。 PGでは文字列中における'\'をエスケープ文字として処理しているのだが、これはSQL標準に従っていない。これは確か…

PostgreSQL8.0リリース記念セミナー

久しぶりに色んな人に会えて楽しかった。PostgreSQLも8.0となって一人前になってきたようだ。明日はDaveにお付き合いして東京見物、まるでおのぼりさんですな。

PostgreSQL8.0リリース記念セミナー

いよいよ明日。久々に色んな人に会えるのが楽しみだ。YOHOOの経路探索によると 小松空港(8:30)−東京国際空港(9:35)−羽田空港(10:01)−品川(10:21)とのこと。

libpq API incompatibility between 7.4 and 8.0

詳細を読んでる余裕がなく以下間違って理解していたらすいません。 7.4->8.0でlibpqの非?公開関数を削除してしまい、意図せずにそのbinary compatibilityを破ってしまったけどどうしようかということだろう、多分。 それらの関数はマニュアル等には一切記載…

Escaping the ARC patent

結局2Qベースのアルゴリズムに切り替えることになったようだ。

PostgreSQL8.0リリース記念セミナー

2月18日は何とか参加出来そう。この種の会合に最後に参加したのは4年以上も前のこと、月日のたつのは本当に早いものだ。初めて会う人のほうがはるかに多いのだろうな。恥ずかしながら8.0の中身はよくわかってないんだけど。

ARC patent

pgsql-hackersで議論が続いている様子。読んでる暇はないが。 次のような記事も http://www.itmedia.co.jp/enterprise/articles/0501/17/news083.html ははあ、USだけのパテントなのか。それでも困るだろうけど。PGのBuffer Managementって簡単に付け替えら…

 IBM releases 500 patents

http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=1&f=G&l=50&s1=%2220040098541%22.PGNR.&OS=DN/20040098541&RS=DN/20040098541ARCもやばいかも。

 インデクス

pgsql-hackersでの議論 [HACKERS] Much Ado About COUNT(*) ちゃんと読んでるわけじゃないけど何となく内容はわかる気がする(だけかも?)。PGの(no overwrite storageシステムの)最大の弱点の一つ、インデクスデータを見ただけではそれの指し示しているデ…

Shared row locking

pgsql-hackersでの議論、詳しくは見ていないのだが目的がはっきりしない感じがする。外部キー実装の改良に絶対必要なのか?にも使える程度なのか? 外部キー改良に関しては切り離して考えた方がよいと思うのだが。 lock escalation方式も検討されているよう…

pgsql-jp

珍しく目に入ったpgsql-jpのトピック2つ [pgsql-jp 34418] test=# INSERT INTO j1 VALUES ('いろいろ', 4000); test'# となってINSERT文でロックがかかる? コピペが正しいとすればコマンド入力が終わって いない(2行目のプロンプト'#)というだけでは? …

Large Object

Thunderbirdの動作を監視していてたまたま目についたスレッド [HACKERS] Status of server side Large Object support? 某氏曰く The "inv_api" large objects are deprecated. CLOBs and BLOBs should be based on text and bytea, respectively. 何々?byt…