OR working strangely. - Mailing list pgsql-general

From Börkur Sigurbjörnsson
Subject OR working strangely.
Date
Msg-id PJECLEJFCKCCLOKOMKAHIEEBCDAA.borkur@handpoint.com
Whole thread Raw
Responses Re: OR working strangely.
List 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 by date:

Previous
From: "Bryan White"
Date:
Subject: Re: Corrupt Table
Next
From: Matthew
Date:
Subject: RE: Upgrading from 6.3.2 to 7.0.2