Re: PG12 change to DO UPDATE SET column references

James Coleman <jtc331@gmail.com>

From: James Coleman <jtc331@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-01-20T21:45:07Z
Lists: pgsql-hackers

Attachments

On Sat, Jan 20, 2024 at 12:59 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> James Coleman <jtc331@gmail.com> writes:
> > I do wonder if it's plausible (and sufficiently easy) to improve the
> > error message here. "column 'foo' of relation 'foo'" makes one thing
> > that you've written foo.foo, (in my real-world case the error message
> > also cut off the sql past "foo.", and so I couldn't even tell if the
> > sql was just malformed). At the very least it'd be nice to have a HINT
> > here (perhaps just when the relation and column name match).
>
> > Before I look at where it is, Is such an improvement something we'd be
> > interested in?
>
> A HINT if the bogus column name (1) matches the relation name and
> (2) is field-qualified seems plausible to me.  Then it's pretty
> likely to be a user misunderstanding about whether to write the
> relation name.

Attached is a patch to do just that. We could also add tests for
regular UPDATEs if you think that's useful.

Regards,
James Coleman

Commits

  1. Add hint about not qualifying UPDATE...SET target with relation name.