diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2002-03-29 19:06:29 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2002-03-29 19:06:29 +0000 |
commit | d5e99ab4d6718e8ef515575e33fb5c6181cdcc96 (patch) | |
tree | 6c817d6358f50ae920207245c3b862b2cdd74ceb /src/backend/nodes | |
parent | 7c1ff354105e2256d7904497d8e282ccec53d2e6 (diff) | |
download | postgresql-d5e99ab4d6718e8ef515575e33fb5c6181cdcc96.tar.gz postgresql-d5e99ab4d6718e8ef515575e33fb5c6181cdcc96.zip |
pg_type has a typnamespace column; system now supports creating types
in different namespaces. Also, cleanup work on relation namespace
support: drop, alter, rename commands work for tables in non-default
namespaces.
Diffstat (limited to 'src/backend/nodes')
-rw-r--r-- | src/backend/nodes/copyfuncs.c | 14 | ||||
-rw-r--r-- | src/backend/nodes/equalfuncs.c | 14 | ||||
-rw-r--r-- | src/backend/nodes/makefuncs.c | 16 | ||||
-rw-r--r-- | src/backend/nodes/outfuncs.c | 11 |
4 files changed, 38 insertions, 17 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 2c1e5b675f9..055e3c371e2 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.173 2002/03/22 02:56:31 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.174 2002/03/29 19:06:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1637,10 +1637,11 @@ _copyTypeName(TypeName *from) { TypeName *newnode = makeNode(TypeName); - if (from->name) - newnode->name = pstrdup(from->name); + Node_Copy(from, newnode, names); + newnode->typeid = from->typeid; newnode->timezone = from->timezone; newnode->setof = from->setof; + newnode->pct_type = from->pct_type; newnode->typmod = from->typmod; Node_Copy(from, newnode, arrayBounds); @@ -2008,7 +2009,7 @@ _copyDefineStmt(DefineStmt *from) DefineStmt *newnode = makeNode(DefineStmt); newnode->defType = from->defType; - newnode->defname = pstrdup(from->defname); + Node_Copy(from, newnode, defnames); Node_Copy(from, newnode, definition); return newnode; @@ -2089,7 +2090,7 @@ _copyProcedureStmt(ProcedureStmt *from) ProcedureStmt *newnode = makeNode(ProcedureStmt); newnode->replace = from->replace; - newnode->funcname = pstrdup(from->funcname); + Node_Copy(from, newnode, funcname); Node_Copy(from, newnode, argTypes); Node_Copy(from, newnode, returnType); Node_Copy(from, newnode, withClause); @@ -2229,8 +2230,7 @@ _copyCreateDomainStmt(CreateDomainStmt *from) { CreateDomainStmt *newnode = makeNode(CreateDomainStmt); - if (from->domainname) - newnode->domainname = pstrdup(from->domainname); + Node_Copy(from, newnode, domainname); Node_Copy(from, newnode, typename); Node_Copy(from, newnode, constraints); diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index 6adc87c4040..fee607419a5 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.121 2002/03/22 02:56:31 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.122 2002/03/29 19:06:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -836,7 +836,7 @@ _equalDefineStmt(DefineStmt *a, DefineStmt *b) { if (a->defType != b->defType) return false; - if (!equalstr(a->defname, b->defname)) + if (!equal(a->defnames, b->defnames)) return false; if (!equal(a->definition, b->definition)) return false; @@ -928,7 +928,7 @@ _equalProcedureStmt(ProcedureStmt *a, ProcedureStmt *b) { if (a->replace != b->replace) return false; - if (!equalstr(a->funcname, b->funcname)) + if (!equal(a->funcname, b->funcname)) return false; if (!equal(a->argTypes, b->argTypes)) return false; @@ -1071,7 +1071,7 @@ _equalLoadStmt(LoadStmt *a, LoadStmt *b) static bool _equalCreateDomainStmt(CreateDomainStmt *a, CreateDomainStmt *b) { - if (!equalstr(a->domainname, b->domainname)) + if (!equal(a->domainname, b->domainname)) return false; if (!equal(a->typename, b->typename)) return false; @@ -1572,12 +1572,16 @@ _equalRangeSubselect(RangeSubselect *a, RangeSubselect *b) static bool _equalTypeName(TypeName *a, TypeName *b) { - if (!equalstr(a->name, b->name)) + if (!equal(a->names, b->names)) + return false; + if (a->typeid != b->typeid) return false; if (a->timezone != b->timezone) return false; if (a->setof != b->setof) return false; + if (a->pct_type != b->pct_type) + return false; if (a->typmod != b->typmod) return false; if (!equal(a->arrayBounds, b->arrayBounds)) diff --git a/src/backend/nodes/makefuncs.c b/src/backend/nodes/makefuncs.c index 649fb38c111..6d649ba9d1f 100644 --- a/src/backend/nodes/makefuncs.c +++ b/src/backend/nodes/makefuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/makefuncs.c,v 1.29 2002/03/22 02:56:32 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/makefuncs.c,v 1.30 2002/03/29 19:06:09 tgl Exp $ */ #include "postgres.h" @@ -209,3 +209,17 @@ makeRangeVar(char *schemaname, char *relname) return r; } + +/* + * makeTypeName - + * build a TypeName node for an unqualified name. + */ +TypeName * +makeTypeName(char *typnam) +{ + TypeName *n = makeNode(TypeName); + + n->names = makeList1(makeString(typnam)); + n->typmod = -1; + return n; +} diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 195db0165db..20d25c64397 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.151 2002/03/22 02:56:32 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.152 2002/03/29 19:06:09 tgl Exp $ * * NOTES * Every (plan) node in POSTGRES has an associated "out" routine which @@ -187,11 +187,14 @@ _outColumnDef(StringInfo str, ColumnDef *node) static void _outTypeName(StringInfo str, TypeName *node) { - appendStringInfo(str, " TYPENAME :name "); - _outToken(str, node->name); - appendStringInfo(str, " :timezone %s :setof %s typmod %d :arrayBounds ", + appendStringInfo(str, " TYPENAME :names "); + _outNode(str, node->names); + appendStringInfo(str, " :typeid %u :timezone %s :setof %s" + " :pct_type %s typmod %d :arrayBounds ", + node->typeid, booltostr(node->timezone), booltostr(node->setof), + booltostr(node->pct_type), node->typmod); _outNode(str, node->arrayBounds); } |