diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-07-05 23:12:09 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-07-05 23:12:09 +0000 |
commit | 40f64064ff56c3118d156ba83df72b1779415a8a (patch) | |
tree | d318bf6c8e6e85a15d2cd6e997ee02bf233dd181 /src/backend/commands/command.c | |
parent | 282713a836d5dfe3dcefeaa6a6cedf5f000bdb09 (diff) | |
download | postgresql-40f64064ff56c3118d156ba83df72b1779415a8a.tar.gz postgresql-40f64064ff56c3118d156ba83df72b1779415a8a.zip |
Update textin() and textout() to new fmgr style. This is just phase
one of updating the whole text datatype, but there are so dang many
calls of these two routines that it seems worth a separate commit.
Diffstat (limited to 'src/backend/commands/command.c')
-rw-r--r-- | src/backend/commands/command.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/backend/commands/command.c b/src/backend/commands/command.c index e3847ab5f4d..6648e66f4e3 100644 --- a/src/backend/commands/command.c +++ b/src/backend/commands/command.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.87 2000/07/05 16:17:38 wieck Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.88 2000/07/05 23:11:09 tgl Exp $ * * NOTES * The PerformAddAttribute() code, like most of the relation @@ -788,7 +788,6 @@ RemoveColumnReferences(Oid reloid, int attnum, bool checkonly, HeapTuple reltup) HeapTuple htup, indexTuple; Form_pg_index index; - Form_pg_relcheck relcheck; Form_pg_class pgcform = (Form_pg_class) NULL; int i; bool checkok = true; @@ -807,13 +806,13 @@ RemoveColumnReferences(Oid reloid, int attnum, bool checkonly, HeapTuple reltup) while (HeapTupleIsValid(htup = systable_getnext(sysscan))) { + Form_pg_relcheck relcheck; char *ccbin; Node *node; relcheck = (Form_pg_relcheck) GETSTRUCT(htup); - ccbin = textout(&relcheck->rcbin); - if (!ccbin) - continue; + ccbin = DatumGetCString(DirectFunctionCall1(textout, + PointerGetDatum(&relcheck->rcbin))); node = stringToNode(ccbin); pfree(ccbin); if (find_attribute_in_node(node, attnum)) @@ -1322,10 +1321,12 @@ AlterTableCreateToastTable(const char *relationName, bool silent) BYTEAOID, -1, 0, false); - /* XXX what if owning relation is temp? need we mark toasttable too? */ - /* XXX How do we know? No naming collisions possible because names */ - /* are OID based. And toast table disappears when master table */ - /* is destroyed. So what is it good for anyway? Jan */ + /* + * Note: the toast relation is considered a "normal" relation even if + * its master relation is a temp table. There cannot be any naming + * collision, and the toast rel will be destroyed when its master is, + * so there's no need to handle the toast rel as temp. + */ heap_create_with_catalog(toast_relname, tupdesc, RELKIND_TOASTVALUE, false, true); @@ -1399,7 +1400,7 @@ AlterTableCreateToastTable(const char *relationName, bool silent) heap_freetuple(reltup); /* - * Close relatons and make changes visible + * Close relations and make changes visible */ heap_close(class_rel, NoLock); heap_close(rel, NoLock); |