Index: /trunk/ippTools/src/pztool.c
===================================================================
--- /trunk/ippTools/src/pztool.c	(revision 10024)
+++ /trunk/ippTools/src/pztool.c	(revision 10025)
@@ -30,10 +30,11 @@
 
 static bool seenMode(pxConfig *config);
-static bool pendingMode(pxConfig *config);
+static bool pendingExpMode(pxConfig *config);
+static bool pendingImfileMode(pxConfig *config);
 static bool copydoneMode(pxConfig *config);
 
-static psArray *pztoolPendingExp(pxConfig *config);
-static psArray *pztoolPendingImfiles(pxConfig *config);
-static bool pztoolFlushPendingExp(pxConfig *config);
+//static psArray *pztoolPendingExp(pxConfig *config);
+//static psArray *pztoolPendingImfiles(pxConfig *config);
+//static bool pztoolFlushPendingExp(pxConfig *config);
 
 # define MODECASE(caseName, func) \
@@ -53,5 +54,6 @@
     switch (config->mode) {
         MODECASE(PZTOOL_MODE_SEEN, seenMode);
-        MODECASE(PZTOOL_MODE_PENDING, pendingMode);
+        MODECASE(PZTOOL_MODE_PENDINGEXP, pendingExpMode);
+        MODECASE(PZTOOL_MODE_PENDINGIMFILE, pendingImfileMode);
         MODECASE(PZTOOL_MODE_COPYDONE, copydoneMode);
         default:
@@ -62,5 +64,4 @@
     pmConfigDone();
     psLibFinalize();
-
 
     exit(EXIT_SUCCESS);
@@ -78,15 +79,5 @@
     PS_ASSERT_PTR_NON_NULL(config, false);
 
-    psString query = psStringCopy(
-        "SELECT"
-        "    summitExp.*"
-        " FROM summitExp"
-        " LEFT JOIN newExp"
-        "   USING(exp_id, camera, telescope)"
-        " WHERE"
-        "   newExp.exp_id is NULL"
-        "   AND newExp.camera IS NULL"
-        "   AND newExp.telescope IS NULL"
-    );
+    psString query = psStringCopy("SELECT * FROM summitExp");
 
     if (config->where) {
@@ -109,5 +100,5 @@
     }
     if (!psArrayLength(output)) {
-        psError(PS_ERR_UNKNOWN, false, "no newExp rows found");
+        psError(PS_ERR_UNKNOWN, false, "no rows found");
         psFree(output);
         return true;
@@ -125,5 +116,5 @@
 
     // negative simple so the default is true
-    if (!ippdbPrintMetadatas(stdout, output, "newExp", !simple)) {
+    if (!ippdbPrintMetadatas(stdout, output, "summitExp", !simple)) {
         psError(PS_ERR_UNKNOWN, false, "failed to print array");
         psFree(output);
@@ -136,25 +127,127 @@
 }
 
-static bool pendingMode(pxConfig *config)
+static bool pendingExpMode(pxConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(config, false);
 
-    psArray *pending = pzPendingFrameSearch(config);
-    if (!pending) {
-        psError(PS_ERR_UNKNOWN, false, "no pzPendingFrames found");
-        return false;
-    }
-    if (!pzPendingFramePrint(stdout, config, pending)) {
-        psError(PS_ERR_UNKNOWN, false, "pzPendingFramePrint() failed");
-        return false;
-    }
+    psString query = psStringCopy(
+            "SELECT"
+            "   summitExp.*"
+            " FROM pzPendingExp"
+            " JOIN summitExp"
+            "   USING(exp_id, camera, telescope)"
+        );
+
+    if (config->where) {
+        psString whereClause = psDBGenerateWhereConditionSQL(config->where, "pzPendingExp");
+        psStringAppend(&query, " AND %s", whereClause);
+        psFree(whereClause);
+    }
+
+    if (!p_psDBRunQuery(config->dbh, query)) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        psFree(query);
+        return false;
+    }
+    psFree(query);
+
+    psArray *output = p_psDBFetchResult(config->dbh);
+    if (!output) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        return false;
+    }
+    if (!psArrayLength(output)) {
+        psError(PS_ERR_UNKNOWN, false, "no rows found");
+        psFree(output);
+        return true;
+    }
+
+    bool simple = false;
+    {
+        bool status = false;
+        simple = psMetadataLookupBool(&status, config->args, "-simple");
+        if (!status) {
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -simple");
+            psFree(output);
+            return false;
+        }
+    }
+
+    // negative simple so the default is true
+    if (!ippdbPrintMetadatas(stdout, output, "summitExp", !simple)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print array");
+        psFree(output);
+        return false;
+    }
+
+    psFree(output);
 
     return true;
 }
 
+static bool pendingImfileMode(pxConfig *config)
+{
+    PS_ASSERT_PTR_NON_NULL(config, false);
+
+    psString query = psStringCopy(
+            "SELECT"
+            "   summitImfile.*"
+            " FROM pzPendingImfile"
+            " JOIN summitImfile"
+            "   USING(exp_id, camera, telescope, class, class_id)"
+        );
+
+    if (config->where) {
+        psString whereClause = psDBGenerateWhereConditionSQL(config->where, "pzPendingImfile");
+        psStringAppend(&query, " AND %s", whereClause);
+        psFree(whereClause);
+    }
+
+    if (!p_psDBRunQuery(config->dbh, query)) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        psFree(query);
+        return false;
+    }
+    psFree(query);
+
+    psArray *output = p_psDBFetchResult(config->dbh);
+    if (!output) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        return false;
+    }
+    if (!psArrayLength(output)) {
+        psError(PS_ERR_UNKNOWN, false, "no rows found");
+        psFree(output);
+        return true;
+    }
+
+    bool simple = false;
+    {
+        bool status = false;
+        simple = psMetadataLookupBool(&status, config->args, "-simple");
+        if (!status) {
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -simple");
+            psFree(output);
+            return false;
+        }
+    }
+
+    // negative simple so the default is true
+    if (!ippdbPrintMetadatas(stdout, output, "summitImfile", !simple)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print array");
+        psFree(output);
+        return false;
+    }
+
+    psFree(output);
+
+    return true;
+}
+
 static bool copydoneMode(pxConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(config, false);
 
+#if 0
     // we don't have to operate on complete frames here as it's ok to start
     // downloading the imfiles before the exp has been registered
@@ -178,9 +271,10 @@
         if (!newImfileInsert(
             config->dbh,
-            pendingImfile->exp_id,
+            pendingImfile->exp_tag,
             pendingImfile->class,
-            pendingImfile->class_id,
+            pendingImfile->class_id
+            )
             // XXX get this from the CLI
-            pendingImfile->uri)
+//            pendingImfile->uri
         ) {
             psError(PS_ERR_UNKNOWN, false, "dbh access failed");
@@ -217,8 +311,10 @@
         psError(PS_ERR_UNKNOWN, false, "database error");
     }
