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 >