On Tue, 17 Jun 2025 at 06:27, Peter Eisentraut <peter@eisentraut.org> wrote:
>
> On 10.04.25 11:46, Amit Langote wrote:
> >
> > On Thu, Apr 10, 2025 at 5:58 PM jian he <jian.universality@gmail.com> wrote:
> >>
> >> in function, rewriteTargetListIU we have:
> >>
> >> /*
> >> * Can only insert DEFAULT into generated columns, regardless of
> >> * any OVERRIDING clauses.
> >> */
> >> if (att_tup->attgenerated && !apply_default)
> >>
> >> I think the above comments are wrong, since there are no
> >> OVERRIDING clauses for the generated column.
> >
> > Hmm, I'm not sure that is quite right. See 17958972fe3b which added
> > the comment, especially the test cases that it adds.
>
> Jian is right, there are no OVERRIDING clauses for generated columns,
> and the shown code also doesn't check for them, so the comment doesn't
> match the code. I suspect that commit 17958972fe3b slightly confused
> generated and identity columns in this case. I suggest to remove the
> half-sentence "regardless of ...".
>
Hmm, to me that comment seems quite clear in the context of the
surrounding code. It's making the point that OVERRIDING clauses have
no effect on what can be inserted into generated columns, unlike the
identity column handling code that immediately precedes it.
Perhaps there's an alternate wording that would make that meaning more
explicit, rather than just removing that part of the comment, which
might leave people wondering why that code block isn't checking
"override", when the preceding code blocks do.
Regards,
Dean