OR working strangely.

Поиск
Список
Период
Сортировка
От Börkur Sigurbjörnsson
Тема OR working strangely.
Дата
Msg-id PJECLEJFCKCCLOKOMKAHIEEBCDAA.borkur@handpoint.com
обсуждение исходный текст
Ответы Re: OR working strangely.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
We are seeing very strange behaviour in our OR statements:

> SELECT l.list AS list, l.locked AS usr
  FROM svr_lists_questions lq, svr_lists l
  WHERE ( l.locked != '{a7372de3-92b7-408b-8874-373b883b19a6}' )
  OR ( 1=0 )
+----------------------------------------+----------------------------------
------+
| list                                   | usr
|
+----------------------------------------+----------------------------------
------+
| {0aa12786-331b-f691-8d83-39d78ae8554e} |
{16c1b998-4daf-7379-cefb-276cecb634e8} |
+----------------------------------------+----------------------------------
------+
Query OK, 1 rows in set (0,74 sec)

> SELECT l.list AS list, l.locked AS usr
  FROM svr_lists_questions lq, svr_lists l
  WHERE ( l.locked != '{a7372de3-92b7-408b-8874-373b883b19a6}' )
  OR

    lq.question IN

      SELECT lq.question
      FROM svr_lists_questions lq, svr_lists l
      WHERE lq.list = l.list
      AND l.locked != '{a7372de3-92b7-408b-8874-373b883b19a6}'
      GROUP BY lq.question
    )
    AND lq.list = l.list
  )
+------+-----+
| list | usr |
+------+-----+
+------+-----+
Query OK, 0 rows in set (0,64 sec)


Note that "(criteria 1) OR (1=0)" returns a result, but
"(criteria 1) OR (criteria 2)" returns an empty table!

Criteria 2 should be a don´t care factor in this, since (1=0) is obviously
false.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Börkur Sigurbjörnsson, developer
 borkur@handpoint.com

 tel:    + 354 561 0700
 mobile: + 354 869 2122

                        handPoint
                www.handpoint.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


В списке pgsql-general по дате отправления:

Предыдущее
От: "Bryan White"
Дата:
Сообщение: Re: Corrupt Table
Следующее
От: Matthew
Дата:
Сообщение: RE: Upgrading from 6.3.2 to 7.0.2