- Timestamp:
- Mar 29, 2010, 3:55:49 PM (16 years ago)
- Location:
- branches/eam_branches/20100225
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
ippTools/src/pstamptool.c (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20100225
- Property svn:mergeinfo changed
-
branches/eam_branches/20100225/ippTools/src/pstamptool.c
r26981 r27517 116 116 PS_ASSERT_PTR_NON_NULL(config, false); 117 117 118 PXOPT_LOOKUP_STR(uri, config->args, "-uri", true, false); 119 PXOPT_LOOKUP_STR(outProduct, config->args, "-out_product", true, false); 120 PXOPT_LOOKUP_STR(lastFileset, config->args, "-last_fileset", false, false); 121 PXOPT_LOOKUP_STR(state, config->args, "-state", false, false); 118 PXOPT_LOOKUP_STR(uri, config->args, "-set_uri", true, false); 119 PXOPT_LOOKUP_STR(outProduct, config->args, "-set_out_product", true, false); 120 PXOPT_LOOKUP_STR(lastFileset, config->args, "-set_last_fileset", false, false); 121 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 122 PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false); 123 PXOPT_LOOKUP_S32(pollInterval, config->args, "-set_poll_interval",false, false); 122 124 123 125 if (!pstampDataStoreInsert(config->dbh, … … 125 127 state, 126 128 lastFileset, 129 NULL, // timestamp 130 label, // label 127 131 outProduct, 128 uri 132 uri, 133 pollInterval 129 134 )) { 130 135 psError(PS_ERR_UNKNOWN, false, "database error"); … … 142 147 PXOPT_COPY_S64(config->args, where, "-ds_id", "ds_id", "=="); 143 148 149 PXOPT_LOOKUP_BOOL(ready, config->args, "-ready", false); 144 150 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 145 151 … … 156 162 } 157 163 psFree(where); 164 if (ready) { 165 psStringAppend(&query, " %s", "\nAND TIMESTAMPDIFF(SECOND, timestamp, now()) > pollInterval"); 166 } 158 167 159 168 if (!p_psDBRunQuery(config->dbh, query)) { … … 189 198 190 199 PXOPT_LOOKUP_S64(ds_id, config->args, "-ds_id", true, false); 191 PXOPT_LOOKUP_STR(lastFileset, config->args, "-last_fileset", false, false); 192 PXOPT_LOOKUP_STR(state, config->args, "-state", false, false); 193 194 if (!state && !lastFileset) { 195 psError(PS_ERR_UNKNOWN, true, "at least one of -last_fileset or -state is required"); 196 return false; 197 } 198 199 char *query = psStringCopy ("UPDATE pstampDataStore SET"); 200 bool needComma = false; 200 PXOPT_LOOKUP_STR(lastFileset, config->args, "-set_last_fileset", false, false); 201 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 202 PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false); 203 PXOPT_LOOKUP_S32(pollInterval, config->args, "-set_poll_interval", false, false); 204 PXOPT_LOOKUP_BOOL(update_timestamp, config->args, "-update_timestamp", false); 205 206 if (!state && !lastFileset && !pollInterval && !update_timestamp && !label) { 207 psError(PS_ERR_UNKNOWN, true, "at least one of -last_fileset or -set_state is required"); 208 return false; 209 } 210 211 char *query = psStringCopy ("UPDATE pstampDataStore SET timestamp = CURRENT_TIMESTAMP() "); 201 212 202 213 if (lastFileset) { 203 psStringAppend(&query, " lastFileset = '%s'", lastFileset); 204 needComma = true; 214 psStringAppend(&query, " , lastFileset = '%s'", lastFileset); 205 215 } 206 216 207 217 if (state) { 208 psStringAppend(&query, "%s state = '%s'", needComma ? "," : " ", state); 209 needComma = true; // be ready in case we add another field 218 psStringAppend(&query, ", state = '%s'", state); 219 } 220 221 if (label) { 222 psStringAppend(&query, ", label = '%s'", label); 223 } 224 225 if (pollInterval) { 226 psStringAppend(&query, ", pollInterval = %d", pollInterval); 210 227 } 211 228 … … 265 282 psMetadata *where = psMetadataAlloc(); 266 283 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 284 pxAddLabelSearchArgs(config, where, "-label", "label", "LIKE"); 267 285 268 286 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 387 405 PS_ASSERT_PTR_NON_NULL(config, false); 388 406 407 psMetadata *where = psMetadataAlloc(); 408 pxAddLabelSearchArgs(config, where, "-label", "label", "LIKE"); 409 389 410 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 390 411 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 391 412 392 413 psString query = pxDataGet("pstamptool_completedreq.sql"); 414 415 if (psListLength(where->list)) { 416 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 417 psStringAppend(&query, " AND %s", whereClause); 418 psFree(whereClause); 419 } 420 psFree(where); 393 421 394 422 // treat limit == 0 as "no limit" … … 502 530 PXOPT_COPY_S64(config->args, where, "-fault", "req_id", "=="); 503 531 PXOPT_COPY_STR(config->args, where, "-state", "pstampRequest.state", "=="); 532 pxAddLabelSearchArgs(config, where, "-label", "pstampRequest.label", "LIKE"); 504 533 505 534 if (!psListLength(where->list)) { … … 674 703 PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "=="); 675 704 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 705 pxAddLabelSearchArgs(config, where, "-label", "label", "LIKE"); 706 676 707 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 677 708 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); … … 685 716 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 686 717 if (psListLength(where->list)) { 687 psString whereClause = psDBGenerateWhereConditionSQL(where, "pstampJob");718 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 688 719 psStringAppend(&query, " AND %s", whereClause); 689 720 psFree(whereClause); … … 772 803 PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "=="); 773 804 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 774 PXOPT_COPY_S64(config->args, where, "-fault", " fault", "==");805 PXOPT_COPY_S64(config->args, where, "-fault", "pstampJob.fault", "=="); 775 806 PXOPT_COPY_S64(config->args, where, "-req_id_min", "req_id", ">="); 807 pxAddLabelSearchArgs(config, where, "-label", "pstampRequest.label", "LIKE"); 776 808 777 809 PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); … … 794 826 } 795 827 if (psListLength(where->list)) { 796 psString whereClause = psDBGenerateWhereConditionSQL(where, "pstampJob");828 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 797 829 psStringAppend(&query, " AND %s", whereClause); 798 830 psFree(whereClause);
Note:
See TracChangeset
for help on using the changeset viewer.
