Re: Bug #691: CREATE TABLE AS ignores explicit column names with UNION
От | Tom Lane |
---|---|
Тема | Re: Bug #691: CREATE TABLE AS ignores explicit column names with UNION |
Дата | |
Msg-id | 15643.1023934286@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Bug #691: CREATE TABLE AS ignores explicit column names with UNION (pgsql-bugs@postgresql.org) |
Список | pgsql-bugs |
pgsql-bugs@postgresql.org writes: > CREATE TABLE AS ignores explicitly specified column names when the query contains a UNION. This is illustrated in theexample below. Good catch! If you need a fix immediately, I think the attached patch will do the trick. (Line numbers are for current sources, but it should patch cleanly into 7.2.*) I have not tested it extensively though, so there might be side-effects... regards, tom lane *** src/backend/parser/analyze.c.orig Tue May 28 18:15:42 2002 --- src/backend/parser/analyze.c Wed Jun 12 21:49:56 2002 *************** *** 2212,2219 **** --- 2212,2227 ---- qry->isBinary = FALSE; } + /* + * Any column names from CREATE TABLE AS need to be attached to both the + * top level and the leftmost subquery. We do not do this earlier + * because we do *not* want the targetnames list to be affected. + */ if (intoColNames) + { applyColumnNames(qry->targetList, intoColNames); + applyColumnNames(leftmostQuery->targetList, intoColNames); + } /* * As a first step towards supporting sort clauses that are
В списке pgsql-bugs по дате отправления: