Changeset 28304 for branches/czw_branch/20100519/ippTools/src/stacktool.c
- Timestamp:
- Jun 10, 2010, 6:28:51 PM (16 years ago)
- Location:
- branches/czw_branch/20100519
- Files:
-
- 3 edited
-
. (modified) (1 prop)
-
ippTools/src (modified) (1 prop)
-
ippTools/src/stacktool.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/czw_branch/20100519
- Property svn:mergeinfo changed
-
branches/czw_branch/20100519/ippTools/src
- Property svn:ignore
-
old new 38 38 stamp-h1 39 39 warptool 40 40 staticskytool
-
- Property svn:ignore
-
branches/czw_branch/20100519/ippTools/src/stacktool.c
r28245 r28304 39 39 static bool addsumskyfileMode(pxConfig *config); 40 40 static bool sumskyfileMode(pxConfig *config); 41 static bool sassskyfileMode(pxConfig *config); 41 42 static bool revertsumskyfileMode(pxConfig *config); 42 43 static bool tosummaryMode(pxConfig *config); … … 77 78 MODECASE(STACKTOOL_MODE_ADDSUMSKYFILE, addsumskyfileMode); 78 79 MODECASE(STACKTOOL_MODE_SUMSKYFILE, sumskyfileMode); 80 MODECASE(STACKTOOL_MODE_SASSSKYFILE, sassskyfileMode); 79 81 MODECASE(STACKTOOL_MODE_REVERTSUMSKYFILE, revertsumskyfileMode); 80 82 MODECASE(STACKTOOL_MODE_TOSUMMARY, tosummaryMode); … … 116 118 psString idString = NULL; 117 119 psStringAppend(&idString, "%" PRId64, stack_id); 118 psStringSubstitute(&select,idString, "@STACK_ID@"); 120 // Copy string to get around the issue with psStringSubstitute not believing 121 // that select is a psString. 122 psString rep = psStringCopy(select); 123 psFree(select); 124 select = rep; 125 psStringSubstitute(&select, idString, "@STACK_ID@"); 119 126 psFree(idString); 120 127 … … 143 150 return(NULL); 144 151 } 145 psMetadata *outrow = NULL;152 psMetadata *outrow = psMetadataAlloc(); 146 153 for (long i = 0; i < output->n; i++) { 147 154 psMetadata *row = output->data[i]; 148 if (!psMetadataCopy(row,outrow)) { 149 psError(PS_ERR_UNKNOWN, false, "Failed to copy row to return"); 150 return(NULL); 151 } 152 } 155 156 printf("%" PRId64 " %s %s %s %s\n",psMetadataLookupS64(NULL,row,"sass_id"), 157 psMetadataLookupStr(NULL,row,"data_group"), 158 psMetadataLookupStr(NULL,row,"tess_id"), 159 psMetadataLookupStr(NULL,row,"filter"), 160 psMetadataLookupStr(NULL,row,"projection_cell")); 161 162 if (psMetadataLookupS64(NULL,row,"sass_id") == PS_MAX_S64) { 163 psMetadataAddS64(outrow,PS_LIST_TAIL,"sass_id",PS_META_REPLACE,"",0); 164 } 165 else { 166 psMetadataAddS64(outrow,PS_LIST_TAIL,"sass_id",PS_META_REPLACE,"",psMetadataLookupS64(NULL,row,"sass_id")); 167 } 168 psMetadataAddStr(outrow,PS_LIST_TAIL,"data_group",PS_META_REPLACE,"",psMetadataLookupStr(NULL,row,"data_group")); 169 psMetadataAddStr(outrow,PS_LIST_TAIL,"tess_id",PS_META_REPLACE,"",psMetadataLookupStr(NULL,row,"tess_id")); 170 psMetadataAddStr(outrow,PS_LIST_TAIL,"filter",PS_META_REPLACE,"",psMetadataLookupStr(NULL,row,"filter")); 171 psMetadataAddStr(outrow,PS_LIST_TAIL,"projection_cell",PS_META_REPLACE,"", 172 psMetadataLookupStr(NULL,row,"projection_cell")); 173 } 174 printf("%" PRId64 " %s %s %s %s\n",psMetadataLookupS64(NULL,outrow,"sass_id"), 175 psMetadataLookupStr(NULL,outrow,"data_group"), 176 psMetadataLookupStr(NULL,outrow,"tess_id"), 177 psMetadataLookupStr(NULL,outrow,"filter"), 178 psMetadataLookupStr(NULL,outrow,"projection_cell")); 179 180 153 181 psFree(output); 154 182 stackAssociationRow *sassRow = stackAssociationObjectFromMetadata(outrow); … … 1063 1091 psMetadata *where = psMetadataAlloc(); 1064 1092 PXOPT_COPY_S64(config->args, where, "-stack_id", "stackSumSkyfile.stack_id", "=="); 1065 PXOPT_COPY_S64(config->args, where, "-sass_id", "stackAssociationMap.sass_id", "==");1066 1093 PXOPT_COPY_STR(config->args, where, "-tess_id", "stackRun.tess_id", "=="); 1067 1094 PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "=="); … … 1082 1109 1083 1110 psString query = pxDataGet("stacktool_sumskyfile.sql"); 1111 if (!query) { 1112 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1113 return false; 1114 } 1115 1116 if (psListLength(where->list)) { 1117 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1118 psStringAppend(&query, " WHERE %s", whereClause); 1119 psFree(whereClause); 1120 } else if (!all) { 1121 psError(PXTOOLS_ERR_CONFIG, true, "search parameters or -all are required"); 1122 return false; 1123 } 1124 1125 psFree(where); 1126 1127 // treat limit == 0 as "no limit" 1128 if (limit) { 1129 psString limitString = psDBGenerateLimitSQL(limit); 1130 psStringAppend(&query, " %s", limitString); 1131 psFree(limitString); 1132 } 1133 1134 if (!p_psDBRunQuery(config->dbh, query)) { 1135 psError(PS_ERR_UNKNOWN, false, "database error"); 1136 psFree(query); 1137 return false; 1138 } 1139 psFree(query); 1140 1141 psArray *output = p_psDBFetchResult(config->dbh); 1142 if (!output) { 1143 psErrorCode err = psErrorCodeLast(); 1144 switch (err) { 1145 case PS_ERR_DB_CLIENT: 1146 psError(PXTOOLS_ERR_SYS, false, "database error"); 1147 case PS_ERR_DB_SERVER: 1148 psError(PXTOOLS_ERR_PROG, false, "database error"); 1149 default: 1150 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1151 } 1152 1153 return false; 1154 } 1155 if (!psArrayLength(output)) { 1156 psTrace("stacktool", PS_LOG_INFO, "no rows found"); 1157 psFree(output); 1158 return true; 1159 } 1160 1161 if (psArrayLength(output)) { 1162 if (!ippdbPrintMetadatas(stdout, output, "stackSumSkyfile", !simple)) { 1163 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1164 psFree(output); 1165 return false; 1166 } 1167 } 1168 1169 psFree(output); 1170 1171 return true; 1172 } 1173 1174 static bool sassskyfileMode(pxConfig *config) 1175 { 1176 PS_ASSERT_PTR_NON_NULL(config, false); 1177 1178 psMetadata *where = psMetadataAlloc(); 1179 PXOPT_COPY_S64(config->args, where, "-sass_id", "stackAssociation.sass_id", "=="); 1180 PXOPT_COPY_STR(config->args, where, "-tess_id", "stackAssociation.tess_id", "=="); 1181 PXOPT_COPY_STR(config->args, where, "-projection_cell", "stackAssociation.projection_cell", "=="); 1182 PXOPT_COPY_STR(config->args, where, "-filter", "stackAssociation.filter", "LIKE"); 1183 PXOPT_COPY_STR(config->args, where, "-data_group", "stackAssociation.data_group", "LIKE"); 1184 1185 // The following three selectors are incompatible with the sql so omit them 1186 // PXOPT_COPY_S64(config->args, where, "-warp_id", "warpRun.warp_id", "=="); 1187 // PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 1188 // PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "=="); 1189 1190 PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); 1191 1192 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1193 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1194 1195 psString query = pxDataGet("stacktool_sassskyfile.sql"); 1084 1196 if (!query) { 1085 1197 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); … … 1318 1430 PS_ASSERT_PTR_NON_NULL(config, NULL); 1319 1431 1320 PXOPT_LOOKUP_S64(s tack_id, config->args, "-stack_id", true, false);1432 PXOPT_LOOKUP_S64(sass_id, config->args, "-sass_id", true, false); 1321 1433 PXOPT_LOOKUP_STR(projection_cell, config->args, "-projection_cell", true, false); 1322 1434 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", true, false); … … 1327 1439 return(false); 1328 1440 } 1329 if (!p_psDBRunQueryF(config->dbh, query, s tack_id, projection_cell, path_base)) {1441 if (!p_psDBRunQueryF(config->dbh, query, sass_id, projection_cell, path_base)) { 1330 1442 psError(PS_ERR_UNKNOWN, false, "database error"); 1331 1443 psFree(query);
Note:
See TracChangeset
for help on using the changeset viewer.
