Never mind. I think I had some data that hadn't been calibrated lying
around prior to testing. I think my test case was flawed.
Sorry for the noise.
-tfo
--
Thomas F. O'Connell
Co-Founder, Information Architect
Sitening, LLC
http://www.sitening.com/
110 30th Avenue North, Suite 6
Nashville, TN 37203-6320
615-260-0005
On Jan 15, 2005, at 10:55 AM, Thomas F.O'Connell wrote:
I was recently testing some logic based on columns of type boolean and
noticed some unintuitive behavior in PL/PgSQL.
I had a construct like the following:
IF NOT col1 AND NOT col2 THEN ...
In a scenario where both col1 and col2 were false, this condition was
not triggered. If I rewrote it as:
IF ( NOT col1 ) AND ( NOT col2 ) THEN ...
the condition was triggered as expected.
I would expect NOT to bind more closely than AND. The docs on what
behavior to expect here are pretty sparse in both the Logical
Operators section (9.1) and Expression Evaluation Rules (4.2.11). I
couldn't find anything either confirming or contradicting my
expectations. Also, I didn't try this in standard SQL in a case
construct, but I would assume the behavior would be the same?
If this is known and expected behavior, what would be the most
appropriate section of the docs for further explanation of order of
evaluation?
PostgreSQL 7.4.6 on i686-pc-linux-gnu, compiled by GCC 2.95.4.
-tfo
--
Thomas F. O'Connell
Co-Founder, Information Architect
Sitening, LLC
http://www.sitening.com/
110 30th Avenue North, Suite 6
Nashville, TN 37203-6320
615-260-0005
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your
message can get through to the mailing list cleanly