[pgsql-jp: 32033] Re: count が以上に遅い。

T.Suzuki t_suzuki @ kenwood-eng.co.jp
2004年 1月 15日 (木) 13:49:35 JST


鈴木@KEGと申します.

杉村さん wrote:
> > ・C/C++ の「副作用完了点」
> > ・Java のように項の評価順が決められている言語
> > など「仕様上」保証されている場合を除き,評価順についての規定がな
> > い場合は左→右で実行されるという保証はないと考えるのが普通だと思っ
> > ています。どこかに AND/OR 演算子の評価順の規定はありますか?
> >
>
> わたしもそう思いまして検索してみると
> http://www.postgresql.jp/document/pg734doc/user/sql-expressions.html#AEN1008
> が見つかりました。
>
> # わからないことは検索してみると
> # だいたいはすぐ見つかるのが普通だと思います

Tietewさん,杉村さん,森永@ジャストシステムさん,海老原さん.
指摘ありがとうございます.
「プログラマが書いた通りに実行される」というのは,完全に間違いでした.
マニュアルを読んで,殆ど間違った事を言っていることが良くわかりました...

ユーザマニュアルの「1.2.8. 式の評価」の記述を見つけることが出来ず,
実験をして納得いく結果が出たので,評価順が保証されていると思いこんでいました.
よしおかさん,ごめんなさい.お騒がせしました.

海老原さん wrote:
> WHERE句における各条件の評価順については意味があるのか疑問です。
その通りで,実験をしながら意味ないなと思いました.

----
以上を踏まえると,
[pgsql-jp: 31997]で挙げたアイディアで,
flgのチェック と like文 を入れ替えて検索速度が変わる(実験で確認)のも,
場合によっては保証されないのですね.

 -----------------------------------------
      鈴木 徹 (SUZUKI Toru)
      KENWOOD ENGINEERING CORPORATION
      E-mail:t_suzuki @ kenwood-eng.co.jp
 -----------------------------------------




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