mirror of
https://github.com/postgres/postgres.git
synced 2025-08-24 09:27:52 +03:00
Document and clean up gistsplit.c.
Improve comments, rename some variables and functions, slightly simplify a couple of APIs, in an attempt to make this code readable by people other than its original author. Even though this is essentially just cosmetic, back-patch to all active branches, because otherwise it's going to make back-patching future fixes in this file very painful.
This commit is contained in:
@@ -248,20 +248,21 @@ typedef struct GISTInsertStack
|
||||
struct GISTInsertStack *parent;
|
||||
} GISTInsertStack;
|
||||
|
||||
/* Working state and results for multi-column split logic in gistsplit.c */
|
||||
typedef struct GistSplitVector
|
||||
{
|
||||
GIST_SPLITVEC splitVector; /* to/from PickSplit method */
|
||||
GIST_SPLITVEC splitVector; /* passed to/from user PickSplit method */
|
||||
|
||||
Datum spl_lattr[INDEX_MAX_KEYS]; /* Union of subkeys in
|
||||
* spl_left */
|
||||
* splitVector.spl_left */
|
||||
bool spl_lisnull[INDEX_MAX_KEYS];
|
||||
|
||||
Datum spl_rattr[INDEX_MAX_KEYS]; /* Union of subkeys in
|
||||
* spl_right */
|
||||
* splitVector.spl_right */
|
||||
bool spl_risnull[INDEX_MAX_KEYS];
|
||||
|
||||
bool *spl_equiv; /* equivalent tuples which can be freely
|
||||
* distributed between left and right pages */
|
||||
bool *spl_dontcare; /* flags tuples which could go to either side
|
||||
* of the split for zero penalty */
|
||||
} GistSplitVector;
|
||||
|
||||
typedef struct
|
||||
@@ -520,7 +521,7 @@ extern Datum gistvacuumcleanup(PG_FUNCTION_ARGS);
|
||||
/* gistsplit.c */
|
||||
extern void gistSplitByKey(Relation r, Page page, IndexTuple *itup,
|
||||
int len, GISTSTATE *giststate,
|
||||
GistSplitVector *v, GistEntryVector *entryvec,
|
||||
GistSplitVector *v,
|
||||
int attno);
|
||||
|
||||
/* gistbuild.c */
|
||||
|
Reference in New Issue
Block a user