Index: trunk/archive/psdb/psDB.c
===================================================================
--- trunk/archive/psdb/psDB.c	(revision 3208)
+++ trunk/archive/psdb/psDB.c	(revision 3209)
@@ -8,6 +8,6 @@
  *  @author Joshua Hoblitt
  *
- *  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-02-13 22:09:46 $
+ *  @version $Revision: 1.21 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-02-13 22:23:07 $
  *
  *  Copyright 2005 Joshua Hoblitt, University of Hawaii
@@ -62,6 +62,5 @@
 static char    *psDBGenerateInsertRowSQL(const char *tableName, psMetadata *row);
 static char    *psDBGenerateCreateTableSQL(const char *tableName, psMetadata *where);
-static char    *psDBGenerateSelectColumnSQL(const char *tableName, const char *col, const psU64 limit);
-static char    *psDBGenerateSelectRowsSQL(const char *tableName, psMetadata *where);
+static char    *psDBGenerateSelectRowSQL(const char *tableName, const char *col, psMetadata *where, const psU64 limit);
 static char    *psDBGenerateUpdateRowSQL(const char *tableName, psMetadata *where, psMetadata *values);
 static char    *psDBGenerateSetSQL(psMetadata *set);
@@ -192,5 +191,5 @@
     psPtr           data;               // copy of result field
 
-    query = psDBGenerateSelectColumnSQL(tableName, col, limit);
+    query = psDBGenerateSelectRowSQL(tableName, col, NULL, limit);
     if (!query) {
         return NULL;
@@ -354,5 +353,5 @@
     psPtr           data;               // copy of result field
 
-    query = psDBGenerateSelectRowsSQL(tableName, where);
+    query = psDBGenerateSelectRowSQL(tableName, NULL, where, 0);
     if (!query) {
         return NULL;
@@ -979,10 +978,28 @@
 }
 
-static char *psDBGenerateSelectColumnSQL(const char *tableName, const char *col, const psU64 limit)
+static char *psDBGenerateSelectRowSQL(const char *tableName, const char *col, psMetadata *where, const psU64 limit)
 {
     char            *query = NULL;
+    char            *whereSQL;
     char            *limitString;
 
-    psStringAppend(&query, "SELECT %s FROM %s", col, tableName);
+    // select all columns if col is NULL
+    if (col) {
+        psStringAppend(&query, "SELECT %s FROM %s", col, tableName);
+    } else {
+        psStringAppend(&query, "SELECT * FROM %s", tableName);
+    }
+
+    // select all rows if where is NULL
+    if (where) {
+        whereSQL = psDBGenerateWhereSQL(where);
+        if (!whereSQL) {
+            psFree(query);
+
+            return NULL;
+        }
+        psStringAppend(&query, " %s", whereSQL);
+        psFree(whereSQL);
+    }
 
     // treat limit == 0 as "no limit"
@@ -991,26 +1008,4 @@
         psStringAppend(&query, " LIMIT %s", limitString);
         psFree(limitString);
-    }
-
-    return query;
-}
-
-static char *psDBGenerateSelectRowsSQL(const char *tableName, psMetadata *where)
-{
-    char            *query = NULL;
-    char            *whereSQL;
-
-    psStringAppend(&query, "SELECT * FROM %s", tableName);
-
-    // select everything if where is NULL
-    if (where) {
-        whereSQL = psDBGenerateWhereSQL(where);
-        if (!whereSQL) {
-            psFree(query);
-
-            return NULL;
-        }
-        psStringAppend(&query, " %s", whereSQL);
-        psFree(whereSQL);
     }
 
