summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMelanie Plageman <melanieplageman@gmail.com>2025-11-25 16:39:56 -0500
committerMelanie Plageman <melanieplageman@gmail.com>2025-11-25 16:41:29 -0500
commitcd38b7e77315c729ea1e52ca7b8bb0d7c20d2a3b (patch)
tree27b85cccd690e1063b916bb21e0791a05796f87b /src
parent3b9c118920580b97d0f6f618954876227a50a14a (diff)
Assert that cutoffs are provided if freezing will be attemptedHEADorigin/masterorigin/HEADmaster
heap_page_prune_and_freeze() requires the caller to initialize PruneFreezeParams->cutoffs so that the function can correctly evaluate whether tuples should be frozen. This requirement previously existed only in comments and was easy to miss, especially after “cutoffs” was converted from a direct function parameter to a field of the newly introduced PruneFreezeParams struct (added in 1937ed70621). Adding an assert makes this requirement explicit and harder to violate. Also, fix a minor typo while we're at it. Author: Chao Li <li.evan.chao@gmail.com> Reviewed-by: Melanie Plageman <melanieplageman@gmail.com> Discussion: https://postgr.es/m/0AC177F5-5E26-45EE-B273-357C51212AC5%40gmail.com
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/heap/pruneheap.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c
index 0d6311088ea..ac958d86374 100644
--- a/src/backend/access/heap/pruneheap.c
+++ b/src/backend/access/heap/pruneheap.c
@@ -461,7 +461,7 @@ heap_page_will_freeze(Relation relation, Buffer buffer,
* 'new_relmin_mxid' arguments are required when freezing. When
* HEAP_PAGE_PRUNE_FREEZE option is passed, we also set presult->all_visible
* and presult->all_frozen after determining whether or not to
- * opporunistically freeze, to indicate if the VM bits can be set. They are
+ * opportunistically freeze, to indicate if the VM bits can be set. They are
* always set to false when the HEAP_PAGE_PRUNE_FREEZE option is not passed,
* because at the moment only callers that also freeze need that information.
*
@@ -504,6 +504,9 @@ heap_page_prune_and_freeze(PruneFreezeParams *params,
prstate.vistest = params->vistest;
prstate.mark_unused_now =
(params->options & HEAP_PAGE_PRUNE_MARK_UNUSED_NOW) != 0;
+
+ /* cutoffs must be provided if we will attempt freezing */
+ Assert(!(params->options & HEAP_PAGE_PRUNE_FREEZE) || params->cutoffs);
prstate.attempt_freeze = (params->options & HEAP_PAGE_PRUNE_FREEZE) != 0;
prstate.cutoffs = params->cutoffs;