Re: NOT boolfield kills backend - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: NOT boolfield kills backend
Date
Msg-id 199809222121.RAA03069@candle.pha.pa.us
Whole thread Raw
In response to Re: NOT boolfield kills backend  ("Thomas G. Lockhart" <lockhart@alumni.caltech.edu>)
List pgsql-hackers
> 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.        |

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: funny comment
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] current- crash