Hi: I found the following code in gen_partprune_steps_internal, which looks the if-statement to be always true since list_length(results) > 1; I added an Assert(step_ids != NIL) and all the test cases passed. if the if-statement is always true, shall we remove it to avoid confusion?
gen_partprune_steps_internal(GeneratePruningStepsContext *context, if (list_length(result) > 1) { List *step_ids = NIL; foreach(lc, result) { PartitionPruneStep *step = lfirst(lc); step_ids = lappend_int(step_ids, step->step_id); } Assert(step_ids != NIL); if (step_ids != NIL) // This should always be true. { PartitionPruneStep *step; step = gen_prune_step_combine(context, step_ids, PARTPRUNE_COMBINE_INTERSECT); result = lappend(result, step); } } -- Best Regards Andy Fan