GiST secondary split - Mailing list pgsql-hackers

From Peter Griggs
Subject GiST secondary split
Date
Msg-id CACEwj4pQ3fycFe2sUC_wK8YC4RjKbRieZyFt1Zxmbr0czytU4g@mail.gmail.com
Whole thread Raw
Responses Re: GiST secondary split
List pgsql-hackers
I am hacking some GIST code for a research project and wanted clarification about what exactly a secondary split is in GIST. More specifically I am wondering why the supportSecondarySplit function (which is in src/backend/access/gist/gistsplit.c) can assume that the data is currently on the left side in order to swap it.

/*
* Clean up when we did a secondary split but the user-defined PickSplit
* method didn't support it (leaving spl_ldatum_exists or spl_rdatum_exists
* true).
*
* We consider whether to swap the left and right outputs of the secondary
* split; this can be worthwhile if the penalty for merging those tuples into
* the previously chosen sets is less that way.
*
* In any case we must update the union datums for the current column by
* adding in the previous union keys (oldL/oldR), since the user-defined
* PickSplit method didn't do so.
*/
static void
supportSecondarySplit(Relation r, GISTSTATE *giststate, int attno,
GIST_SPLITVEC *sv, Datum oldL, Datum oldR)
{

Best,
Peter

--
Peter Griggs
Masters of Engineering (Meng) in Computer Science
Massachusetts Institute of Technology | 2020

pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: Add FOREIGN to ALTER TABLE in pg_dump
Next
From: Thomas Munro
Date:
Subject: Re: Should we add xid_current() or a int8->xid cast?