*
* We don't try to bias our choice of split point to make it more
* likely that _bt_truncate() can truncate away more attributes,
- * whereas the split point passed to _bt_split() is chosen much
+ * whereas the split point used within _bt_split() is chosen much
* more delicately. Suffix truncation is mostly useful because it
* improves space utilization for workloads with random
* insertions. It doesn't seem worthwhile to add logic for
}
/*
- * Subroutine to get a lastleft IndexTuple for a spit point from page
+ * Subroutine to get a lastleft IndexTuple for a split point from page
*/
static inline IndexTuple
_bt_split_lastleft(FindSplitData *state, SplitPoint *split)
}
/*
- * Subroutine to get a firstright IndexTuple for a spit point from page
+ * Subroutine to get a firstright IndexTuple for a split point from page
*/
static inline IndexTuple
_bt_split_firstright(FindSplitData *state, SplitPoint *split)
* BTStackData -- As we descend a tree, we push the location of pivot
* tuples whose downlink we are about to follow onto a private stack. If
* we split a leaf, we use this stack to walk back up the tree and insert
- * data into its parent page at the correct location. We may also have to
- * recursively split a grandparent of the leaf page (and so on).
+ * data into its parent page at the correct location. We also have to
+ * recursively insert into the grandparent page if and when the parent page
+ * splits. Our private stack can become stale due to concurrent page
+ * splits and page deletions, but it should never give us an irredeemably
+ * bad picture.
*/
typedef struct BTStackData
{