Index: trunk/ippTools/src/.cvsignore
===================================================================
--- trunk/ippTools/src/.cvsignore	(revision 17938)
+++ trunk/ippTools/src/.cvsignore	(revision 18029)
@@ -23,4 +23,5 @@
 difftool
 stacktool
+faketool
 dettool
 detselect
Index: trunk/ippTools/src/Makefile.am
===================================================================
--- trunk/ippTools/src/Makefile.am	(revision 17938)
+++ trunk/ippTools/src/Makefile.am	(revision 18029)
@@ -8,7 +8,8 @@
 	flatcorr \
 	magictool \
-        pstamptool \
+	pstamptool \
 	pxadmin \
 	pxinject \
+	faketool \
 	pzgetexp \
 	pzgetimfiles \
@@ -28,4 +29,5 @@
 	pxconfig.h \
 	pxdata.h \
+	pxfake.h \
 	pxio.h \
 	pxregister.h \
@@ -44,7 +46,8 @@
 	difftool.h \
 	flatcorr.h \
+	faketool.h \
 	guidetool.h \
 	magictool.h \
-        pstamptool.h \
+	pstamptool.h \
 	pxinject.h \
 	pzgetexp.h \
@@ -65,4 +68,5 @@
 	pxdata.c \
 	pxerrors.c \
+	pxfake.c \
 	pxfault.c \
 	pxio.c \
@@ -124,4 +128,10 @@
     camtoolConfig.c
 
+faketool_CFLAGS = $(PSLIB_CFLAGS) $(PSMODULES_CFLAGS) $(IPPDB_CFLAGS)
+faketool_LDADD = $(PSLIB_LIBS) $(PSMODULES_LIBS) $(IPPDB_LIBS) libpxtools.la
+faketool_SOURCES = \
+    faketool.c \
+    faketoolConfig.c
+
 magictool_CFLAGS = $(PSLIB_CFLAGS) $(PSMODULES_CFLAGS) $(IPPDB_CFLAGS)
 magictool_LDADD = $(PSLIB_LIBS) $(PSMODULES_LIBS) $(IPPDB_LIBS) libpxtools.la
Index: trunk/ippTools/src/camtool.c
===================================================================
--- trunk/ippTools/src/camtool.c	(revision 17938)
+++ trunk/ippTools/src/camtool.c	(revision 18029)
@@ -27,5 +27,4 @@
 
 #include "pxtools.h"
-#include "pxwarp.h"
 #include "pxcam.h"
 #include "camtool.h"
@@ -599,33 +598,32 @@
     psFree(output);
     camProcessedExpRow *row = camProcessedExpRowAlloc(
-        pendingRow->cam_id,
-        pendingRow->chip_id,
-        uri,
-        bg,
-        bg_stdev,
-        bg_mean_stdev,
-        bias,
-        bias_stdev,
-        fringe_0,
-        fringe_1,
-        fringe_2,
-        sigma_ra,
-        sigma_dec,
-        ap_resid,
-        ap_resid_stdev,
-        zp_mean,
-        zp_stdev,
-        fwhm_major,
-        fwhm_minor,
-        dtime_detrend,
-        dtime_photom,
-        dtime_astrom,
-        hostname,
-        n_stars,
-        n_extended,
-        n_cr,
-        n_astrom,
-        path_base,
-        code
+            pendingRow->cam_id,
+            uri,
+            bg,
+            bg_stdev,
+            bg_mean_stdev,
+            bias,
+            bias_stdev,
+            fringe_0,
+            fringe_1,
+            fringe_2,
+            sigma_ra,
+            sigma_dec,
+            ap_resid,
+            ap_resid_stdev,
+            zp_mean,
+            zp_stdev,
+            fwhm_major,
+            fwhm_minor,
+            dtime_detrend,
+            dtime_photom,
+            dtime_astrom,
+            hostname,
+            n_stars,
+            n_extended,
+            n_cr,
+            n_astrom,
+            path_base,
+            code
         );
 
@@ -649,7 +647,7 @@
     }
 
-    // should we stop here or proceed on to the warp stage?
     // NULL for end_stage means go as far as possible
