Changeset 36409
- Timestamp:
- Dec 23, 2013, 2:32:53 PM (13 years ago)
- Location:
- branches/bills_branches/bills_201312
- Files:
-
- 1 added
- 8 edited
-
dbconfig/ff.md (modified) (2 diffs)
-
ippTools/share/Makefile.am (modified) (1 diff)
-
ippTools/share/fftool_definebyquery.sql (modified) (1 diff)
-
ippTools/share/fftool_definebyquery_select_warps.sql (added)
-
ippTools/share/fftool_result.sql (modified) (1 diff)
-
ippTools/share/fftool_todo.sql (modified) (1 diff)
-
ippTools/share/pxadmin_create_tables.sql (modified) (2 diffs)
-
ippTools/src/fftool.c (modified) (15 diffs)
-
ippTools/src/fftoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/bills_branches/bills_201312/dbconfig/ff.md
r36391 r36409 2 2 fullForceRun METADATA 3 3 ff_id S64 0 4 warp_id S64 05 4 skycal_id S64 0 6 5 sources_path_base STR 255 … … 15 14 END 16 15 16 fullForceInput METADATA 17 ff_id S64 0 18 warp_id S64 0 19 END 20 17 21 fullForceResult METADATA 22 ff_id S64 0 23 warp_id S64 0 24 path_base STR 255 25 dtime_script F32 0.0 26 quality S16 0 27 hostname STR 64 28 software_ver STR 16 29 fault S16 0 30 END 31 32 fullForceSummary METADATA 18 33 ff_id S64 0 19 34 path_base STR 255 -
branches/bills_branches/bills_201312/ippTools/share/Makefile.am
r36386 r36409 490 490 releasetool_pendingrelgroup.sql \ 491 491 fftool_definebyquery.sql \ 492 fftool_definebyquery_select_warps.sql \ 492 493 fftool_result.sql \ 493 494 fftool_revert.sql \ -
branches/bills_branches/bills_201312/ippTools/share/fftool_definebyquery.sql
r36386 r36409 1 1 SELECT 2 warpRun.warp_id,3 2 skycalRun.skycal_id, 4 3 skycalResult.path_base, 5 skycalRun.data_group 4 skycalRun.data_group, 5 stackRun.tess_id, 6 stackRun.skycell_id, 7 stackRun.filter 6 8 FROM skycalRun 7 9 JOIN skycalResult USING(skycal_id) 8 10 JOIN stackRun USING(stack_id) 9 11 JOIN skycell USING(tess_id, skycell_id) 10 JOIN warpRun USING(tess_id) 11 JOIN warpSkyfile USING(warp_id, skycell_id) 12 JOIN fakeRun USING(fake_id) 13 JOIN camRun USING(cam_id) 14 JOIN chipRun USING(chip_id) 15 JOIN rawExp ON chipRun.exp_id = rawExp.exp_id and stackRun.filter = rawExp.filter 16 LEFT JOIN fullForceRun ON fullForceRun.skycal_id = fullForceRun.skycal_id 17 AND fullForceRun.warp_id = warpRun.warp_id 18 AND warpSkyfile.tess_id = stackRun.tess_id 19 AND warpSkyfile.skycell_id = stackRun.skycell_id -- join hook %s 12 -- join hook %s 20 13 WHERE 21 14 skycalRun.state = 'full' AND skycalResult.quality = 0 22 AND warpRun.state = 'full' AND warpSkyfile.quality = 023 24 -- an optimization might be to do cuts on distance between rawExp.ra,decl and skycell centers within some amount25 26 -
branches/bills_branches/bills_201312/ippTools/share/fftool_result.sql
r36386 r36409 1 1 SELECT 2 2 fullForceResult.*, 3 fullForceRun.warp_id,4 3 fullForceRun.skycal_id, 5 4 fullForceRun.label, -
branches/bills_branches/bills_201312/ippTools/share/fftool_todo.sql
r36390 r36409 7 7 warpSkyfile.path_base AS warp_path_base 8 8 FROM fullForceRun 9 JOIN skycalRun using(skycal_id) 10 JOIN stackRun using(stack_id) 11 JOIN warpRun using(warp_id, tess_id) 9 JOIN fullForceInput USING(ff_id) 10 JOIN skycalRun USING(skycal_id) 11 JOIN stackRun USING(stack_id) 12 JOIN warpRun USING(warp_id, tess_id) 12 13 JOIN warpSkyfile USING(warp_id, tess_id, skycell_id) 13 JOIN fakeRun using(fake_id)14 JOIN camRun using(cam_id)15 JOIN chipRun using(chip_id)16 JOIN rawExp using(exp_id)14 JOIN fakeRun USING(fake_id) 15 JOIN camRun USING(cam_id) 16 JOIN chipRun USING(chip_id) 17 JOIN rawExp USING(exp_id) 17 18 LEFT JOIN fullForceResult USING(ff_id) 18 19 WHERE fullForceRun.state = 'new' -
branches/bills_branches/bills_201312/ippTools/share/pxadmin_create_tables.sql
r36386 r36409 2309 2309 CREATE TABLE fullForceRun ( 2310 2310 ff_id BIGINT NOT NULL AUTO_INCREMENT, 2311 warp_id BIGINT,2311 # warp_id BIGINT, 2312 2312 skycal_id BIGINT, 2313 2313 sources_path_base VARCHAR(255), … … 2324 2324 KEY(label), 2325 2325 KEY(data_group), 2326 KEY(warp_id),2326 # KEY(warp_id), 2327 2327 KEY(skycal_id), 2328 FOREIGN KEY(warp_id) REFERENCES warpRun(warp_id),2328 # FOREIGN KEY(warp_id) REFERENCES warpRun(warp_id), 2329 2329 FOREIGN KEY(skycal_id) REFERENCES skycalRun(skycal_id) 2330 2330 ) ENGINE=innodb DEFAULT CHARSET=latin1; 2331 2331 2332 CREATE TABLE fullForceInput ( 2333 ff_id BIGINT, 2334 warp_id BIGINT, 2335 PRIMARY KEY(ff_id, warp_id), 2336 FOREIGN KEY(ff_id) REFERENCES fullForceRun(ff_id), 2337 FOREIGN KEY(warp_id) REFERENCES warpRun(warp_id) 2338 ) ENGINE=innodb DEFAULT CHARSET=latin1; 2339 2332 2340 CREATE TABLE fullForceResult ( 2341 ff_id BIGINT, 2342 warp_id BIGINT, 2343 path_base VARCHAR(255) NOT NULL, 2344 dtime_script FLOAT, 2345 quality SMALLINT NOT NULL, 2346 hostname VARCHAR(64) NOT NULL, 2347 software_ver VARCHAR(16), 2348 fault SMALLINT NOT NULL, 2349 PRIMARY KEY(ff_id, warp_id), 2350 KEY(fault), 2351 KEY(quality), 2352 FOREIGN KEY(ff_id) REFERENCES fullForceRun(ff_id), 2353 FOREIGN KEY(warp_id) REFERENCES warpRun(warp_id) 2354 ) ENGINE=innodb DEFAULT CHARSET=latin1; 2355 2356 CREATE TABLE fullForceSummary ( 2333 2357 ff_id BIGINT, 2334 2358 path_base VARCHAR(255) NOT NULL, -
branches/bills_branches/bills_201312/ippTools/src/fftool.c
r36392 r36409 40 40 static bool updateresultMode(pxConfig *config); 41 41 42 static bool setfullForceRunState(pxConfig *config, psS64 sky_id, const char *state);42 // static bool setfullForceRunState(pxConfig *config, psS64 sky_id, const char *state); 43 43 44 44 # define MODECASE(caseName, func) \ … … 103 103 PXOPT_LOOKUP_STR(sources_path_base, config->args, "-set_sources_path_base", false, false); 104 104 105 psMetadata *whereMD = psMetadataAlloc(); 106 pxAddLabelSearchArgs(config, whereMD, "-select_warp_label", "warpRun.label", "LIKE"); 107 pxAddLabelSearchArgs(config, whereMD, "-select_warp_data_group","warpRun.data_group", "LIKE"); 108 PXOPT_COPY_S64(config->args, whereMD, "-select_warp_id", "warpRun.warp_id", "=="); 109 110 pxAddLabelSearchArgs(config, whereMD, "-select_skycal_label", "skycalRun.label", "LIKE"); 111 pxAddLabelSearchArgs(config, whereMD, "-select_skycal_data_group", "skycalRun.data_group", "LIKE"); 112 PXOPT_COPY_S64(config->args, whereMD, "-select_skycal_id", "skycalRun.skycal_id", "=="); 113 114 // XXX: REQUIRE at least one of the stack selectors and one of the warp selectors are supplied 115 116 PXOPT_COPY_STR(config->args, whereMD, "-select_skycell_id", "stackRun.skycell_id", "LIKE"); 117 PXOPT_COPY_STR(config->args, whereMD, "-select_tess_id", "stackRun.tess_id", "=="); 118 pxAddLabelSearchArgs(config, whereMD, "-select_filter", "stackRun.filter", "LIKE"); 119 120 if (!pxskycellAddWhere(config, whereMD)) { 105 psMetadata *skycalWhereMD = psMetadataAlloc(); 106 pxAddLabelSearchArgs(config, skycalWhereMD, "-select_skycal_label", "skycalRun.label", "LIKE"); 107 pxAddLabelSearchArgs(config, skycalWhereMD, "-select_skycal_data_group", "skycalRun.data_group", "LIKE"); 108 PXOPT_COPY_S64(config->args, skycalWhereMD, "-select_skycal_id", "skycalRun.skycal_id", "=="); 109 110 if (!psListLength(skycalWhereMD->list)) { 111 psError(PXTOOLS_ERR_CONFIG, false, "skycal search parameters are required"); 112 psFree(skycalWhereMD); 113 return false; 114 } 115 116 PXOPT_COPY_STR(config->args, skycalWhereMD, "-select_skycell_id", "stackRun.skycell_id", "LIKE"); 117 PXOPT_COPY_STR(config->args, skycalWhereMD, "-select_tess_id", "stackRun.tess_id", "=="); 118 pxAddLabelSearchArgs(config, skycalWhereMD, "-select_filter", "stackRun.filter", "LIKE"); 119 if (!pxskycellAddWhere(config, skycalWhereMD)) { 121 120 psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments"); 122 return false; 123 } 121 psFree(skycalWhereMD); 122 return false; 123 } 124 125 psMetadata *warpWhereMD = psMetadataAlloc(); 126 pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_label", "warpRun.label", "LIKE"); 127 pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_data_group","warpRun.data_group", "LIKE"); 128 PXOPT_COPY_S64(config->args, warpWhereMD, "-select_warp_id", "warpRun.warp_id", "=="); 129 if (!psListLength(warpWhereMD->list)) { 130 psError(PXTOOLS_ERR_CONFIG, false, "warp search parameters are required"); 131 psFree(warpWhereMD); 132 psFree(skycalWhereMD); 133 return false; 134 } 135 if (!psListLength(warpWhereMD->list)) { 136 psError(PXTOOLS_ERR_CONFIG, false, "skycal search parameters are required"); 137 psFree(skycalWhereMD); 138 psFree(warpWhereMD); 139 return false; 140 } 141 142 PXOPT_COPY_STR(config->args, warpWhereMD, "-select_tess_id", "warpRun.tess_id", "=="); 143 pxAddLabelSearchArgs(config, warpWhereMD, "-select_filter", "warpRun.filter", "LIKE"); 144 if (!pxskycellAddWhere(config, warpWhereMD)) { 145 psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments"); 146 psFree(skycalWhereMD); 147 psFree(warpWhereMD); 148 return false; 149 } 150 124 151 125 152 PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false); … … 130 157 if (!select) { 131 158 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 132 psFree(whereMD); 133 return false; 134 } 135 136 if (!psListLength(whereMD->list)) { 137 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 138 psFree(whereMD); 159 psFree(skycalWhereMD); 160 psFree(warpWhereMD); 139 161 return false; 140 162 } 141 163 142 164 psString where = NULL; 143 psString whereClause = psDBGenerateWhereConditionSQL( whereMD, NULL);165 psString whereClause = psDBGenerateWhereConditionSQL(skycalWhereMD, NULL); 144 166 psStringAppend(&where, "\nAND %s", whereClause); 145 167 psStringAppend(&select, where); 146 168 psFree(whereClause); 147 psFree( whereMD);169 psFree(skycalWhereMD); 148 170 149 171 psString joinHook = NULL; 150 172 if (!rerun) { 173 psStringAppend(&joinHook, "\nLEFT JOIN fullForceRun ON fullForceRun.skycal_id = fullForceRun.skycal_id"); 151 174 psStringAppend(&joinHook, "\n %s\nAND fullForceRun.label = '%s'", where, label); 152 175 psStringAppend(&select, "\nAND ff_id IS NULL"); … … 181 204 return true; 182 205 } 206 183 207 if (pretend) { 184 208 // negative simple so the default is true 185 if (!ippdbPrintMetadatas(stdout, output, " staticskyInput", !simple)) {209 if (!ippdbPrintMetadatas(stdout, output, "toFullForce", !simple)) { 186 210 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 187 211 psFree(output); … … 193 217 return true; 194 218 } 219 220 psString warpQueryTemplate = pxDataGet("fftool_definebyquery_select_warps.sql"); 221 222 whereClause = psDBGenerateWhereConditionSQL(warpWhereMD, NULL); 223 psStringAppend(&warpQueryTemplate, "\nAND %s", whereClause); 195 224 196 225 for (long i = 0; i < output->n; i++) { … … 204 233 } 205 234 206 psS64 warp_id = psMetadataLookupS64(&status, row, "warp_id");235 // psS64 warp_id = psMetadataLookupS64(&status, row, "warp_id"); 207 236 psS64 skycal_id = psMetadataLookupS64(&status, row, "skycal_id"); 208 237 … … 216 245 217 246 psString skycal_data_group = psMetadataLookupStr(&status, row, "data_group"); 247 psString tess_id = psMetadataLookupStr(&status, row, "tess_id"); 248 psString skycell_id = psMetadataLookupStr(&status, row, "skycell_id"); 249 psString filter = psMetadataLookupStr(&status, row, "filter"); 250 251 psString query = NULL; 252 psStringAppend(&query, warpQueryTemplate, tess_id, skycell_id, filter); 253 254 if (!p_psDBRunQuery(config->dbh, query)) { 255 psError(PS_ERR_UNKNOWN, false, "database error"); 256 psFree(query); 257 return false; 258 } 259 psFree(query); 260 261 // Find the warps for this skycell and filter combination 262 psArray *warpOutput = p_psDBFetchResult(config->dbh); 263 if (!warpOutput) { 264 psErrorCode err = psErrorCodeLast(); 265 switch (err) { 266 case PS_ERR_DB_CLIENT: 267 psError(PXTOOLS_ERR_SYS, false, "database error"); 268 case PS_ERR_DB_SERVER: 269 psError(PXTOOLS_ERR_PROG, false, "database error"); 270 default: 271 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 272 } 273 return false; 274 } 275 if (!psArrayLength(warpOutput)) { 276 // no warps for this skycal. Suprise? 277 psFree(warpOutput); 278 psFree(query); 279 continue; 280 } 218 281 219 282 // create a staticskyRun 220 283 if (!fullForceRunInsert(config->dbh, 221 284 0x0, // ff_id 222 warp_id,223 285 skycal_id, 224 286 path_base, … … 241 303 } 242 304 305 psS64 ff_id = psDBLastInsertID(config->dbh); 306 307 for (int j = 0; j < warpOutput->n; j++) { 308 psMetadata *warpRow = warpOutput->data[j]; 309 psS64 warp_id = psMetadataLookupS64(&status, warpRow, "warp_id"); 310 311 if (!fullForceInputInsert(config->dbh, 312 ff_id, 313 warp_id) 314 ) { 315 if (!psDBRollback(config->dbh)) { 316 psError(PS_ERR_UNKNOWN, false, "database error failed to rollback transaction"); 317 } 318 psError(PS_ERR_UNKNOWN, false, "database error"); 319 psFree(warpOutput); 320 psFree(output); 321 return false; 322 } 323 } 324 243 325 if (!psDBCommit(config->dbh)) { 244 326 psError(PS_ERR_UNKNOWN, false, "database error"); 327 psFree(warpOutput); 245 328 psFree(output); 246 329 return false; 247 330 } 331 psFree(warpOutput); 248 332 } 249 333 psFree(output); … … 365 449 // required 366 450 PXOPT_LOOKUP_S64(ff_id, config->args, "-ff_id", true, false); 451 PXOPT_LOOKUP_S64(warp_id, config->args, "-warp_id", true, false); 367 452 368 453 // optional … … 384 469 if (!fullForceResultInsert(config->dbh, 385 470 ff_id, 471 warp_id, 386 472 path_base, 387 473 dtime_script, … … 398 484 } 399 485 486 #ifdef notdef 400 487 if (!fault) { 401 488 if (!setfullForceRunState(config, ff_id, "full")) { … … 407 494 } 408 495 } 496 #endif 409 497 410 498 // point of no return … … 557 645 psMetadata *where = psMetadataAlloc(); 558 646 PXOPT_COPY_S64(config->args, where, "-ff_id", "ff_id", "=="); 647 PXOPT_COPY_S64(config->args, where, "-warp_id", "ff_id", "=="); 559 648 560 649 … … 567 656 return true; 568 657 } 569 658 #ifdef notyet 570 659 static bool setfullForceRunState(pxConfig *config, psS64 ff_id, const char *state) 571 660 { … … 578 667 return true; 579 668 } 580 669 #endif 670 -
branches/bills_branches/bills_201312/ippTools/src/fftoolConfig.c
r36386 r36409 95 95 // -addresult 96 96 psMetadata *addresultArgs = psMetadataAlloc(); 97 psMetadataAddS64(addresultArgs, PS_LIST_TAIL, "-ff_id", 0, "define sky ID (required)", 0); 97 psMetadataAddS64(addresultArgs, PS_LIST_TAIL, "-ff_id", 0, "define full force ID (required)", 0); 98 psMetadataAddS64(addresultArgs, PS_LIST_TAIL, "-warp_id", 0, "define warp ID (required)", 0); 98 99 psMetadataAddStr(addresultArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location(required)", 0); 99 100 psMetadataAddF32(addresultArgs, PS_LIST_TAIL, "-dtime_script", 0, "define elapsed time in script (seconds)", NAN); … … 128 129 // -updateresult 129 130 psMetadata *updateresultArgs = psMetadataAlloc(); 130 psMetadataAddS64(updateresultArgs, PS_LIST_TAIL, "-ff_id", 0, "define staticksky ID (required)", 0); 131 psMetadataAddS64(updateresultArgs, PS_LIST_TAIL, "-ff_id", 0, "define full force ID (required)", 0); 132 psMetadataAddS64(updateresultArgs, PS_LIST_TAIL, "-warp_id", 0, "define warp ID (required)", 0); 131 133 psMetadataAddS16(updateresultArgs, PS_LIST_TAIL, "-fault", 0, "set fault code (required)", 0); 132 134 psMetadataAddS16(updateresultArgs, PS_LIST_TAIL, "-quality", 0, "set quality code", 0);
Note:
See TracChangeset
for help on using the changeset viewer.
