]> granicus.if.org Git - postgresql/commitdiff
Dept of second thoughts: keep aliasp_item in sync with tlistitem.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 27 Oct 2017 22:16:24 +0000 (18:16 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 27 Oct 2017 22:16:24 +0000 (18:16 -0400)
Commit d5b760ecb wasn't quite right, on second thought: if the
caller didn't ask for column names then it would happily emit
more Vars than if the caller did ask for column names.  This
is surely not a good idea.  Advance the aliasp_item whether or
not we're preparing a colnames list.

src/backend/parser/parse_relation.c

index e89bebfcc324aaa24fe5c14e8cbe6320624d559d..6acc21dfe6a915a2f418eab6595ec760768160a6 100644 (file)
@@ -2221,7 +2221,6 @@ expandRTE(RangeTblEntry *rte, int rtindex, int sublevels_up,
                                                char       *label = strVal(lfirst(aliasp_item));
 
                                                *colnames = lappend(*colnames, makeString(pstrdup(label)));
-                                               aliasp_item = lnext(aliasp_item);
                                        }
 
                                        if (colvars)
@@ -2237,6 +2236,8 @@ expandRTE(RangeTblEntry *rte, int rtindex, int sublevels_up,
 
                                                *colvars = lappend(*colvars, varnode);
                                        }
+
+                                       aliasp_item = lnext(aliasp_item);
                                }
                        }
                        break;