Oleg Broytmann <phd@sun.med.ru> writes:
> ran=> create table test1 (n int default nextval('seq_test'), t text);
> ran=> insert into test1 ("t") select distinct src from test_source;
> [ doesn't work right ]
My, that's an interesting case. I think that fits right in with my
remark yesterday that the SELECT inside an INSERT ... SELECT needs
to have a targetlist that's separate from the INSERT's list. As it
stands, we form a targetlist representing the set of values that need
to be inserted into the target table --- and then the DISTINCT pass
runs on those tuples :-(, because there is nothing else for it to
run on.
In short, this is not a trivial thing to fix. We need multilevel
query trees...
regards, tom lane