expandRTE and get_rte_attribute_type mistakenly always imputed typmod -1
authorTom Lane <[email protected]>
Sun, 29 May 2005 17:11:07 +0000 (17:11 +0000)
committerTom Lane <[email protected]>
Sun, 29 May 2005 17:11:07 +0000 (17:11 +0000)
to columns of an RTE that was a function returning RECORD with a column
definition list.  Apparently no one has tried to use non-default typmod
with a function returning RECORD before.

src/backend/parser/parse_relation.c

index 65c386a937c9c19f4309f289cafbdfb97b2232a4..40417e147379bd10c5f90559c756aa678607a887 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.79 2002/09/04 20:31:24 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.79.2.1 2005/05/29 17:11:07 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1372,7 +1372,7 @@ expandRTE(ParseState *pstate, RangeTblEntry *rte,
                            varnode = makeVar(rtindex,
                                              attnum,
                                              atttypid,
-                                             -1,
+                                             colDef->typename->typmod,
                                              sublevels_up);
 
                            *colvars = lappend(*colvars, varnode);
@@ -1631,7 +1631,7 @@ get_rte_attribute_type(RangeTblEntry *rte, AttrNumber attnum,
                    ColumnDef  *colDef = nth(attnum - 1, coldeflist);
 
                    *vartype = typenameTypeId(colDef->typename);
-                   *vartypmod = -1;
+                   *vartypmod = colDef->typename->typmod;
                }
                else
                    elog(ERROR, "Unknown kind of return type specified for function");