-    // we can't start a warp run unlesss tess_id is defined
+    // XXX true for fake too?
+    // XXX we can't start a warp run unlesss tess_id is defined
     if ((pendingRow->end_stage && psStrcasestr(pendingRow->end_stage, "cam"))
         || (pendingRow->tess_id == NULL) || psStrcasestr(pendingRow->tess_id, "NULL")) {
@@ -666,8 +664,10 @@
     // else continue on...
 
-    if (!pxwarpQueueByCamID(config,
+    if (!pxfakeQueueByCamID(config,
             pendingRow->cam_id,
             pendingRow->workdir,
             pendingRow->label,
+            pendingRow->reduction,
+            pendingRow->expgroup,
             pendingRow->dvodb,
             pendingRow->tess_id,
@@ -678,5 +678,5 @@
             psError(PS_ERR_UNKNOWN, false, "database error");
         }
-        psError(PS_ERR_UNKNOWN, false, "failed to queue new warpRun");
+        psError(PS_ERR_UNKNOWN, false, "failed to queue new fakeRun");
         psFree(pendingRow);
         return false;
Index: trunk/ippTools/src/faketool.c
===================================================================
--- trunk/ippTools/src/faketool.c	(revision 17938)
+++ trunk/ippTools/src/faketool.c	(revision 18029)
@@ -32,8 +32,8 @@
 
 #include "faketool.h"
-#include "camtool.h"
 
 static bool queueMode(pxConfig *config);
 static bool updaterunMode(pxConfig *config);
+static bool pendingexpMode(pxConfig *config);
 static bool pendingimfileMode(pxConfig *config);
 static bool addprocessedimfileMode(pxConfig *config);
@@ -67,4 +67,5 @@
         MODECASE(FAKETOOL_MODE_QUEUE,                   queueMode);
         MODECASE(FAKETOOL_MODE_UPDATERUN,               updaterunMode);
+        MODECASE(FAKETOOL_MODE_PENDINGEXP,              pendingexpMode);
         MODECASE(FAKETOOL_MODE_PENDINGIMFILE,           pendingimfileMode);
         MODECASE(FAKETOOL_MODE_ADDPROCESSEDIMFILE,      addprocessedimfileMode);
@@ -171,5 +172,5 @@
 
     // find the exp_id of all the exposures that we want to queue up.
-    psString query = pxDataGet("faketool_find_rawexp.sql");
+    psString query = pxDataGet("faketool_find_camrun.sql");
     if (!query) {
         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
@@ -179,6 +180,6 @@
 
     if (where && psListLength(where->list)) {
-        psString whereClause = psDBGenerateWhereConditionSQL(where, "rawExp");
-        psStringAppend(&query, " AND %s", whereClause);
+        psString whereClause = psDBGenerateWhereSQL(where, NULL);
+        psStringAppend(&query, " %s", whereClause);
         psFree(whereClause);
     }
@@ -219,12 +220,12 @@
     }
 
-    // loop over our list of exp_ids
+    // loop over our list of cam_ids
     for (long i = 0; i < psArrayLength(output); i++) {
         psMetadata *md = output->data[i];
 
         bool status;
-        psS64 exp_id = psMetadataLookupS64(&status, md, "exp_id");
+        psS64 cam_id = psMetadataLookupS64(&status, md, "cam_id");
         if (!status) {
-            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for exp_id");
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for cam_id");
             psFree(output);
             return false;
@@ -232,10 +233,10 @@
 
         // queue the exp
-        if (!pxfakeQueueByExpTag(config, exp_id, workdir, label, reduction, expgroup, dvodb, tess_id, end_stage)) {
+        if (!pxfakeQueueByCamID(config, cam_id, workdir, label, reduction, expgroup, dvodb, tess_id, end_stage)) {
             if (!psDBRollback(config->dbh)) {
                 psError(PS_ERR_UNKNOWN, false, "database error");
             }
             psError(PS_ERR_UNKNOWN, false,
-                    "failed to trying to queue exp_id: %" PRId64, exp_id);
+                    "failed to trying to queue cam_id: %" PRId64, cam_id);
             psFree(output);
             return false;
@@ -354,4 +355,74 @@
 
 
+static bool pendingexpMode(pxConfig *config)
+{
+    PS_ASSERT_PTR_NON_NULL(config, false);
+
+    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
+    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+
+    psMetadata *where = psMetadataAlloc();
+    PXOPT_COPY_STR(config->args, where, "-fake_id", "fake_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-cam_id", "cam_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-chip_id", "chip_id", "==");
+
+    psString query = pxDataGet("faketool_find_pendingexp.sql");
+    if (!query) {
+        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psFree(where);
+        return false;
+    }
+
+    if (where && psListLength(where->list)) {
+        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
+        psStringAppend(&query, " AND %s", whereClause);
+        psFree(whereClause);
+    }
+    psFree(where);
+
+    // treat limit == 0 as "no limit"
+    if (limit) {
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
+    }
+
+    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)) {
+        psTrace("camtool", PS_LOG_INFO, "no rows found");
+        psFree(output);
+        return true;
+    }
+
+    if (!convertIdToStr(output)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to convert id fields into a strings");
+        psFree(output);
+        return false;
+    }
+
+    // negate simple so the default is true
+    if (!ippdbPrintMetadatas(stdout, output, "fakePendingExp", !simple)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print array");
+        psFree(output);
+        return false;
+    }
+
+    psFree(output);
+
+    return true;
+}
+
+
 static bool pendingimfileMode(pxConfig *config)
 {
@@ -448,38 +519,17 @@
 
     // fake_id, ext_tag, class_id are required
-    PXOPT_LOOKUP_STR(fake_id, config->args, "-fake_id", true, false);
-    PXOPT_LOOKUP_STR(exp_id, config->args, "-exp_id", true, false);
-    PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false);
+    PXOPT_LOOKUP_STR(fake_id, config->args,     "-fake_id", true, false);
+    PXOPT_LOOKUP_STR(exp_id, config->args,      "-exp_id", true, false);
+    PXOPT_LOOKUP_STR(class_id, config->args,    "-class_id", true, false);
 
     // optional
-    PXOPT_LOOKUP_STR(uri, config->args,            "-uri", false, false);
-    PXOPT_LOOKUP_F32(bg, config->args,             "-bg", false, false);
-    PXOPT_LOOKUP_F32(bg_stdev, config->args,       "-bg_stdev", false, false);
-    PXOPT_LOOKUP_F32(bg_mean_stdev, config->args,  "-bg_mean_stdev", false, false);
-    PXOPT_LOOKUP_F32(bias, config->args,           "-bias", false, false);
-    PXOPT_LOOKUP_F32(bias_stdev, config->args,     "-bias_stdev", false, false);
-    PXOPT_LOOKUP_F32(fringe_0, config->args,       "-fringe_0", false, false);
-    PXOPT_LOOKUP_F32(fringe_1, config->args,       "-fringe_1", false, false);
-    PXOPT_LOOKUP_F32(fringe_2, config->args,       "-fringe_2", false, false);
-    PXOPT_LOOKUP_F32(sigma_ra, config->args,       "-sigma_ra", false, false);
-    PXOPT_LOOKUP_F32(sigma_dec, config->args,      "-sigma_dec", false, false);
-    PXOPT_LOOKUP_F32(ap_resid, config->args,       "-ap_resid", false, false);
-    PXOPT_LOOKUP_F32(ap_resid_stdev, config->args, "-ap_resid_stdev", false, false);
-    PXOPT_LOOKUP_F32(zp_mean, config->args,        "-zp_mean", false, false);
-    PXOPT_LOOKUP_F32(zp_stdev, config->args,       "-zp_stdev", false, false);
-    PXOPT_LOOKUP_F32(fwhm_major, config->args,     "-fwhm_major", false, false);
-    PXOPT_LOOKUP_F32(fwhm_minor, config->args,     "-fwhm_minor", false, false);
-    PXOPT_LOOKUP_F32(dtime_detrend, config->args,  "-dtime_detrend", false, false);
-    PXOPT_LOOKUP_F32(dtime_photom,  config->args,  "-dtime_photom",  false, false);
-    PXOPT_LOOKUP_F32(dtime_astrom,  config->args,  "-dtime_astrom",  false, false);
-    PXOPT_LOOKUP_STR(hostname, config->args,       "-hostname", false, false);
-    PXOPT_LOOKUP_F32(n_stars, config->args, "-n_stars", false, false);
-    PXOPT_LOOKUP_F32(n_extended, config->args, "-n_extended", false, false);
-    PXOPT_LOOKUP_F32(n_cr, config->args, "-n_cr", false, false);
-    PXOPT_LOOKUP_F32(n_astrom, config->args, "-n_astrom", false, false);
-    PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", false, false);
+    PXOPT_LOOKUP_STR(uri, config->args,         "-uri", false, false);
+
+    PXOPT_LOOKUP_F32(dtime_fake, config->args,  "-dtime_fake", false, false);
+    PXOPT_LOOKUP_STR(hostname, config->args,    "-hostname", false, false);
+    PXOPT_LOOKUP_STR(path_base, config->args,   "-path_base", false, false);
 
     // default values
-    PXOPT_LOOKUP_S16(code, config->args, "-code", false, false);
+    PXOPT_LOOKUP_S16(code, config->args,        "-code", false, false);
 
     if (!psDBTransaction(config->dbh)) {
@@ -493,30 +543,9 @@
                                    class_id,
                                    uri,
-                                   bg,
-                                   bg_stdev,
-                                   bg_mean_stdev,
-                                   bias,
-                                   bias_stdev,
-                                   fringe_0,
-                                   fringe_1,
-                                   fringe_2,
-                                   sigma_ra,
-                                   sigma_dec,
-                                   ap_resid,
-                                   ap_resid_stdev,
-                                   zp_mean,
-                                   zp_stdev,
-                                   fwhm_major,
-                                   fwhm_minor,
-                                   dtime_detrend,
-                                   dtime_photom,
-                                   dtime_astrom,
+                                   dtime_fake,
                                    hostname,
-                                   n_stars,
-                                   n_extended,
-                                   n_cr,
-                                   n_astrom,
                                    path_base,
-                                   code
+                                   code,
+                                   NULL         // epoch
             )) {
         // rollback
@@ -748,8 +777,22 @@
     PXOPT_LOOKUP_S16(code, config->args, "-code", true, false);
 
-    if (!pxSetFaultCode(config->dbh, "fakeProcessedImfile", config->where, code)) {
+    psMetadata *where = psMetadataAlloc();
+    PXOPT_LOOKUP_STR(fake_id, config->args, "-fake_id", false, false);
+    // convert fake_id into a psS64
+    if (fake_id) {
+        if (!psMetadataAddS64(where, PS_LIST_TAIL, "fake_id", 0, "==", (psS64)atoll(fake_id))) {
+            psError(PS_ERR_UNKNOWN, false, "failed to add item fake_id");
+            psFree(where);
+            return false;
+        }
+    }
+    PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "==");
+
+    if (!pxSetFaultCode(config->dbh, "fakeProcessedImfile", where, code)) {
         psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
-        return false;
-    }
+        psFree(where);
+        return false;
+    }
+    psFree(where);
 
     return true;
@@ -984,10 +1027,8 @@
         // camQueueFakeID() can only be run after fakeRun.state has been set to
         // stop
-        if (!pxcamQueueByFakeID(config,
+        if (!pxwarpQueueByFakeID(config,
                     fakeRun->fake_id,
                     fakeRun->workdir,
                     fakeRun->label,
-                    fakeRun->reduction,
-                    fakeRun->expgroup,
                     fakeRun->dvodb,
                     fakeRun->tess_id,
Index: trunk/ippTools/src/faketool.h
===================================================================
--- trunk/ippTools/src/faketool.h	(revision 17938)
+++ trunk/ippTools/src/faketool.h	(revision 18029)
@@ -28,4 +28,5 @@
     FAKETOOL_MODE_UPDATERUN,
     FAKETOOL_MODE_PENDINGIMFILE,
+    FAKETOOL_MODE_PENDINGEXP,
     FAKETOOL_MODE_ADDPROCESSEDIMFILE,
     FAKETOOL_MODE_PROCESSEDIMFILE,
Index: trunk/ippTools/src/faketoolConfig.c
===================================================================
--- trunk/ippTools/src/faketoolConfig.c	(revision 17938)
+++ trunk/ippTools/src/faketoolConfig.c	(revision 18029)
@@ -232,4 +232,15 @@
 
 
+    // -pendingexp
+    psMetadata *pendingexpArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-cam_id", 0,
+            "search by camtool ID", NULL);
+    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-chip_id", 0,
+            "search by chiptool ID", NULL);
+    psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit",  0,
+            "limit result set to N items", 0);
+    psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple", 0,
+            "use the simple output format", false);
+
     // -pendingimfile
     psMetadata *pendingimfileArgs = psMetadataAlloc();
@@ -416,15 +427,18 @@
 
     PXOPT_ADD_MODE("-queue",                 "create runs from raw exposures",
-        FAKETOOL_MODE_QUEUE,    queueArgs);
+        FAKETOOL_MODE_QUEUE,                    queueArgs);
     PXOPT_ADD_MODE("-updaterun",             "change fake run properties",
-        FAKETOOL_MODE_UPDATERUN, updaterunArgs);
+        FAKETOOL_MODE_UPDATERUN,                updaterunArgs);
+    PXOPT_ADD_MODE("-pendingexp",           "show pending exposures",
+        FAKETOOL_MODE_PENDINGEXP,               pendingexpArgs);
     PXOPT_ADD_MODE("-pendingimfile",         "show pending imfiles",
-        FAKETOOL_MODE_PENDINGIMFILE,  pendingimfileArgs);
+        FAKETOOL_MODE_PENDINGIMFILE,            pendingimfileArgs);
     PXOPT_ADD_MODE("-addprocessedimfile",    "add a processed imfile",
-        FAKETOOL_MODE_ADDPROCESSEDIMFILE,addprocessedimfileArgs);
+        FAKETOOL_MODE_ADDPROCESSEDIMFILE,       addprocessedimfileArgs);
     PXOPT_ADD_MODE("-processedimfile",       "show processed imfiles",
-        FAKETOOL_MODE_PROCESSEDIMFILE, processedimfileArgs);
-    PXOPT_ADD_MODE("-updateprocessedimfile", "change procesed imfile properties", FAKETOOL_MODE_UPDATEPROCESSEDIMFILE,    updateprocessedimfileArgs);
-    PXOPT_ADD_MODE("-revertprocessedimfile", "undo a processed imfile", FAKETOOL_MODE_REVERTPROCESSEDIMFILE,    revertprocessedimfileArgs);
+        FAKETOOL_MODE_PROCESSEDIMFILE,          processedimfileArgs);
+    PXOPT_ADD_MODE("-updateprocessedimfile","change procesed imfile properties",        FAKETOOL_MODE_UPDATEPROCESSEDIMFILE,    updateprocessedimfileArgs);
+    PXOPT_ADD_MODE("-revertprocessedimfile", "undo a processed imfile",
+        FAKETOOL_MODE_REVERTPROCESSEDIMFILE,    revertprocessedimfileArgs);
     PXOPT_ADD_MODE("-block",                 "set a label block", FAKETOOL_MODE_BLOCK,          blockArgs);
     PXOPT_ADD_MODE("-masked",                "show blocked labels", FAKETOOL_MODE_MASKED,         maskedArgs);
