mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Repair for bug #691 --- CREATE TABLE AS column aliases fail to be
applied when the select is a UNION (or other set-operation). An alternative route to a fix would be to leave analyze.c alone and change plan_set_operations in prepunion.c to take column names from the topmost targetlist. But I am not sure that would work in all cases. This patch seems the minimum-risk fix.
This commit is contained in:
parent
2ed878d31d
commit
59c325bb73
@ -6,7 +6,7 @@
|
||||
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.235 2002/05/28 22:15:42 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.236 2002/06/13 02:04:46 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -2212,8 +2212,16 @@ transformSetOperationStmt(ParseState *pstate, SelectStmt *stmt)
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user