Index: /trunk/glueforge/templates/psdb/Makefile.am
===================================================================
--- /trunk/glueforge/templates/psdb/Makefile.am	(revision 8116)
+++ /trunk/glueforge/templates/psdb/Makefile.am	(revision 8117)
@@ -19,4 +19,6 @@
     dbcleanup_c.tt \
     dbsetup_c.tt \
+    delete.tt \
+    delete_h.tt \
     deleterowobjects.tt \
     deleterowobjects_h.tt \
Index: /trunk/glueforge/templates/psdb/code.tt
===================================================================
--- /trunk/glueforge/templates/psdb/code.tt	(revision 8116)
+++ /trunk/glueforge/templates/psdb/code.tt	(revision 8117)
@@ -14,4 +14,5 @@
 [% INCLUDE droptable.tt %]
 [% INCLUDE insert.tt %]
+[% INCLUDE delete.tt -%]
 [% INCLUDE pop.tt %]
 [% INCLUDE insertobject.tt %]
Index: /trunk/glueforge/templates/psdb/delete.tt
===================================================================
--- /trunk/glueforge/templates/psdb/delete.tt	(revision 8117)
+++ /trunk/glueforge/templates/psdb/delete.tt	(revision 8117)
@@ -0,0 +1,16 @@
+long long [% table.namespace %]Delete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+{
+    long long       deleted = 0;
+
+    for (long long i = 0; i < objects->n; i++) {
+        long long count = psDBDeleteRows(dbh, [% table.namespace FILTER upper %]_TABLE_NAME, where, limit);
+        if (count < 0) {
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from [% table.namespace %]");
+            return count;
+        }
+
+        deleted += count;
+    }
+
+    return deleted;
+}
Index: /trunk/glueforge/templates/psdb/delete_h.tt
===================================================================
--- /trunk/glueforge/templates/psdb/delete_h.tt	(revision 8117)
+++ /trunk/glueforge/templates/psdb/delete_h.tt	(revision 8117)
@@ -0,0 +1,10 @@
+/** Deletes up to limit rows from the database and returns the number of rows actually deleted. 
+ *
+ * @return A The number of rows removed or a negative value on error
+ */
+
+long long [% table.namespace %]Delete(
+    psDB            *dbh,               ///< Database handle
+    const psMetadata *where,            ///< Row match criteria
+    unsigned long long limit            ///< Maximum number of elements to delete 
+);
Index: /trunk/glueforge/templates/psdb/header.tt
===================================================================
--- /trunk/glueforge/templates/psdb/header.tt	(revision 8116)
+++ /trunk/glueforge/templates/psdb/header.tt	(revision 8117)
@@ -19,4 +19,5 @@
 [% INCLUDE droptable_h.tt %]
 [% INCLUDE insert_h.tt %]
+[% INCLUDE delete_h.tt %]
 [% INCLUDE pop_h.tt %]
 [% INCLUDE insertobject_h.tt %]
