Alexander Korotkov <[email protected]> writes:
> On Tue, Apr 9, 2024 at 5:12 AM Tom Lane <[email protected]> wrote:
>> * OrClauseGroupKey is not a Node type, so why does it have
>> a NodeTag? I wonder what value will appear in that field,
>> and what will happen if the struct is passed to any code
>> that expects real Nodes.
> I used that to put both not-subject-of-transform nodes together with
> hash entries into the same list. This is used to save the order of
> clauses. I think this is an important property, and I have already
> expressed it in [1].
What exactly is the point of having a NodeTag in the struct though?
If you don't need it to be a valid Node, that seems pointless and
confusing. We certainly have plenty of other lists that contain
plain structs without tags, so I don't buy that the List
infrastructure is making you do that.
regards, tom lane