[pgpool-general-jp: 750] Re: pgpool-II 2.3.2 parallel_mode - current_timestamp の insert

Toshihiro Kitagawa kitagawa @ sraoss.co.jp
2010年 3月 17日 (水) 19:49:05 JST


sho さん

北川です。

> パラレルモードで、current_timestamp を使用して insert したところ、
> 次のエラーが出ました。
>
> ERROR:  pgpool2 sql restriction
> DETAIL:  cannot get node_id from system db

おっしゃるとおり getInsertRule に問題がありました。

原因は、getInsertRule 関数内の分散キーの値を検索する処理にて、
 "A::B::C" のようなキャストが想定されていないためでした。

pgpool-II 2.3 系は current_timestamp を、自動的に
"'now'::text::timestamptz(0)" と書き換えますので、分散キーの値
よりも前に current_timestamp があると、そこでエラーが発生して
いました。

よりよいと思われるパッチを添付しましたので、お試し頂ければ幸いです。

On Wed, 10 Feb 2010 15:35:34 +0900
sho <sho @ big.or.jp> wrote:

> こんにちは、sho と申します。
> 
> pool_rewrite_query.c の getInsertRule の判定の問題のように
> 見受けられたので、return 文2つをキャンセルするパッチをあてて
> みました。
> パッチを添付します。
> 
> 以上、よろしくお願いします。
> 
> -- sho

-- 
SRA OSS, Inc. 日本支社
北川 俊広 <kitagawa @ sraoss.co.jp>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: pool_rewrite_query.patch
型:         application/octet-stream
サイズ:     1159 バイト
説明:       無し
URL:        http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20100317/423fcadd/attachment.obj 


pgpool-general-jp メーリングリストの案内