Thread
-
select not b from t1 -- electric fence
Taral <taral@mail.utexas.edu> — 1998-09-19T05:14:35Z
(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 -
Re: [HACKERS] select not b from t1 -- electric fence
Bruce Momjian <maillist@candle.pha.pa.us> — 1998-09-22T21:20:56Z
[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@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. |