select not b from t1 -- electric fence

Lists: pgsql-hackers
From: "Taral" <taral(at)mail(dot)utexas(dot)edu>
To: <hackers(at)postgresql(dot)org>
Subject: select not b from t1 -- electric fence
Date: 1998-09-19 05:14:35
Message-ID: 000101bde38c$64666280$3b291f0a@taral
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

(gdb) set args template1
(gdb) run
Starting program: /home/taral/cvs/install/bin/postgres template1

Electric Fence 2.0.5 Copyright (C) 1987-1995 Bruce Perens.

POSTGRES backend interactive interface
$Revision: 1.89 $ $Date: 1998/09/01 04:32:13 $
> select not b from t1
blank
1: ?column? (typeid = 16, len = 1, typmod = -1, byval = t)
----

Program received signal SIGSEGV, Segmentation fault.
ExecEvalOper (opClause=0x4091dfec, econtext=0x40933fd4, isNull=0xbfffdaff
"")
at execQual.c:878
878 if (fcache == NULL)
(gdb) list
873 /*
874 * get the fcache from the Oper node. If it is NULL, then
initialize
875 * it
876 */
877 fcache = op->op_fcache;
878 if (fcache == NULL)
879 {
880 setFcache((Node *) op, op->opid, argList, econtext);
881 fcache = op->op_fcache;
882 }
(gdb) print op
$1 = (Oper *) 0x0

Umm... looking at this... why is the node type FUNC_EXPR? Shouldn't it be
NOT_EXPR?
Anyway, PARSEDEBUG,OPTIMIZER_DEBUG,DEBUG_RECIPE doesn't give me anything.
Someone have some idea how these nodes are constructed? I have no way to
follow the parsing & evaluating path in the program.

JP Sugarbroad


From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: taral(at)mail(dot)utexas(dot)edu (Taral)
Cc: hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] select not b from t1 -- electric fence
Date: 1998-09-22 21:20:56
Message-ID: 199809222122.RAA03113@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

[Charset iso-8859-1 unsupported, filtering to ASCII...]
> (gdb) set args template1
> (gdb) run
> Starting program: /home/taral/cvs/install/bin/postgres template1
>
> Electric Fence 2.0.5 Copyright (C) 1987-1995 Bruce Perens.
>
> POSTGRES backend interactive interface
> $Revision: 1.89 $ $Date: 1998/09/01 04:32:13 $
> > select not b from t1
> blank
> 1: ?column? (typeid = 16, len = 1, typmod = -1, byval = t)
> ----
>
> Program received signal SIGSEGV, Segmentation fault.
> ExecEvalOper (opClause=0x4091dfec, econtext=0x40933fd4, isNull=0xbfffdaff
> "")
> at execQual.c:878
> 878 if (fcache == NULL)
> (gdb) list
> 873 /*
> 874 * get the fcache from the Oper node. If it is NULL, then
> initialize
> 875 * it
> 876 */
> 877 fcache = op->op_fcache;
> 878 if (fcache == NULL)
> 879 {
> 880 setFcache((Node *) op, op->opid, argList, econtext);
> 881 fcache = op->op_fcache;
> 882 }
> (gdb) print op
> $1 = (Oper *) 0x0
>
> Umm... looking at this... why is the node type FUNC_EXPR? Shouldn't it be
> NOT_EXPR?
> Anyway, PARSEDEBUG,OPTIMIZER_DEBUG,DEBUG_RECIPE doesn't give me anything.
> Someone have some idea how these nodes are constructed? I have no way to
> follow the parsing & evaluating path in the program.

Fixed.

--
Bruce Momjian | 830 Blythe Avenue
maillist(at)candle(dot)pha(dot)pa(dot)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. |