Index: /trunk/glueforge/templates/psdb/createtable.tt
===================================================================
--- /trunk/glueforge/templates/psdb/createtable.tt	(revision 9657)
+++ /trunk/glueforge/templates/psdb/createtable.tt	(revision 9658)
@@ -1,8 +1,5 @@
 bool [% table.namespace %]CreateTable(psDB *dbh)
 {
-    psMetadata      *md;
-    bool            status;
-
-    md = psMetadataAlloc();
+    psMetadata *md = psMetadataAlloc();
 [% FOREACH item = table.columns -%]
 [% IF item.comment;
@@ -12,16 +9,12 @@
 END;
 -%]
-[% IF item.type == "S32" or item.type == "F32" or item.type == "F64" -%]
-    if (!psMetadataAdd[% item.type %](md, PS_LIST_TAIL, "[% item.name %]", 0, [% item.comment %], [% item.value %])) {
-[% ELSIF item.type == "STR" -%]
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "[% item.name %]", 0, [% 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_DATA_BOOL, [% item.comment %], [% item.value %])) {
+[% IF item.type == "STR" -%]
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "[% item.name %]", [% item.mtype %], [% item.comment %], "[% item.value %]")) {
+[% ELSIF item.mtype == "PS_DATA_TIME" -%]
+    [% item.ctype %] [% item.name %] = psTimeFromISO("[% item.value %]", [% item.timetype %]);
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "[% item.name %]", [% item.mtype %], [% item.comment %], [% item.name %])) {
+        psFree([% item.name %]);
+[% ELSE -%]
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "[% item.name %]", [% item.mtype %], [% item.comment %], [% item.value %])) {
 [% END -%]
         psError(PS_ERR_UNKNOWN, false, "failed to add item [% item.name %]");
@@ -31,5 +24,5 @@
 [% END -%]
 
-    status = psDBCreateTable(dbh, [% table.namespace FILTER upper %]_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, [% table.namespace FILTER upper %]_TABLE_NAME, md);
 
     psFree(md);
