diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2013-02-10 11:58:15 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2013-02-10 11:58:15 -0500 |
commit | 0fd0f3688b7a8ab0b907d431cf7022098110cfc8 (patch) | |
tree | 4ece7aad6bb5ed9f2e7a2b6b49c59e5bce025249 /src/include/access/gist_private.h | |
parent | a187c96d26520695fc392edb1c8f38d86b16ef5b (diff) | |
download | postgresql-0fd0f3688b7a8ab0b907d431cf7022098110cfc8.tar.gz postgresql-0fd0f3688b7a8ab0b907d431cf7022098110cfc8.zip |
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.
Diffstat (limited to 'src/include/access/gist_private.h')
-rw-r--r-- | src/include/access/gist_private.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/include/access/gist_private.h b/src/include/access/gist_private.h index b35268508a4..c2f9031b4fe 100644 --- a/src/include/access/gist_private.h +++ b/src/include/access/gist_private.h @@ -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 */ |