Fix Brin Private Spool Initialization (src/backend/access/brin/brin.c)

Ranier Vilela <ranier.vf@gmail.com>

From: Ranier Vilela <ranier.vf@gmail.com>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2023-12-26T18:10:30Z
Lists: pgsql-hackers

Attachments

Hi,

The commit b437571 <http://b437571714707bc6466abde1a0af5e69aaade09c> I
think has an oversight.
When allocate memory and initialize private spool in function:
_brin_leader_participate_as_worker

The behavior is the bs_spool (heap and index fields)
are left empty.

The code affected is:
  buildstate->bs_spool = (BrinSpool *) palloc0(sizeof(BrinSpool));
- buildstate->bs_spool->heap = buildstate->bs_spool->heap;
- buildstate->bs_spool->index = buildstate->bs_spool->index;
+ buildstate->bs_spool->heap = heap;
+ buildstate->bs_spool->index = index;

Is the fix correct?

best regards,
Ranier Vilela

Commits

  1. Minor cleanup of the BRIN parallel build code

  2. Allow parallel CREATE INDEX for BRIN indexes