+#endif
 
     return false;
 }
 
+#if 0
 static psArray *pztoolPendingExp(pxConfig *config)
 {
@@ -302,2 +398,4 @@
     return true;
 }
+
+#endif
Index: /trunk/ippTools/src/pztool.h
===================================================================
--- /trunk/ippTools/src/pztool.h	(revision 10024)
+++ /trunk/ippTools/src/pztool.h	(revision 10025)
@@ -26,5 +26,6 @@
     PZTOOL_MODE_NONE      = 0x0,
     PZTOOL_MODE_SEEN,
-    PZTOOL_MODE_PENDING,
+    PZTOOL_MODE_PENDINGEXP,
+    PZTOOL_MODE_PENDINGIMFILE,
     PZTOOL_MODE_COPYDONE
 } pztoolMode;
Index: /trunk/ippTools/src/pztoolConfig.c
===================================================================
--- /trunk/ippTools/src/pztoolConfig.c	(revision 10024)
+++ /trunk/ippTools/src/pztoolConfig.c	(revision 10025)
@@ -53,14 +53,29 @@
             "use the simple output format", false);
     
-    // -pending
-    psMetadata *pendingArgs = psMetadataAlloc();
-    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_tag", 0,
-            "define exposure ID", NULL); 
-    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-inst", 0,
+    // -pendingexp
+    psMetadata *pendingexpArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_tag", 0,
+            "define exposure ID", NULL); 
+    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-inst", 0,
             "define camera ID", NULL); 
-    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-telescope", 0,
+    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-telescope", 0,
             "define telescope ID", NULL); 
-    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_type", 0,
+    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_type", 0,
             "define exposure type", NULL); 
+    psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple", 0,
+            "use the simple output format", false);
+
+    // -pendingimfile
+    psMetadata *pendingimfileArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-exp_tag", 0,
+            "define exposure ID", NULL); 
+    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-inst", 0,
+            "define camera ID", NULL); 
+    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-telescope", 0,
+            "define telescope ID", NULL); 
+    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-exp_type", 0,
+            "define exposure type", NULL); 
+    psMetadataAddBool(pendingimfileArgs, PS_LIST_TAIL, "-simple", 0,
+            "use the simple output format", false);
 
     // -copydone
@@ -96,5 +111,6 @@
     // find which mode we're running under
     PXTOOL_MODE("-seen",            PZTOOL_MODE_SEEN,         seenArgs);
-    PXTOOL_MODE("-pending",         PZTOOL_MODE_PENDING,      pendingArgs);
+    PXTOOL_MODE("-pendingexp",      PZTOOL_MODE_PENDINGEXP,   pendingexpArgs);
+    PXTOOL_MODE("-pendingimfile",   PZTOOL_MODE_PENDINGIMFILE,pendingimfileArgs);
     PXTOOL_MODE("-copydone",        PZTOOL_MODE_COPYDONE,     copydoneArgs);
 
