Обсуждение: btvacuumpage useless "orig_blkno"

Поиск
Список
Период
Сортировка

btvacuumpage useless "orig_blkno"

От
Alvaro Herrera
Дата:
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>

Вложения

Re: btvacuumpage useless "orig_blkno"

От
Simon Riggs
Дата:
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


Re: btvacuumpage useless "orig_blkno"

От
Alvaro Herrera
Дата:
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


Re: btvacuumpage useless "orig_blkno"

От
Tom Lane
Дата:
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