PostgreSQL

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を使う気になれない…

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

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

 何のための標準? 何のための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標準に従っていない。これは確か…

libpq API incompatibility between 7.4 and 8.0

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

Escaping the ARC patent

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

ARC patent

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

 インデクス

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…