diff options
Diffstat (limited to 'src/backend/commands')
| -rw-r--r-- | src/backend/commands/sequence.c | 3 | ||||
| -rw-r--r-- | src/backend/commands/tablecmds.c | 49 | ||||
| -rw-r--r-- | src/backend/commands/view.c | 3 |
3 files changed, 24 insertions, 31 deletions
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c index 3f535ae38d..5f590f0c73 100644 --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/sequence.c,v 1.161 2009/07/16 06:33:42 petere Exp $ + * $PostgreSQL: pgsql/src/backend/commands/sequence.c,v 1.162 2009/10/13 00:53:07 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -132,6 +132,7 @@ DefineSequence(CreateSeqStmt *seq) coldef->inhcount = 0; coldef->is_local = true; coldef->is_not_null = true; + coldef->storage = 0; coldef->raw_default = NULL; coldef->cooked_default = NULL; coldef->constraints = NIL; diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index a0d3f41886..ce7d14cee6 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.302 2009/10/12 19:49:24 adunstan Exp $ + * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.303 2009/10/13 00:53:07 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -333,7 +333,7 @@ static void ATExecAddInherit(Relation rel, RangeVar *parent); static void ATExecDropInherit(Relation rel, RangeVar *parent); static void copy_relation_data(SMgrRelation rel, SMgrRelation dst, ForkNumber forkNum, bool istemp); -static const char * storage_name(char c); +static const char *storage_name(char c); /* ---------------------------------------------------------------- @@ -1102,22 +1102,25 @@ truncate_check_rel(Relation rel) CheckTableNotInUse(rel, "TRUNCATE"); } - -/*---------------- +/* * storage_name - * returns a name corresponding to a storage enum value - * For use in error messages + * returns the name corresponding to a typstorage/attstorage enum value */ static const char * storage_name(char c) { switch (c) { - case 'p': return "PLAIN"; - case 'm': return "MAIN"; - case 'x': return "EXTENDED"; - case 'e': return "EXTERNAL"; - default: return "???"; + case 'p': + return "PLAIN"; + case 'm': + return "MAIN"; + case 'x': + return "EXTENDED"; + case 'e': + return "EXTERNAL"; + default: + return "???"; } } @@ -1189,7 +1192,6 @@ MergeAttributes(List *schema, List *supers, bool istemp, List *constraints = NIL; int parentsWithOids = 0; bool have_bogus_defaults = false; - bool have_bogus_comments = false; int child_attno; static Node bogus_marker = { 0 }; /* marks conflicting defaults */ @@ -1354,7 +1356,8 @@ MergeAttributes(List *schema, List *supers, bool istemp, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("inherited column \"%s\" has a storage parameter conflict", attributeName), - errdetail("%s versus %s", storage_name(def->storage), + errdetail("%s versus %s", + storage_name(def->storage), storage_name(attribute->attstorage)))); def->inhcount++; @@ -1375,10 +1378,10 @@ MergeAttributes(List *schema, List *supers, bool istemp, def->inhcount = 1; def->is_local = false; def->is_not_null = attribute->attnotnull; + def->storage = attribute->attstorage; def->raw_default = NULL; def->cooked_default = NULL; def->constraints = NIL; - def->storage = attribute->attstorage; inhSchema = lappend(inhSchema, def); newattno[parent_attno - 1] = ++child_attno; } @@ -1525,7 +1528,8 @@ MergeAttributes(List *schema, List *supers, bool istemp, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("column \"%s\" has a storage parameter conflict", attributeName), - errdetail("%s versus %s", storage_name(def->storage), + errdetail("%s versus %s", + storage_name(def->storage), storage_name(newdef->storage)))); /* Mark the column as locally defined */ @@ -1580,20 +1584,6 @@ MergeAttributes(List *schema, List *supers, bool istemp, } } - /* Raise an error if we found conflicting comments. */ - if (have_bogus_comments) - { - foreach(entry, schema) - { - ColumnDef *def = lfirst(entry); - - if (def->cooked_default == &bogus_marker) - ereport(ERROR, - (errcode(ERRCODE_INVALID_COLUMN_DEFINITION), - errmsg("column \"%s\" inherits conflicting comments", def->colname))); - } - } - *supOids = parentOids; *supconstr = constraints; *supOidCount = parentsWithOids; @@ -3903,6 +3893,7 @@ ATPrepAddOids(List **wqueue, Relation rel, bool recurse, AlterTableCmd *cmd) cdef->inhcount = 0; cdef->is_local = true; cdef->is_not_null = true; + cdef->storage = 0; cmd->def = (Node *) cdef; } ATPrepAddColumn(wqueue, rel, recurse, cmd); diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c index e235e412ac..ab018502dc 100644 --- a/src/backend/commands/view.c +++ b/src/backend/commands/view.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/view.c,v 1.117 2009/07/16 06:33:42 petere Exp $ + * $PostgreSQL: pgsql/src/backend/commands/view.c,v 1.118 2009/10/13 00:53:07 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -124,6 +124,7 @@ DefineVirtualRelation(const RangeVar *relation, List *tlist, bool replace) def->inhcount = 0; def->is_local = true; def->is_not_null = false; + def->storage = 0; def->raw_default = NULL; def->cooked_default = NULL; def->constraints = NIL; |
