Thread

  1. 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
    
    
    
  2. 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.        |