Re: Fix gistkillitems & add regression test to microvacuum

From: Kirill Reshke <reshkekirill(at)gmail(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Fix gistkillitems & add regression test to microvacuum
Date: 2026-01-15 07:46:44
Message-ID: CALdSSPgPs=gKWkKN0=4yBd49FBY=ijxBz4YGV64vfVMK7YQhpw@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, 15 Jan 2026 at 12:00, Kirill Reshke <reshkekirill(at)gmail(dot)com> wrote:
>
> Hi hackers.
>
> While looking at [0] I noticed that XLOG_GIST_DELETE & XLOG_GIST_PAGE_DELETE
> records are not covered.
>
> This thread addresses XLOG_GIST_DELETE, which is also known as a
> microvacuum feature.
>
> test.sql contains regression test that trigger this code to be
> exercised in stream_regress.pl TAP test.
>
> Test is as follows: we create a gist index on the table, then we
> insert exactly 407 records, making the root page full (next insert
> will trigger page split). Then I delete all tuples from relation and
> trigger Index Only scan to do kill-on-select (killtuples). It marks
> gist 0 page (which is root and is leaf) as has_garbage. Then, the next
> insertion triggers xlog_gist_delete record.
>
> To verify this I use pageinspect and pg_waldimp (locally). Also this
> test is dependent on block size being 8192 which is not good.
>
>
> And all of this does not work actually without v1-0001, because there
> is a bug in GiST which does not call gistkillitmes for the very first
> (root) page.
>
> There is also test2.sql which inserts a single tuple, not 407. It can
> be used to verify v1-0001.
>
> [0] coverage.postgresql.org/src/backend/access/gist/gistxlog.c.gcov.html
>
>
> --
> Best regards,
> Kirill Reshke

From cf feedback it turns out we already have an isolation test for
this, and it does almost exactly the same.
And more, it fails.
Will try to fix

--
Best regards,
Kirill Reshke

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dmitry Dolgov 2026-01-15 07:48:40 Re: [[BUG] pg_stat_statements crashes with var and non-var expressions in IN clause
Previous Message Shinya Kato 2026-01-15 07:23:46 Re: file_fdw: Support multi-line HEADER option.