Changeset 36009
- Timestamp:
- Aug 22, 2013, 4:11:19 PM (13 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 2 added
- 4 edited
-
share/Makefile.am (modified) (2 diffs)
-
share/releasetool_stacksummary.sql (added)
-
share/stacktool_summary.sql (added)
-
src/stacktool.c (modified) (3 diffs)
-
src/stacktool.h (modified) (1 diff)
-
src/stacktoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/share/Makefile.am
r35960 r36009 400 400 stacktool_tosummary.sql \ 401 401 stacktool_addsummary.sql \ 402 stacktool_summary.sql \ 402 403 staticskytool_definebyquery_select.sql \ 403 404 staticskytool_definebyquery_select_by_dg.sql \ … … 484 485 releasetool_definerelgroup_select_exp_data_group.sql \ 485 486 releasetool_definerelgroup_select_exp_lap.sql \ 487 releasetool_stacksummary.sql \ 486 488 releasetool_pendingrelgroup.sql 487 489 -
trunk/ippTools/src/stacktool.c
r35888 r36009 44 44 static bool tosummaryMode(pxConfig *config); 45 45 static bool addsummaryMode(pxConfig *config); 46 static bool summaryMode(pxConfig *config); 46 47 static bool pendingcleanuprunMode(pxConfig *config); 47 48 static bool pendingcleanupskyfileMode(pxConfig *config); … … 84 85 MODECASE(STACKTOOL_MODE_TOSUMMARY, tosummaryMode); 85 86 MODECASE(STACKTOOL_MODE_ADDSUMMARY, addsummaryMode); 87 MODECASE(STACKTOOL_MODE_SUMMARY, summaryMode); 86 88 MODECASE(STACKTOOL_MODE_PENDINGCLEANUPRUN, pendingcleanuprunMode); 87 89 MODECASE(STACKTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupskyfileMode); … … 1568 1570 } 1569 1571 1572 static bool summaryMode(pxConfig *config) 1573 { 1574 PS_ASSERT_PTR_NON_NULL(config, false); 1575 1576 psMetadata *where = psMetadataAlloc(); 1577 PXOPT_COPY_S64(config->args, where, "-sass_id", "stackSummary.sass_id", "=="); 1578 PXOPT_COPY_STR(config->args, where, "-projection_cell", "stackAssociation.projection_cell", "=="); 1579 PXOPT_COPY_STR(config->args, where, "-tess_id", "stackAssociation.tess_id", "LIKE"); 1580 PXOPT_COPY_STR(config->args, where, "-filter", "stackAssociation.filter", "LIKE"); 1581 PXOPT_COPY_S64(config->args, where, "-stack_id", "stackSumSkyfile.stack_id", "=="); 1582 pxAddLabelSearchArgs(config, where, "-data_group", "stackAssociation.data_group", "LIKE"); 1583 PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "LIKE"); 1584 // PXOPT_COPY_STR(config->args, where, "-state", "stackRun.state", "=="); 1585 pxAddLabelSearchArgs(config, where, "-label", "stackRun.label", "LIKE"); 1586 // PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "=="); 1587 // PXOPT_COPY_F64(config->args, where, "-mjd_obs_begin", "stackSumSkyfile.mjd_obs", ">="); 1588 // PXOPT_COPY_F64(config->args, where, "-mjd_obs_end", "stackSumSkyfile.mjd_obs", "<="); 1589 // PXOPT_COPY_S16(config->args, where, "-background_model","stackSumSkyfile.background_model", "=="); 1590 1591 // PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); 1592 1593 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1594 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1595 1596 psString query = pxDataGet("stacktool_summary.sql"); 1597 if (!query) { 1598 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1599 return false; 1600 } 1601 1602 if (psListLength(where->list)) { 1603 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1604 psStringAppend(&query, " WHERE %s", whereClause); 1605 psFree(whereClause); 1606 } else { 1607 psError(PXTOOLS_ERR_CONFIG, true, "search parameters are required"); 1608 return false; 1609 } 1610 1611 psFree(where); 1612 1613 // treat limit == 0 as "no limit" 1614 if (limit) { 1615 psString limitString = psDBGenerateLimitSQL(limit); 1616 psStringAppend(&query, " %s", limitString); 1617 psFree(limitString); 1618 } 1619 1620 if (!p_psDBRunQuery(config->dbh, query)) { 1621 psError(PS_ERR_UNKNOWN, false, "database error"); 1622 psFree(query); 1623 return false; 1624 } 1625 psFree(query); 1626 1627 psArray *output = p_psDBFetchResult(config->dbh); 1628 if (!output) { 1629 psErrorCode err = psErrorCodeLast(); 1630 switch (err) { 1631 case PS_ERR_DB_CLIENT: 1632 psError(PXTOOLS_ERR_SYS, false, "database error"); 1633 case PS_ERR_DB_SERVER: 1634 psError(PXTOOLS_ERR_PROG, false, "database error"); 1635 default: 1636 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1637 } 1638 1639 return false; 1640 } 1641 if (!psArrayLength(output)) { 1642 psTrace("stacktool", PS_LOG_INFO, "no rows found"); 1643 psFree(output); 1644 return true; 1645 } 1646 1647 if (psArrayLength(output)) { 1648 if (!ippdbPrintMetadatas(stdout, output, "stackSummary", !simple)) { 1649 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1650 psFree(output); 1651 return false; 1652 } 1653 } 1654 1655 psFree(output); 1656 1657 return true; 1658 } 1659 1570 1660 static bool pendingcleanuprunMode(pxConfig *config) 1571 1661 { -
trunk/ippTools/src/stacktool.h
r34800 r36009 38 38 STACKTOOL_MODE_TOSUMMARY, 39 39 STACKTOOL_MODE_ADDSUMMARY, 40 STACKTOOL_MODE_SUMMARY, 40 41 STACKTOOL_MODE_PENDINGCLEANUPRUN, 41 42 STACKTOOL_MODE_PENDINGCLEANUPSKYFILE, -
trunk/ippTools/src/stacktoolConfig.c
r35888 r36009 265 265 psMetadataAddStr(addsummaryArgs, PS_LIST_TAIL, "-path_base", 0, "set summary path base", NULL); 266 266 267 // -summary 268 psMetadata *summaryArgs = psMetadataAlloc(); 269 psMetadataAddS64(summaryArgs, PS_LIST_TAIL, "-sass_id", 0, "search by stack association ID", 0); 270 psMetadataAddS64(summaryArgs, PS_LIST_TAIL, "-stack_id", 0, "search by stack ID", 0); 271 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tessellation ID", NULL); 272 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-projection_cell", 0, "search by projection cell ID", NULL); 273 // psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL); 274 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-filter", 0, "search by filter (LIKE comparison)", NULL); 275 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by stackRun label (LIKE comparison)", NULL); 276 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-data_group", PS_META_DUPLICATE_OK, "search by stackAssociation data_group (LIKE comparison)", NULL); 277 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", NULL); 278 // psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-dist_group", PS_META_DUPLICATE_OK, "search by stackRun dist_group (LIKE comparison)", NULL); 279 280 // psMetadataAddBool(summaryArgs, PS_LIST_TAIL, "-all", 0, "search without arguments", false); 281 psMetadataAddU64(summaryArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 282 psMetadataAddBool(summaryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 283 267 284 // -pendingcleanuprun 268 285 psMetadata *pendingcleanuprunArgs = psMetadataAlloc(); … … 325 342 PXOPT_ADD_MODE("-updatesumskyfile", "update fault code for sumskyfile", STACKTOOL_MODE_UPDATESUMSKYFILE, updatesumskyfileArgs); 326 343 PXOPT_ADD_MODE("-tosummary", "show runs that can be summarized", STACKTOOL_MODE_TOSUMMARY, tosummaryArgs); 344 PXOPT_ADD_MODE("-summary", "show runs that have been summarized", STACKTOOL_MODE_SUMMARY, summaryArgs); 327 345 PXOPT_ADD_MODE("-addsummary", "add entry to the summary table", STACKTOOL_MODE_ADDSUMMARY, addsummaryArgs); 328 346 PXOPT_ADD_MODE("-exportrun", "export run for import on other database", STACKTOOL_MODE_EXPORTRUN, exportrunArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
