(unnamed)
text/plain
diff --git a/src/backend/executor/nodeWindowAgg.c b/src/backend/executor/nodeWindowAgg.c
index e46a3dd1b7..4a5a6fbf07 100644
--- a/src/backend/executor/nodeWindowAgg.c
+++ b/src/backend/executor/nodeWindowAgg.c
@@ -4148,9 +4148,15 @@ int
get_reduced_frame_map(WindowAggState *winstate, int64 pos)
{
Assert(winstate->reduced_frame_map != NULL);
+ Assert(pos >= 0);
- if (pos < 0 || pos >= winstate->alloc_sz)
- elog(ERROR, "wrong pos: " INT64_FORMAT, pos);
+ /*
+ * If pos is not in the reduced frame map, it means that any info
+ * regarding the pos has not been registered yet. So we return
+ * RF_NOT_DETERMINED.
+ */
+ if (pos >= winstate->alloc_sz)
+ return RF_NOT_DETERMINED;
return winstate->reduced_frame_map[pos];
}