Re: Update count mismatch - internal error - Mailing list pgsql-hackers

From Peter Geoghegan
Subject Re: Update count mismatch - internal error
Date
Msg-id CAM3SWZTj5jAQigMgHpTakdenG_tSAEpU3V5FTcpxJr_NHpwjaQ@mail.gmail.com
Whole thread Raw
In response to Update count mismatch - internal error  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On Sat, Sep 19, 2015 at 5:15 PM, Andres Freund <andres@anarazel.de> wrote:
> postgres[14993][1]=# CREATE TABLE mismatch(a int, b int);
> CREATE TABLE
> postgres[14993][1]=# UPDATE mismatch SET a = mismatch.*;
> ERROR:  XX000: UPDATE target count mismatch --- internal error
> LOCATION:  transformUpdateTargetList, analyze.c:2103
>
> Seems to be a longer standing thing, going at least back to 9.0.

I noticed this myself.

Arguably, the only problem is that this is reported as an internal
"can't happen" error. We're already tightening up the use of
elog(ERROR, ...) to be strictly limited to cases that are actually
"can't happen" (assuming there are no bugs and no data corruption). We
should do the same here.

I doubt it's worth preserving this message for the benefit of
theoretical buggy code paths that raise it for some other reason.

-- 
Peter Geoghegan



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Update count mismatch - internal error
Next
From: Peter Geoghegan
Date:
Subject: Re: ON CONFLICT issues around whole row vars,