Index: trunk/psLib/src/dataIO/psDB.c
===================================================================
--- trunk/psLib/src/dataIO/psDB.c	(revision 4393)
+++ trunk/psLib/src/dataIO/psDB.c	(revision 4428)
@@ -12,6 +12,6 @@
  *  @author Joshua Hoblitt
  *
- *  @version $Revision: 1.35 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-06-25 02:44:14 $
+ *  @version $Revision: 1.36 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-06-29 19:40:23 $
  *
  *  Copyright 2005 Joshua Hoblitt, University of Hawaii
@@ -52,5 +52,5 @@
 static char    *psDBGenerateInsertRowSQL(const char *tableName, const psMetadata *row);
 static char    *psDBGenerateUpdateRowSQL(const char *tableName, const psMetadata *where, const psMetadata *values);
-static char    *psDBGenerateDeleteRowSQL(const char *tableName, const psMetadata *where);
+static char    *psDBGenerateDeleteRowSQL(const char *tableName, const psMetadata *where, unsigned long long limit);
 static char    *psDBGenerateWhereSQL(const psMetadata *where);
 static char    *psDBGenerateSetSQL(const psMetadata *set
@@ -778,5 +778,5 @@
 }
 
-psS64 psDBDeleteRows(psDB *dbh, const char *tableName, const psMetadata *where)
+psS64 psDBDeleteRows(psDB *dbh, const char *tableName, const psMetadata *where, unsigned long long limit)
 {
     char            *query;
@@ -790,5 +790,5 @@
 
     // Create SQL statement string
-    query = psDBGenerateDeleteRowSQL(tableName, where);
+    query = psDBGenerateDeleteRowSQL(tableName, where,limit);
     if (!query) {
         psError(PS_ERR_UNEXPECTED_NULL, false, "Query generation failed.");
@@ -1130,8 +1130,9 @@
 }
 
-static char *psDBGenerateDeleteRowSQL(const char *tableName, const psMetadata *where)
+static char *psDBGenerateDeleteRowSQL(const char *tableName, const psMetadata *where, unsigned long long limit)
 {
     char            *query = NULL;
     char            *whereSQL;
+    char            *limitString;
 
     // delete all rows if where is NULL
@@ -1148,6 +1149,13 @@
     }
 
+    psStringAppend(&query, "DELETE FROM %s %s", tableName, whereSQL);
+
     // Complete delete SQL command string
-    psStringAppend(&query, "DELETE FROM %s %s", tableName, whereSQL);
+    // treat limit == 0 as "no limit"
+    if (limit) {
+        limitString = psDBIntToString(limit);
+        psStringAppend(&query, " LIMIT %s", limitString);
+        psFree(limitString);
+    }
     psFree(whereSQL);
 
