[pgsql-jp: 29160] Re: setAutoCommit で Warning

Hiroshi Inoue Inoue @ tpf.co.jp
2003年 2月 20日 (木) 12:07:57 JST


井上です。

Daichi Ueura wrote:
> 
> 上浦です。
> 
> On Wed, 19 Feb 2003 16:22:23 +0900
> Hiroshi Inoue <Inoue @ tpf.co.jp> wrote:
> 
> > > > rs = st.executeQuery("select 1; commit; set autocommit = on;");
> >
> > 上記例では3つのコマンドが一つのコマンドのごとく処理されます。
> > autocommitが何であろうと一つのトランザクション内で処理され
> > (上記の場合はcommitが間に入っていて違いますが)戻ってきた
> > 時の状態がautocommitのオン/オフによって異なることになります。
> ということは、トランザクションの中にいるということですよね?
> なぜCommitでWarningが出るのでしょうか?

PostgreSQL内部ではデータへのアクセスはすべてトランザクション
の中で処理されます。トランザクションの中にいる/いないという
のはユーザーアプリに制御が戻ってきた時点での話に過ぎません。
この場合のWarningが適当かどうかは疑問ですが、ちゃんと実行は
されていて、...と思ったらあれあれ、キャンセルされてしまう
ようですね。うーんこれは確かにまずいですね。
本家(pgsql-hackers)に投げてみるつもりですが、時間がないので
あまり期待しないでください。

Hiroshi Inoue
	http://www.geocities.jp/inocchichichi/psqlodbc/



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