Changeset 27171 for trunk/ippTools/src/pstamptool.c
- Timestamp:
- Mar 3, 2010, 4:37:05 PM (16 years ago)
- File:
-
- 1 edited
-
trunk/ippTools/src/pstamptool.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/pstamptool.c
r26981 r27171 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"); … … 189 194 190 195 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) { 196 PXOPT_LOOKUP_STR(lastFileset, config->args, "-set_last_fileset", false, false); 197 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 198 PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false); 199 PXOPT_LOOKUP_S32(pollInterval, config->args, "-set_poll_interval", false, false); 200 PXOPT_LOOKUP_BOOL(update_timestamp, config->args, "-update_timestamp", false); 201 202 if (!state && !lastFileset && !pollInterval && !update_timestamp && !label) { 195 203 psError(PS_ERR_UNKNOWN, true, "at least one of -last_fileset or -state is required"); 196 204 return false; 197 205 } 198 206 199 char *query = psStringCopy ("UPDATE pstampDataStore SET"); 200 bool needComma = false; 207 char *query = psStringCopy ("UPDATE pstampDataStore SET timestamp = CURRENT_TIMESTAMP() "); 201 208 202 209 if (lastFileset) { 203 psStringAppend(&query, " lastFileset = '%s'", lastFileset); 204 needComma = true; 210 psStringAppend(&query, " , lastFileset = '%s'", lastFileset); 205 211 } 206 212 207 213 if (state) { 208 psStringAppend(&query, "%s state = '%s'", needComma ? "," : " ", state); 209 needComma = true; // be ready in case we add another field 214 psStringAppend(&query, ", state = '%s'", state); 215 } 216 217 if (label) { 218 psStringAppend(&query, ", label = '%s'", label); 219 } 220 221 if (pollInterval) { 222 psStringAppend(&query, ", pollInterval = %d", pollInterval); 210 223 } 211 224 … … 265 278 psMetadata *where = psMetadataAlloc(); 266 279 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 280 pxAddLabelSearchArgs(config, where, "-label", "label", "LIKE"); 267 281 268 282 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 387 401 PS_ASSERT_PTR_NON_NULL(config, false); 388 402 403 psMetadata *where = psMetadataAlloc(); 404 pxAddLabelSearchArgs(config, where, "-label", "label", "LIKE"); 405 389 406 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 390 407 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 391 408 392 409 psString query = pxDataGet("pstamptool_completedreq.sql"); 410 411 if (psListLength(where->list)) { 412 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 413 psStringAppend(&query, " AND %s", whereClause); 414 psFree(whereClause); 415 } 416 psFree(where); 393 417 394 418 // treat limit == 0 as "no limit" … … 674 698 PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "=="); 675 699 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 700 pxAddLabelSearchArgs(config, where, "-label", "label", "LIKE"); 701 676 702 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 677 703 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); … … 685 711 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 686 712 if (psListLength(where->list)) { 687 psString whereClause = psDBGenerateWhereConditionSQL(where, "pstampJob");713 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 688 714 psStringAppend(&query, " AND %s", whereClause); 689 715 psFree(whereClause);
Note:
See TracChangeset
for help on using the changeset viewer.
