On Fri, Nov 28, 2025 at 7:00 PM jian he <jian.universality@gmail.com> wrote:
>
> hi.
>
> I noticed the following code pattern repeated several times in
> ExecInitPartitionInfo.
> ```
> if (part_attmap == NULL)
> build_attrmap_by_name(RelationGetDescr(partrel),
> RelationGetDescr(firstResultRel),
> false);
> ```
>
> we can consolidated into one, like:
>
> + if (node != NULL &&
> + (list_length(node->withCheckOptionLists) > 0 ||
> + list_length(node->returningLists) > 0 ||
> + node->onConflictAction != ONCONFLICT_NONE ||
> + node->operation == CMD_MERGE))
> + {
> + part_attmap =
> + build_attrmap_by_name(RelationGetDescr(partrel),
> + RelationGetDescr(firstResultRel),
> + false);
> + }
> +
>
> + if (node != NULL &&
> + (list_length(node->withCheckOptionLists) > 0 ||
> + list_length(node->returningLists) > 0 ||
> + node->onConflictAction != ONCONFLICT_NONE ||
> + node->operation == CMD_MERGE))
V1 is way too complicated.
IMHO, we can just do
if (node != NULL)
part_attmap = build_attrmap_by_name(RelationGetDescr(partrel),
RelationGetDescr(firstResultRel),
false);
We have now consolidated five uses of build_attrmap_by_name into one.
--
jian
https://www.enterprisedb.com/