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]; }