On Wed, Aug 1, 2018 at 7:15 PM, Amit Langote
<langote_amit...@lab.ntt.co.jp> wrote:
> create table foo (a int unique, b text);
> create view foo_view as select b, a+1 as c, a from foo;
>
> explain insert into foo_view (a, b) select 1, 2 on conflict (a) do update
> set b = excluded.b where excluded.c > 0;

> IOW, the EXCLUDED pseudo-relation should only allow referencing the
> columns present in the underlying physical relation.  Thoughts?

EXCLUDED represents the values that the user attempted to insert, so
it's arguably useful that EXCLUDED.c is accessible here, even though
the target rel doesn't have a "c" column.

Do you have some particular practical problem in mind here, or are you
just concerned about the semantics being exactly consistent?

-- 
Peter Geoghegan

Reply via email to