> Hey Bruce! I've got some questions for the original topic, which was the
> failure of
>
> select not b from t;
>
> where b is a boolean type in table t.
>
> It looks to me that the NOT_EXPR expression node is being constructed
> correctly in the parser, but somewhere between the parser and the
> executor (at ExecSeqScan()) it is being transformed into a deficient
> OP_EXPR expression node. Any hints on other places where this query tree
> might be getting transformed or manipulated? If I brute force substitute
> the expression type to be NOT_EXPR in ExecEvalExpr() then the query
> completes successfully:
>
> postgres=> select not b from t1;
> ?column?
> --------
> f
> t
> (2 rows)
>
> Hints are appreciated, or if this is touching on areas you are already
> familiar with I can send my debugging patches...
>
> - Tom
>
Fixed. The last part of the 'if' statement in flatten_tlistentry() was
creating an expr that was assumed to be an OP_EXPR, while it was not in
this case.
---------------------------------------------------------------------------
test=> select x from test;
x
-
f
(1 row)
test=> select not x from test;
?column?
--------
t
(1 row)
--
Bruce Momjian | 830 Blythe Avenue
maillist@candle.pha.pa.us | Drexel Hill, Pennsylvania 19026
http://www.op.net/~candle | (610) 353-9879(w)
+ If your life is a hard drive, | (610) 853-3000(h)
+ Christ can be your backup. |