Re: tweak to a few index tests to hits ambuildempty() routine.

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: a.kozhemyakin@postgrespro.ru
Cc: Amul Sul <sulamul@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, thomas.munro@gmail.com, tgl@sss.pgh.pa.us, noah@leadboat.com
Date: 2022-09-21T11:58:37Z
Lists: pgsql-hackers
On 2022-Sep-21, a.kozhemyakin@postgrespro.ru wrote:

> After analyzing this, I found out why we don't reach that Assert but we have
> coverage shown - firstly, it reached via another test, vacuum; secondly, it
> depends on the gcc optimization flag. We reach that Assert only when using
> -O0.
> If we build with -O2 or -Og that function is not reached (due to different
> results of the heap_prune_satisfies_vacuum() check inside
> heap_page_prune()).
> But as  the make checks mostly (including the buildfarm testing) performed
> with -O2/-Og, it looks like that after 4fb5c794e5 we have lost the coverage
> provided by the 4c51a2d1e4.

Hmm, so if we merely revert the change to gin.sql then we still won't
get the coverage back?  I was thinking that a simple change would be to
revert the change from temp to unlogged for that table, and create
another unlogged table; but maybe that's not enough.  Do we need a
better test for GIN vacuuming that works regardless of the optimization
level?

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
"Investigación es lo que hago cuando no sé lo que estoy haciendo"
(Wernher von Braun)



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Avoid loss of code coverage with unlogged-index test cases.

  2. Use --no-unlogged-table-data in t/027_stream_regress.pl.

  3. Cover brin/gin/gist/spgist ambuildempty routines in regression tests

  4. Improve test coverage of ginvacuum.c.