Index: trunk/ippTools/src/disttool.c
===================================================================
--- trunk/ippTools/src/disttool.c	(revision 27460)
+++ trunk/ippTools/src/disttool.c	(revision 27483)
@@ -140,4 +140,5 @@
     PXOPT_LOOKUP_BOOL(no_magic, config->args, "-no_magic", false);
     PXOPT_LOOKUP_STR(set_label, config->args, "-set_label", false, false);
+    PXOPT_LOOKUP_STR(set_data_group, config->args, "-set_data_group", false, false);
     PXOPT_LOOKUP_STR(set_note, config->args, "-set_note", false, false);
 
@@ -188,5 +189,5 @@
         // for raw stage we select by camRun.label and dist_group because rawExp doesn't have those columns
         if (label) {
-            psStringAppend(&query, " AND (camRun.label = '%s')", label);
+            psStringAppend(&query, " AND (magicDSRun.label = '%s')", label);
         }
         if (dist_group) {
@@ -387,5 +388,5 @@
         psS64 target_id = psMetadataLookupS64(NULL, md, "target_id");
         psString stage_label = psMetadataLookupStr(NULL, md, "label");
-        psString data_group = psMetadataLookupStr(NULL, md, "data_group");
+        psString stage_data_group = psMetadataLookupStr(NULL, md, "data_group");
         bool clean = psMetadataLookupBool(NULL, md, "clean");
 
@@ -399,4 +400,11 @@
             new_label = stage_label;
         }
+        psString new_data_group;
+        if (set_data_group != NULL) {
+            new_data_group = set_data_group;
+        } else {
+            new_data_group = stage_data_group;
+        }
+
         distRunRow *row = distRunRowAlloc(
                 0,      // dist_id
@@ -414,5 +422,5 @@
                 NULL,    // time_stamp
                 0,       // fault
-                data_group,
+                new_data_group,
                 set_note // note does not propagate
                 );
@@ -472,10 +480,11 @@
     PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
     PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false);
+    PXOPT_LOOKUP_STR(data_group, config->args, "-set_data_group", false, false);
     PXOPT_LOOKUP_STR(outdir, config->args, "-set_outdir", false, false);
     PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
     PXOPT_LOOKUP_STR(set_note, config->args, "-set_note", false, false);
 
-    if ((!state) && (!label) && (!fault)) {
-        psError(PXTOOLS_ERR_CONFIG, false, "parameters (-fault or -set_state or -set_label) are required");
+    if ((!state) && (!label) && (!fault) &&(!data_group)) {
+        psError(PXTOOLS_ERR_CONFIG, false, "parameters (-fault or -set_state or -set_label -set_data_group) are required");
         psFree(where);
         return false;
@@ -497,4 +506,8 @@
     if (fault) {
         psStringAppend(&query, " , distRun.fault = %d", fault);
+    }
+
+    if (data_group) {
+        psStringAppend(&query, " , distRun.data_group = '%s'", data_group);
     }
 
