Thread

  1. Re: Fix for select sum(2+2)...

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-01-14T19:58:17Z

    > 
    > Hi, Bruce!
    > 
    > vac=> \d t
    > 
    > Table    = t
    > +----------------------------------+----------------------------------+-------+
    > |              Field               |              Type                | Length|
    > +----------------------------------+----------------------------------+-------+
    > | v                                | varchar()                        |    80 |
    > | i                                | int4                             |     4 |
    > +----------------------------------+----------------------------------+-------+
    > vac=> explain select sum(2+i) from t where 1 > 0;
    > ERROR:  replace_result_clause: Can not handle this tlist!
    > 
    > "where 1 > 0" is also handled by Result node -> something still unfixed here
    > (in optimizer). Will you fix this ?
    > 
    > Vadim
    > 
    
    I have decided the whole qry_aggs is bad.  It is bad becuase it makes
    multiple copies of Aggreg, and both copies must be processed by any
    changes by rewrite and optimizer.  I am removing the field
    Query->qry_aggs, and replacing it with a function that will called when
    creating the Agg which spins through the Plan target list and returns a
    linked list of Agg*.  Much cleaner, and I can remove much of the special
    qry_aggs handling I added to get other Agg stuff to work.
    
    Also, this relates to the SubLink change.  I am now going to recommend
    not having a separate Sublink pointer list field in Query, but adding a
    function that will return a list of valid Sublink entries in from
    qry->qual, or maybe even qry->targetlist.
    
    
    
    
    -- 
    Bruce Momjian
    maillist@candle.pha.pa.us
    
    
  2. Re: Fix for select sum(2+2)...

    Vadim B. Mikheev <vadim@sable.krasnoyarsk.su> — 1998-01-15T03:57:21Z

    Bruce Momjian wrote:
    > 
    > I have decided the whole qry_aggs is bad.  It is bad becuase it makes
    > multiple copies of Aggreg, and both copies must be processed by any
    > changes by rewrite and optimizer.  I am removing the field
    > Query->qry_aggs, and replacing it with a function that will called when
    > creating the Agg which spins through the Plan target list and returns a
    > linked list of Agg*.  Much cleaner, and I can remove much of the special
    > qry_aggs handling I added to get other Agg stuff to work.
    > 
    > Also, this relates to the SubLink change.  I am now going to recommend
    > not having a separate Sublink pointer list field in Query, but adding a
    > function that will return a list of valid Sublink entries in from
    > qry->qual, or maybe even qry->targetlist.
    
    Agreed. This will also simplify readfuncs.c
    
    Vadim