Re: BUG #16140: View with INSERT, DO INSTEAD, and ON CONFLICT causesan error
| От | Bryan DiCarlo |
|---|---|
| Тема | Re: BUG #16140: View with INSERT, DO INSTEAD, and ON CONFLICT causesan error |
| Дата | |
| Msg-id | CAGo_416nUxAa4WAHgLn3ZCryqvM-RL7_O9QkyUFBhqn24hZ38g@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: BUG #16140: View with INSERT, DO INSTEAD, and ON CONFLICT causes an error (Tom Lane <tgl@sss.pgh.pa.us>) |
| Список | pgsql-bugs |
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 <tgl@sss.pgh.pa.us> wrote:
PG Bug reporting form <noreply@postgresql.org> 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
В списке pgsql-bugs по дате отправления: