Re: refactor ExecInitPartitionInfo - Mailing list pgsql-hackers

From jian he
Subject Re: refactor ExecInitPartitionInfo
Date
Msg-id CACJufxGcUztOYcCj85o15YT68qPY3qpwUtdndqDgOs_Sps6Cow@mail.gmail.com
Whole thread
In response to refactor ExecInitPartitionInfo  (jian he <jian.universality@gmail.com>)
Responses Re: refactor ExecInitPartitionInfo
List pgsql-hackers
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/

Attachment

pgsql-hackers by date:

Previous
From: "David G. Johnston"
Date:
Subject: Partial Mode in Aggregate Functions
Next
From: Tom Lane
Date:
Subject: Re: generating function default settings from pg_proc.dat