[EMAIL PROTECTED] writes:
> CREATE TABLE AS ignores explicitly specified column names when the query contains a 
>UNION.  This is illustrated in the example 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

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html

Reply via email to