From 1c2d02c499b3b7fac1b2bbc9a7e00cc97eaa5886 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 11 Oct 2006 20:03:26 +0000 Subject: [PATCH] CREATE TABLE ... LIKE ... should mark the columns it creates with attislocal = true, since they are not really inherited but merely copied from the original table. I'm not sure if there are any cases where it makes a real difference given the existing uses of the flag, but wrong is wrong. This was fixed in passing in HEAD by the LIKE INCLUDING CONSTRAINTS patch, but never back-patched. --- src/backend/parser/analyze.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 867c68d9a5b..3043203df68 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.290.2.3 2005/02/19 19:33:42 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.290.2.4 2006/10/11 20:03:26 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1240,7 +1240,7 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt, constr = tupleDesc->constr; /* - * Insert the inherited attributes into the cxt for the new table + * Insert the copied attributes into the cxt for the new table * definition. */ for (parent_attno = 1; parent_attno <= tupleDesc->natts; @@ -1258,7 +1258,7 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt, continue; /* - * Create a new inherited column. + * Create a new column, which is marked as NOT inherited. * * For constraints, ONLY the NOT NULL constraint is inherited by the * new column definition per SQL99. @@ -1270,7 +1270,7 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt, typename->typmod = attribute->atttypmod; def->typename = typename; def->inhcount = 0; - def->is_local = false; + def->is_local = true; def->is_not_null = attribute->attnotnull; def->raw_default = NULL; def->cooked_default = NULL;