Re: heapgettup refactoring

Поиск
Список
Период
Сортировка
От David Rowley
Тема Re: heapgettup refactoring
Дата
Msg-id CAApHDvo12JG5VHLBLOYU_dcvg4qS+bngV6QMwu9+X4JHA7FohQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: heapgettup refactoring  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Ответы Re: heapgettup refactoring  (Melanie Plageman <melanieplageman@gmail.com>)
Список pgsql-hackers
On Thu, 19 Jan 2023 at 00:04, Peter Eisentraut
<peter.eisentraut@enterprisedb.com> wrote:
> In your v2 patch, you remove these assertions:
>
> -       /* check that rs_cindex is in sync */
> -       Assert(scan->rs_cindex < scan->rs_ntuples);
> -       Assert(lineoff == scan->rs_vistuples[scan->rs_cindex]);
>
> Is that intentional?
>
> I don't see any explanation, or some other equivalent code appearing
> elsewhere to replace this.

I guess it's because those asserts are not relevant unless
heapgettup_no_movement() is being called from heapgettup_pagemode().
Maybe they can be put back along the lines of:

Assert((scan->rs_base.rs_flags & SO_ALLOW_PAGEMODE) == 0 ||
scan->rs_cindex < scan->rs_ntuples);
Assert((scan->rs_base.rs_flags & SO_ALLOW_PAGEMODE) == 0 || lineoff ==
scan->rs_vistuples[scan->rs_cindex]);

but it probably would be cleaner to just do an: if
(scan->rs_base.rs_flags & SO_ALLOW_PAGEMODE) { Assert(...);
Assert(...}; }

The only issue I see with that is that we don't seem to have anywhere
in the regression tests that call heapgettup_no_movement() when
rs_flags have SO_ALLOW_PAGEMODE. At least, adding an elog(NOTICE) to
heapgettup() just before calling heapgettup_no_movement() does not
seem to cause make check to fail.  I wonder if any series of SQL
commands would allow us to call heapgettup_no_movement() from
heapgettup()?

I think heapgettup_no_movement() also needs a header comment more
along the lines of:

/*
 * heapgettup_no_movement
 *        Helper function for NoMovementScanDirection direction for
heapgettup() and
 *        heapgettup_pagemode.
 */

I pushed the pgindent stuff that v5-0001 did along with some additions
to typedefs.list so that further runs could be done more easily as
changes are made to these patches.

David



В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Drouvot, Bertrand"
Дата:
Сообщение: Re: Minimal logical decoding on standbys
Следующее
От: Dilip Kumar
Дата:
Сообщение: Re: New strategies for freezing, advancing relfrozenxid early