Index: trunk/ippTools/src/pztool.c
===================================================================
--- trunk/ippTools/src/pztool.c	(revision 41598)
+++ trunk/ippTools/src/pztool.c	(revision 42837)
@@ -50,6 +50,5 @@
 static bool updatenewexpMode(pxConfig *config);
 
-// XXX EAM : 2021.05.18 : code for updatesummitExp was added but not finished.
-// XXX static bool updatesummitExpMode(pxConfig *config);
+static bool updatesummitExpMode(pxConfig *config);
 
 // static bool copydoneCompleteExp(pxConfig *config);
@@ -93,5 +92,5 @@
 	MODECASE(PZTOOL_MODE_UPDATEPZEXP, updatepzexpMode);
         MODECASE(PZTOOL_MODE_UPDATENEWEXP, updatenewexpMode);
-	// XXX MODECASE(PZTOOL_MODE_UPDATESUMMITEXP, updatesummitExpMode);
+	MODECASE(PZTOOL_MODE_UPDATESUMMITEXP, updatesummitExpMode);
         default:
             psAbort("invalid option (this should not happen)");
@@ -810,5 +809,4 @@
 }
 
-
 static bool updatecopiedMode(pxConfig *config)
 {
@@ -939,6 +937,5 @@
 }
 
-# if (0)
-static bool summitExpSetFault(pxConfig *config, const psS64 summit_id, const int fault)
+static bool summitExpSetFault(pxConfig *config, const psString exp_name, const psS64 summit_id, const int fault)
 {
     // check that state is a valid string value
@@ -949,7 +946,7 @@
   }
 
-    char *query = "UPDATE summitExp SET fault = %d WHERE summit_id = %ld";
-    if (!p_psDBRunQueryF(config->dbh, query, fault, summit_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to change state for %lld", (long long) summit_id);
+    char *query = "UPDATE summitExp SET fault = %d WHERE summit_id = %ld AND exp_name = '%s'";
+    if (!p_psDBRunQueryF(config->dbh, query, fault, summit_id, exp_name)) {
+	psError(PS_ERR_UNKNOWN, false, "failed to change state for %s = %lld", exp_name, (long long) summit_id);
         return false;
     }
@@ -960,17 +957,16 @@
 static bool updatesummitExpMode(pxConfig *config)
 {
-  int fault;
-
+  // require both exp_name and summit_id as a double-check
   PS_ASSERT_PTR_NON_NULL(config, false);
   PXOPT_LOOKUP_S64(summit_id, config->args, "-summit_id", true, false);
-  PXOPT_LOOKUP_S32(state,    config->args, "-set_fault",true, false);
-
-  if (!summitExpSetFault(config,summit_id, fault)) {
-    psError(PS_ERR_UNKNOWN, false, "failed to change state for %lld", (long long) summit_id);
-    return false;
+  PXOPT_LOOKUP_STR(exp_name,  config->args, "-exp_name",  true, false);
+  PXOPT_LOOKUP_S32(fault,     config->args, "-set_fault", true, false);
+
+  if (!summitExpSetFault(config, exp_name, summit_id, fault)) {
+      psError(PS_ERR_UNKNOWN, false, "failed to change state for %s = %lld", exp_name, (long long) summit_id);
+      return false;
   }
   return true;
 }
-# endif  
   
 static bool updatepzexpMode(pxConfig *config)
