Index: trunk/glueforge/templates/psdb/metadatafromobject.tt
===================================================================
--- trunk/glueforge/templates/psdb/metadatafromobject.tt	(revision 7670)
+++ trunk/glueforge/templates/psdb/metadatafromobject.tt	(revision 9668)
@@ -1,20 +1,5 @@
 psMetadata *[% table.namespace %]MetadataFromObject(const [% table.object_name %] *object)
 {
-    psMetadata      *md;
-
-    md = psMetadataAlloc();
-[% FOREACH item = table.columns -%]
-[% IF item.type == "S32" or item.type == "F32" or item.type == "F64" -%]
-    if (!psMetadataAdd[% item.type %](md, PS_LIST_TAIL, "[% item.name %]", 0, NULL, object->[% item.name %])) {
-[% ELSIF item.type == "STR" -%]
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "[% item.name %]", 0, NULL, object->[% item.name %])) {
-[% ELSIF item.type == "BOOL" -%]
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "[% item.name %]", PS_DATA_BOOL, NULL, object->[% item.name %])) {
-[% END -%]
-        psError(PS_ERR_UNKNOWN, false, "failed to add item [% item.name %]");
-        psFree(md);
-        return NULL;
-    }
-[% END -%]
+[% INCLUDE metadata_from_struct %]
 
     return md;
