aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_utilcmd.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2010-02-03 05:46:37 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2010-02-03 05:46:37 +0000
commit47c5b8f5588da67a95dca8cb14b2bc1b7f291e15 (patch)
treed7735b5fdb640f71f4e482ba8771481f38dd8e92 /src/backend/parser/parse_utilcmd.c
parent45c88a55c2845a8f67934fa17ac9256f3a7d799f (diff)
downloadpostgresql-47c5b8f5588da67a95dca8cb14b2bc1b7f291e15.tar.gz
postgresql-47c5b8f5588da67a95dca8cb14b2bc1b7f291e15.zip
Fix unwarranted assumption that a cached rowtype would stick around
for the lifespan of the CreateStmt. Per buildfarm member jaguar.
Diffstat (limited to 'src/backend/parser/parse_utilcmd.c')
-rw-r--r--src/backend/parser/parse_utilcmd.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c
index bf455701e33..f2b29d327c7 100644
--- a/src/backend/parser/parse_utilcmd.c
+++ b/src/backend/parser/parse_utilcmd.c
@@ -19,7 +19,7 @@
* Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/parser/parse_utilcmd.c,v 2.37 2010/01/28 23:21:12 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_utilcmd.c,v 2.38 2010/02/03 05:46:37 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -822,10 +822,10 @@ transformOfType(ParseState *pstate, CreateStmtContext *cxt, TypeName *ofTypename
tupdesc = lookup_rowtype_tupdesc(ofTypeId, -1);
for (i = 0; i < tupdesc->natts; i++)
{
- ColumnDef *n = makeNode(ColumnDef);
Form_pg_attribute attr = tupdesc->attrs[i];
+ ColumnDef *n = makeNode(ColumnDef);
- n->colname = NameStr(attr->attname);
+ n->colname = pstrdup(NameStr(attr->attname));
n->typeName = makeTypeNameFromOid(attr->atttypid, attr->atttypmod);
n->constraints = NULL;
n->is_local = true;