Index: trunk/glueforge/templates/psdb/createtable.tt
===================================================================
--- trunk/glueforge/templates/psdb/createtable.tt	(revision 4325)
+++ trunk/glueforge/templates/psdb/createtable.tt	(revision 4336)
@@ -13,9 +13,21 @@
 END;
 -%]
-[% IF item.mtype == "PS_META_STR" -%]
-    psMetadataAdd(md, PS_LIST_TAIL, "[% item.name %]", [% item.mtype %], [% item.comment %], "[% item.value %]");
-[% ELSE -%]
-    psMetadataAdd(md, PS_LIST_TAIL, "[% item.name %]", [% item.mtype %], [% item.comment %], [% item.value %]);
+[% IF item.type == "S32" or item.type == "F32" or item.type == "F64" -%]
+    if (!psMetadataAdd[% item.type %](md, PS_LIST_TAIL, "[% item.name %]", [% item.comment %], [% item.value %])) {
+[% ELSIF item.type == "STR" -%]
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "[% item.name %]", [% item.comment %], "[% item.value %]")) {
+[% ELSIF item.type == "BOOL" -%]
+[% IF item.value == 1;
+    SET item.value = "true";
+ELSE;
+    SET item.value = "false";
+END;
+-%]
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "[% item.name %]", PS_META_BOOL, [% item.comment %], [% item.value %])) {
 [% END -%]
+        // psError(); something bad happened
+        psFree(md);
+        return NULL;
+    }
 [% END -%]
     status = psDBCreateTable(dbh, [% namespace FILTER upper %]_TABLE_NAME, md);
