Thread

  1. Patch: clean up addRangeTableEntryForFunction

    David Fetter <david@fetter.org> — 2013-01-22T16:45:12Z

    Folks,
    
    I've been working with Andrew Gierth (well, mostly he's been doing the
    work, as usual) to add WITH ORDINALITY as an option for set-returning
    functions.  In the process, he found a minor opportunity to clean up
    the interface for $SUBJECT, reducing the call to a Single Point of
    Truth for lateral-ness, very likely improving the efficiency of calls
    to that function.
    
    Please find attached the patch.
    
    Cheers,
    David.
    -- 
    David Fetter <david@fetter.org> http://fetter.org/
    Phone: +1 415 235 3778  AIM: dfetter666  Yahoo!: dfetter
    Skype: davidfetter      XMPP: david.fetter@gmail.com
    iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics
    
    Remember to vote!
    Consider donating to Postgres: http://www.postgresql.org/about/donate
    
  2. Re: Patch: clean up addRangeTableEntryForFunction

    Craig Ringer <craig@2ndquadrant.com> — 2013-01-23T01:28:54Z

    On 01/23/2013 12:45 AM, David Fetter wrote:
    > Folks,
    >
    > I've been working with Andrew Gierth (well, mostly he's been doing the
    > work, as usual) to add WITH ORDINALITY as an option for set-returning
    > functions.  In the process, he found a minor opportunity to clean up
    > the interface for $SUBJECT, reducing the call to a Single Point of
    > Truth for lateral-ness, very likely improving the efficiency of calls
    > to that function.
    Added to CF 2013-next.
    
    https://commitfest.postgresql.org/action/patch_view?id=1073
    
    -- 
     Craig Ringer                   http://www.2ndQuadrant.com/
     PostgreSQL Development, 24x7 Support, Training & Services
    
    
  3. Re: Patch: clean up addRangeTableEntryForFunction

    Tom Lane <tgl@sss.pgh.pa.us> — 2013-01-23T04:02:18Z

    David Fetter <david@fetter.org> writes:
    > I've been working with Andrew Gierth (well, mostly he's been doing the
    > work, as usual) to add WITH ORDINALITY as an option for set-returning
    > functions.  In the process, he found a minor opportunity to clean up
    > the interface for $SUBJECT, reducing the call to a Single Point of
    > Truth for lateral-ness, very likely improving the efficiency of calls
    > to that function.
    
    As I mentioned in our off-list discussion, I think this is going in the
    wrong direction.  It'd make more sense to me to get rid of the
    RangeFunction parameter, instead passing the two fields that
    addRangeTableEntryForFunction actually uses out of that.  If we do what
    you have here, we'll be welding together the alias and lateral settings
    for the new RTE; which conceivably some other caller would want to
    specify in a different way.  As a comparison point, you might want to
    look at the various calls to addRangeTableEntryForSubquery: some of
    those pass multiple fields out of the same RangeSubselect, and some
    do not.
    
    			regards, tom lane
    
    
    
  4. Re: Patch: clean up addRangeTableEntryForFunction

    David Fetter <david@fetter.org> — 2013-01-23T18:10:41Z

    On Tue, Jan 22, 2013 at 11:02:18PM -0500, Tom Lane wrote:
    > David Fetter <david@fetter.org> writes:
    > > I've been working with Andrew Gierth (well, mostly he's been doing
    > > the work, as usual) to add WITH ORDINALITY as an option for
    > > set-returning functions.  In the process, he found a minor
    > > opportunity to clean up the interface for $SUBJECT, reducing the
    > > call to a Single Point of Truth for lateral-ness, very likely
    > > improving the efficiency of calls to that function.
    > 
    > As I mentioned in our off-list discussion, I think this is going in
    > the wrong direction.  It'd make more sense to me to get rid of the
    > RangeFunction parameter, instead passing the two fields that
    > addRangeTableEntryForFunction actually uses out of that.
    
    With utmost respect, of the four fields currently in RangeFunction:
    type (tag), lateral, funccallnode, alias, and coldeflist, the function
    needs three (all but funccallnode, which has already been transformed
    into a funcexpr).  The patch for ordinality makes that 4/5 with the
    ordinality field added.
    
    > If we do what you have here, we'll be welding together the alias and
    > lateral settings for the new RTE; which conceivably some other
    > caller would want to specify in a different way.  As a comparison
    > point, you might want to look at the various calls to
    > addRangeTableEntryForSubquery: some of those pass multiple fields
    > out of the same RangeSubselect, and some do not.
    
    As to addRangeTableEntryForSubquery, I'm not seeing the connection to
    the case at hand.  Could you please spell it out?
    
    Cheers,
    David.
    -- 
    David Fetter <david@fetter.org> http://fetter.org/
    Phone: +1 415 235 3778  AIM: dfetter666  Yahoo!: dfetter
    Skype: davidfetter      XMPP: david.fetter@gmail.com
    iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics
    
    Remember to vote!
    Consider donating to Postgres: http://www.postgresql.org/about/donate
    
    
    
  5. Re: Patch: clean up addRangeTableEntryForFunction

    Robert Haas <robertmhaas@gmail.com> — 2013-07-02T17:45:38Z

    On Tue, Jan 22, 2013 at 11:45 AM, David Fetter <david@fetter.org> wrote:
    > I've been working with Andrew Gierth (well, mostly he's been doing the
    > work, as usual) to add WITH ORDINALITY as an option for set-returning
    > functions.  In the process, he found a minor opportunity to clean up
    > the interface for $SUBJECT, reducing the call to a Single Point of
    > Truth for lateral-ness, very likely improving the efficiency of calls
    > to that function.
    >
    > Please find attached the patch.
    
    I think this patch is utterly pointless.  I recommend we reject it.
    If this were part of some larger refactoring that was going in some
    direction we could agree on, it might be worth it.  But as it is, I
    think it's just a shot in the dark whether this change will end up
    being better or worse, and my personal bet is that it won't make any
    difference whatsoever.
    
    -- 
    Robert Haas
    EnterpriseDB: http://www.enterprisedb.com
    The Enterprise PostgreSQL Company
    
    
    
  6. Re: Patch: clean up addRangeTableEntryForFunction

    Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp> — 2013-07-03T07:46:45Z

    Robert Haas wrote:
    > On Tue, Jan 22, 2013 at 11:45 AM, David Fetter <david@fetter.org> wrote:
    > > I've been working with Andrew Gierth (well, mostly he's been doing the
    > > work, as usual) to add WITH ORDINALITY as an option for set-returning
    > > functions.  In the process, he found a minor opportunity to clean up
    > > the interface for $SUBJECT, reducing the call to a Single Point of
    > > Truth for lateral-ness, very likely improving the efficiency of calls
    > > to that function.
    > >
    > > Please find attached the patch.
    > 
    > I think this patch is utterly pointless.  I recommend we reject it.
    > If this were part of some larger refactoring that was going in some direction
    > we could agree on, it might be worth it.  But as it is, I think it's just a
    > shot in the dark whether this change will end up being better or worse, and
    > my personal bet is that it won't make any difference whatsoever.
    
    To be frank, I agree with Robert.
    
    Sorry for the delay in my review.
    
    Best regards,
    Etsuro Fujita