ecebacc98890dd849cd57dca6cf136c0b4352c7c
galt
  Wed Feb 12 22:51:58 2020 -0800
fixing some metadata that we overlooked in cdwRenameDataset. fixed typo in help for cdwUnlockSubmittedFiles.

diff --git src/hg/cirm/cdw/cdwRenameDataset/cdwRenameDataset.c src/hg/cirm/cdw/cdwRenameDataset/cdwRenameDataset.c
index f085f0d..3899a6b 100644
--- src/hg/cirm/cdw/cdwRenameDataset/cdwRenameDataset.c
+++ src/hg/cirm/cdw/cdwRenameDataset/cdwRenameDataset.c
@@ -33,30 +33,39 @@
 {
 if (clDry)
     verbose(1, "%s\n", query);
 else
     sqlUpdate(conn, query);
 }
 
 static void mustStrSwapOne(char *string, int sz, char *oldStr, char *newStr)
 /* Swap in a single string or die trying */
 {
 int subCount = strSwapStrs(string, sz, oldStr, newStr);
 if (subCount != 1)
     errAbort("%d %s found in %s in mustStrSwapOne, must occur once", subCount, oldStr, string);
 }
 
+void updateTagsField(struct sqlConnection *conn, char *table, char *field, char *oldName, char *newName)
+/* Update table.tags with substituted data_set_id name. */
+{
+char query[2048];
+sqlSafef(query, sizeof(query), "update %s set tags = replace(tags,'%s=%s','%s=%s') "
+  "where REGEXP_INSTR(tags, '(^|&)%s=%s(&|^)') > 0;", table, field,oldName, field,newName, field,oldName);
+update(conn, query);
+}
+
 void cdwRenameDataset(char *oldName, char *newName)
 /* cdwRenameDataset - Rename a dataset, updating cdwDataset, cdwSubmitDir.url, and cdwSubmit.url 
  * tables. */
 {
 /* Update entry in cdwDataset */
 struct sqlConnection *conn = cdwConnectReadWrite();
 char query[3*PATH_LEN];
 sqlSafef(query, sizeof(query), 
     "update cdwDataset set name='%s' where name ='%s'", newName, oldName);
 update(conn, query);
 
 /* Figure out submitDir that ends with the dataset name */
 sqlSafef(query, sizeof(query), "select count(*) from cdwSubmitDir where url like '/%%/%s'", oldName);
 int dirCount = sqlQuickNum(conn, query);
 if (dirCount != 1)
@@ -76,27 +85,32 @@
 /* Update cdwSubmit.url with substituted url wherever it matches submitDir. */
 struct sqlConnection *conn2 = cdwConnectReadWrite();
 sqlSafef(query, sizeof(query), "select id,url from cdwSubmit where submitDirId=%d", submitDirId);
 struct sqlResult *sr = sqlGetResult(conn, query);
 char **row;
 while ((row = sqlNextRow(sr)) != NULL)
     {
     char *id = row[0];
     char *oldUrl = row[1];
     safef(newUrl, sizeof(newUrl), "%s", oldUrl);
     mustStrSwapOne(newUrl, sizeof(newUrl), oldName, newName);
     sqlSafef(query, sizeof(query), "update cdwSubmit set url='%s' where id=%s", newUrl, id);
     update(conn2, query);
     }
 sqlFreeResult(&sr);
+
+updateTagsField(conn, "cdwFile",     "meta"       , oldName, newName);
+updateTagsField(conn, "cdwMetaTags", "meta"       , oldName, newName);
+updateTagsField(conn, "cdwMetaTags", "data_set_id", oldName, newName);
+
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 optionInit(&argc, argv, options);
 if (argc != 3)
     usage();
 clDry = optionExists("dry");
 cdwRenameDataset(argv[1],argv[2]);
 return 0;
 }