Re: BUG #16140: View with INSERT, DO INSTEAD, and ON CONFLICT causes an error

Bryan DiCarlo <[email protected]>
Newsgroups gmane.comp.db.postgresql.bugs
Message-ID <CAGo_416nUxAa4WAHgLn3ZCryqvM-RL7_O9QkyUFBhqn24hZ38g@mail.gmail.com>
Thanks Tom,

I changed it to EXCLUDED and it's working.

Thanks again.

Cheers,

Bryan


On Thu, Nov 28, 2019, 10:26 AM Tom Lane <[email protected]> wrote:

> PG Bug reporting form <[email protected]> writes:
> > When creating an updatable "complex" view, if an ON CONFLICT clause is
> > provided, an INSERT SELECT to that view will cause "ERROR: variable not
> > found in subplan target lists".  Removing the ON CONFLICT clause
> eliminates
> > the error message.
>
> I believe the problem is that you wrote the ON CONFLICT clause
> incorrectly:
>
> >   ON CONFLICT (slo_id, time_window, tags) DO UPDATE SET value = NEW.value
>
> You should have written "EXCLUDED.value" not "NEW.value".  There is
> a bug here, but it's that the parser accepted this rule.   I'm guessing
> that the parsing logic for ON CONFLICT didn't consider the possibility
> that NEW and OLD for a rule would already be in the range table.
>
>                         regards, tom lane
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.