Thread

  1. btvacuumpage useless "orig_blkno"

    Alvaro Herrera <alvherre@alvh.no-ip.org> — 2011-11-21T22:03:59Z

    I just noticed that btvacuumpage has two BlockNumber parameters -- blkno
    and orig_blkno.  The only caller passes them as the same value; the
    header comments state that blkno would be different when recursing, but
    actually the function implements recursion internally by way of a cute
    "goto" trick.  So it seems to me that the orig_blkno parameter is
    useless -- we could just remove it.
    
    Unless I'm completely missing something?
    
    -- 
    Álvaro Herrera <alvherre@alvh.no-ip.org>
    
  2. Re: btvacuumpage useless "orig_blkno"

    Simon Riggs <simon@2ndquadrant.com> — 2011-11-21T22:11:21Z

    On Mon, Nov 21, 2011 at 10:03 PM, Alvaro Herrera
    <alvherre@alvh.no-ip.org> wrote:
    > I just noticed that btvacuumpage has two BlockNumber parameters -- blkno
    > and orig_blkno.  The only caller passes them as the same value; the
    > header comments state that blkno would be different when recursing, but
    > actually the function implements recursion internally by way of a cute
    > "goto" trick.  So it seems to me that the orig_blkno parameter is
    > useless -- we could just remove it.
    >
    > Unless I'm completely missing something?
    
    tail recursion - read comments at bottom of the function
    
    -- 
     Simon Riggs                   http://www.2ndQuadrant.com/
     PostgreSQL Development, 24x7 Support, Training & Services
    
    
  3. Re: btvacuumpage useless "orig_blkno"

    Alvaro Herrera <alvherre@commandprompt.com> — 2011-11-21T22:19:13Z

    Excerpts from Simon Riggs's message of lun nov 21 19:11:21 -0300 2011:
    > On Mon, Nov 21, 2011 at 10:03 PM, Alvaro Herrera
    > <alvherre@alvh.no-ip.org> wrote:
    > > I just noticed that btvacuumpage has two BlockNumber parameters -- blkno
    > > and orig_blkno.  The only caller passes them as the same value; the
    > > header comments state that blkno would be different when recursing, but
    > > actually the function implements recursion internally by way of a cute
    > > "goto" trick.  So it seems to me that the orig_blkno parameter is
    > > useless -- we could just remove it.
    > >
    > > Unless I'm completely missing something?
    > 
    > tail recursion - read comments at bottom of the function
    
    Right, but we don't need to pass the value as a parameter, we can just
    save it at the start of the function, as my proposed patch does, right?
    
    -- 
    Álvaro Herrera <alvherre@commandprompt.com>
    The PostgreSQL Company - Command Prompt, Inc.
    PostgreSQL Replication, Consulting, Custom Development, 24x7 support
    
    
  4. Re: btvacuumpage useless "orig_blkno"

    Tom Lane <tgl@sss.pgh.pa.us> — 2011-11-22T02:14:58Z

    Alvaro Herrera <alvherre@commandprompt.com> writes:
    > Excerpts from Simon Riggs's message of lun nov 21 19:11:21 -0300 2011:
    >> tail recursion - read comments at bottom of the function
    
    > Right, but we don't need to pass the value as a parameter, we can just
    > save it at the start of the function, as my proposed patch does, right?
    
    If you do this, it's not really tail recursion anymore, so the comments
    need to be adjusted.  The patch sounds reasonable, but you have more
    work to do to fix the comments ...
    
    			regards, tom lane