Index: trunk/ippTools/src/warptool.c
===================================================================
--- trunk/ippTools/src/warptool.c	(revision 30729)
+++ trunk/ippTools/src/warptool.c	(revision 31719)
@@ -2094,17 +2094,26 @@
 
     // warp_id, skycell_id, fault are required
-    PXOPT_LOOKUP_S64(warp_id, config->args, "-warp_id", true, false);
-    PXOPT_LOOKUP_STR(skycell_id, config->args, "-skycell_id", true, false);
-    PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
     PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
 
     if (!state) {
-      psString query = pxDataGet("warptool_updateskyfile.sql");
-
-      if (!p_psDBRunQueryF(config->dbh, query, fault, warp_id, skycell_id)) {
-        psError(PS_ERR_UNKNOWN, false, "database error");
+      psMetadata *where = psMetadataAlloc();
+      PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "==");
+      PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id", "==");
+      if (psListLength(where->list) == 0) {
+        // this won't happen because warptoolConfig requires these arguments
+        psError(PS_ERR_UNKNOWN, true, "search parameters are required");
+        psFree(where);
         return false;
       }
-      psFree(query);
+ 
+      PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false);
+      PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false);
+
+      if (!pxSetFaultCode(config->dbh, "warpSkyfile", where, fault, quality)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
+        psFree(where);
+        return false;
+      }
+      psFree(where);
     }
     else {
