diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2002-09-22 19:42:52 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2002-09-22 19:42:52 +0000 |
commit | c328b6dd8bd85d91a0fd465c30b0bb352ea51e2b (patch) | |
tree | 1e519e14923a8f0021b4ee1ac08dcf619ada1f5d /src/backend/nodes | |
parent | 634e440b582e9b4dcf7d7626964c9f0767dd7f70 (diff) | |
download | postgresql-c328b6dd8bd85d91a0fd465c30b0bb352ea51e2b.tar.gz postgresql-c328b6dd8bd85d91a0fd465c30b0bb352ea51e2b.zip |
Replace pg_attribute.attisinherited with attislocal and attinhcount
columns, to allow more correct behavior in multiple-inheritance cases.
Patch by Alvaro Herrera, review by Tom Lane.
Diffstat (limited to 'src/backend/nodes')
-rw-r--r-- | src/backend/nodes/copyfuncs.c | 5 | ||||
-rw-r--r-- | src/backend/nodes/equalfuncs.c | 6 | ||||
-rw-r--r-- | src/backend/nodes/outfuncs.c | 7 | ||||
-rw-r--r-- | src/backend/nodes/readfuncs.c | 12 |
4 files changed, 19 insertions, 11 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 73e240aca7c..bce849e4ec5 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -15,7 +15,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.212 2002/09/18 21:35:20 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.213 2002/09/22 19:42:51 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1732,7 +1732,8 @@ _copyColumnDef(ColumnDef *from) if (from->colname) newnode->colname = pstrdup(from->colname); Node_Copy(from, newnode, typename); - newnode->is_inherited = from->is_inherited; + newnode->inhcount = from->inhcount; + newnode->is_local = from->is_local; newnode->is_not_null = from->is_not_null; Node_Copy(from, newnode, raw_default); if (from->cooked_default) diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index 8c5d6a0337a..82d4fc6ab63 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -20,7 +20,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.159 2002/09/18 21:35:20 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.160 2002/09/22 19:42:51 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1769,7 +1769,9 @@ _equalColumnDef(ColumnDef *a, ColumnDef *b) return false; if (!equal(a->typename, b->typename)) return false; - if (a->is_inherited != b->is_inherited) + if (a->inhcount != b->inhcount) + return false; + if (a->is_local != b->is_local) return false; if (a->is_not_null != b->is_not_null) return false; diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index fde42291691..364aa774ada 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.174 2002/09/18 21:35:21 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.175 2002/09/22 19:42:51 tgl Exp $ * * NOTES * Every (plan) node in POSTGRES has an associated "out" routine which @@ -176,8 +176,9 @@ _outColumnDef(StringInfo str, ColumnDef *node) _outToken(str, node->colname); appendStringInfo(str, " :typename "); _outNode(str, node->typename); - appendStringInfo(str, " :is_inherited %s :is_not_null %s :raw_default ", - booltostr(node->is_inherited), + appendStringInfo(str, " :inhcount %d :is_local %s :is_not_null %s :raw_default ", + node->inhcount, + booltostr(node->is_local), booltostr(node->is_not_null)); _outNode(str, node->raw_default); appendStringInfo(str, " :cooked_default "); diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index a4f0c81fa1e..fc4bb97e4a7 100644 --- a/src/backend/nodes/readfuncs.c +++ b/src/backend/nodes/readfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.133 2002/09/18 21:35:21 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.134 2002/09/22 19:42:51 tgl Exp $ * * NOTES * Most of the read functions for plan nodes are tested. (In fact, they @@ -1526,9 +1526,13 @@ _readColumnDef(void) token = pg_strtok(&length); /* eat :typename */ local_node->typename = nodeRead(true); /* now read it */ - token = pg_strtok(&length); /* eat :is_inherited */ - token = pg_strtok(&length); /* get :is_inherited */ - local_node->is_inherited = strtobool(token); + token = pg_strtok(&length); /* eat :inhcount */ + token = pg_strtok(&length); /* get :inhcount */ + local_node->inhcount = atoi(token); + + token = pg_strtok(&length); /* eat :is_local */ + token = pg_strtok(&length); /* get :is_local */ + local_node->is_local = strtobool(token); token = pg_strtok(&length); /* eat :is_not_null */ token = pg_strtok(&length); /* get :is_not_null */ |