Index: trunk/ippTools/src/pxtools.h
===================================================================
--- trunk/ippTools/src/pxtools.h	(revision 17938)
+++ trunk/ippTools/src/pxtools.h	(revision 18029)
@@ -28,13 +28,16 @@
 #include <ippdb.h>
 
+#include "pxconfig.h"
 #include "pxtoolsErrorCodes.h"
+
+#include "pxcam.h"
+#include "pxchip.h"
+#include "pxdata.h"
+#include "pxfake.h"
+#include "pxwarp.h"
 #include "pxio.h"
-#include "pxdata.h"
+#include "pxregister.h"
 #include "pxtag.h"
-#include "pxregister.h"
-#include "pxchip.h"
-#include "pxcam.h"
 #include "pxtree.h"
-#include "pxconfig.h"
 
 # define MAX_ROWS 10e9
Index: trunk/ippTools/src/pxwarp.c
===================================================================
--- trunk/ippTools/src/pxwarp.c	(revision 17938)
+++ trunk/ippTools/src/pxwarp.c	(revision 18029)
@@ -135,6 +135,6 @@
 
 
-bool pxwarpQueueByCamID(pxConfig *config,
-                    psS64 cam_id,
+bool pxwarpQueueByFakeID(pxConfig *config,
+                    psS64 fake_id,
                     char *workdir,
                     char *label,
@@ -148,5 +148,5 @@
     if (!warpRunInsert(config->dbh,
         0,          // ID
-        cam_id,
+        fake_id,
         "warp",     // mode
         "run",      // state
Index: trunk/ippTools/src/pxwarp.h
===================================================================
--- trunk/ippTools/src/pxwarp.h	(revision 17938)
+++ trunk/ippTools/src/pxwarp.h	(revision 18029)
@@ -30,6 +30,6 @@
 bool pxwarpRunSetLabelByQuery(pxConfig *config, psMetadata *where, const char *label);
 
-bool pxwarpQueueByCamID(pxConfig *config,
-                    psS64 cam_id,
+bool pxwarpQueueByFakeID(pxConfig *config,
+                    psS64 fake_id,
                     char *workdir,
                     char *label,
Index: trunk/ippTools/src/warptool.c
===================================================================
--- trunk/ippTools/src/warptool.c	(revision 17938)
+++ trunk/ippTools/src/warptool.c	(revision 18029)
@@ -111,5 +111,5 @@
 
     // required options
-    PXOPT_LOOKUP_STR(cam_id, config->args, "-cam_id", true, false);
+    PXOPT_LOOKUP_STR(fake_id, config->args, "-fake_id", true, false);
     PXOPT_LOOKUP_STR(mode, config->args, "-mode", true, false);
     // check mode
@@ -133,5 +133,5 @@
     warpRunRow *warpRun = warpRunRowAlloc(
             0,          // ID
-            (psS64)atoll(cam_id),
+            (psS64)atoll(fake_id),
             mode,
             "run",      // state
@@ -176,5 +176,5 @@
 
     PXOPT_LOOKUP_STR(warp_id, config->args, "-warp_id", false, false);
-    PXOPT_LOOKUP_STR(cam_id, config->args, "-cam_id", false, false);
+    PXOPT_LOOKUP_STR(fake_id, config->args, "-fake_id", false, false);
     PXOPT_LOOKUP_STR(chip_id, config->args, "-chip_id", false, false);
     PXOPT_LOOKUP_STR(exp_id, config->args, "-exp_id", false, false);
@@ -190,8 +190,8 @@
     }
 
-    // convert cam_id into a psS64
-    if (cam_id) {
-        if (!psMetadataAddS64(where, PS_LIST_TAIL, "cam_id", 0, "==", (psS64)atoll(cam_id))) {
-            psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
+    // convert fake_id into a psS64
+    if (fake_id) {
+        if (!psMetadataAddS64(where, PS_LIST_TAIL, "fake_id", 0, "==", (psS64)atoll(fake_id))) {
+            psError(PS_ERR_UNKNOWN, false, "failed to add item fake_id");
             psFree(where);
             return false;
@@ -543,5 +543,11 @@
         }
     } else {
-        warpSkyCellMapInsert(config->dbh, (psS64)atoll(warp_id), NULL, NULL, 0, NULL, code);
+        warpSkyCellMapInsert(config->dbh,
+            (psS64)atoll(warp_id),
+            NULL,   // skycell_id
+            NULL,   // tess_id
+            NULL,   // class_id
+            code    // fault
+        );
     }
 
@@ -1028,5 +1034,5 @@
 
     PXOPT_LOOKUP_STR(warp_id, config->args, "-warp_id", false, false);
-    PXOPT_LOOKUP_STR(cam_id, config->args, "-cam_id", false, false);
+    PXOPT_LOOKUP_STR(fake_id, config->args, "-fake_id", false, false);
     PXOPT_LOOKUP_STR(chip_id, config->args, "-chip_id", false, false);
     PXOPT_LOOKUP_STR(exp_id, config->args, "-exp_id", false, false);
@@ -1045,8 +1051,8 @@
     PXOPT_COPY_STR(config->args, where, "-tess_id", "tess_id", "==");
 
-    // convert cam_id into a psS64
-    if (cam_id) {
-        if (!psMetadataAddS64(where, PS_LIST_TAIL, "camRun.cam_id", 0, "==", (psS64)atoll(cam_id))) {
-            psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
+    // convert fake_id into a psS64
+    if (fake_id) {
+        if (!psMetadataAddS64(where, PS_LIST_TAIL, "fakeRun.fake_id", 0, "==", (psS64)atoll(fake_id))) {
+            psError(PS_ERR_UNKNOWN, false, "failed to add item fake_id");
             psFree(where);
             return false;
Index: trunk/ippTools/src/warptoolConfig.c
===================================================================
--- trunk/ippTools/src/warptoolConfig.c	(revision 17938)
+++ trunk/ippTools/src/warptoolConfig.c	(revision 18029)
@@ -49,5 +49,5 @@
     // -definerun
     psMetadata *definerunArgs = psMetadataAlloc();
-    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-cam_id", 0,
+    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-fake_id", 0,
             "define camtool ID (required)", NULL);
     psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-mode", 0,
@@ -72,10 +72,10 @@
     // -updaterun
     psMetadata *updaterunArgs = psMetadataAlloc();
-    // XXX need to allow multiple cam_ids
+    // XXX need to allow multiple fake_ids
     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-warp_id", 0,
             "search by warptool ID", NULL);
-    // XXX need to allow multiple cam_ids
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-cam_id",  0,
-            "search by cam_id", NULL);
+    // XXX need to allow multiple fake_ids
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-fake_id",  0,
+            "search by fake_id", NULL);
     // XXX need to allow multiple chip_ids
     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-chip_id",  0,
@@ -176,5 +176,5 @@
     psMetadataAddStr(expArgs, PS_LIST_TAIL, "-warp_id", 0,
             "search by warptool ID", NULL);
-    psMetadataAddStr(expArgs, PS_LIST_TAIL, "-cam_id", 0,
+    psMetadataAddStr(expArgs, PS_LIST_TAIL, "-fake_id", 0,
             "search by camtool ID", NULL);
     psMetadataAddU64(expArgs, PS_LIST_TAIL, "-limit",  0,
@@ -187,5 +187,5 @@
     psMetadataAddStr(imfileArgs, PS_LIST_TAIL, "-warp_id", 0,
             "search by warptool ID", NULL);
-    psMetadataAddStr(imfileArgs, PS_LIST_TAIL, "-cam_id", 0,
+    psMetadataAddStr(imfileArgs, PS_LIST_TAIL, "-fake_id", 0,
             "search by camtool ID", NULL);
     psMetadataAddU64(imfileArgs, PS_LIST_TAIL, "-limit",  0,
@@ -279,5 +279,5 @@
     psMetadataAddStr(warpedArgs, PS_LIST_TAIL, "-exp_id", 0,
             "define exposure tag", NULL);
-    psMetadataAddStr(warpedArgs, PS_LIST_TAIL, "-cam_id", 0,
+    psMetadataAddStr(warpedArgs, PS_LIST_TAIL, "-fake_id", 0,
             "define phase 3 version of exposure tag", NULL);
     psMetadataAddU64(warpedArgs, PS_LIST_TAIL, "-limit",  0,
@@ -288,5 +288,5 @@
     // -revertwarped
     psMetadata *revertwarpedArgs = psMetadataAlloc();
-    // XXX need to allow multiple cam_ids
+    // XXX need to allow multiple fake_ids
     psMetadataAddStr(revertwarpedArgs, PS_LIST_TAIL, "-warp_id", 0,
             "search by warptool ID", NULL);
@@ -295,7 +295,7 @@
     psMetadataAddStr(revertwarpedArgs, PS_LIST_TAIL, "-tess_id",  0,
             "searcy by tessellation ID", NULL);
-    // XXX need to allow multiple cam_ids
-    psMetadataAddStr(revertwarpedArgs, PS_LIST_TAIL, "-cam_id",  0,
-            "search by cam_id", NULL);
+    // XXX need to allow multiple fake_ids
+    psMetadataAddStr(revertwarpedArgs, PS_LIST_TAIL, "-fake_id",  0,
+            "search by fake_id", NULL);
     // XXX need to allow multiple chip_ids
     psMetadataAddStr(revertwarpedArgs, PS_LIST_TAIL, "-chip_id",  0,
