Changeset 28171 for branches/haf_branches/ipp.20100512/ippTools/src
- Timestamp:
- Jun 1, 2010, 10:45:19 AM (16 years ago)
- Location:
- branches/haf_branches/ipp.20100512/ippTools/src
- Files:
-
- 2 edited
-
addtool.c (modified) (7 diffs)
-
addtoolConfig.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/haf_branches/ipp.20100512/ippTools/src/addtool.c
r28170 r28171 891 891 892 892 893 893 894 894 if (!psDBCommit(config->dbh)) { 895 895 psError(PS_ERR_UNKNOWN, false, "database error"); … … 1085 1085 1086 1086 psStringAppend(&query2, " AND minidvodb_group = '%s' limit 1;", minidvodb_group); 1087 1087 1088 1088 1089 1089 … … 1114 1114 1115 1115 return true; 1116 1116 1117 1117 } 1118 1118 … … 1309 1309 PXOPT_LOOKUP_F32(dtime_merge, config->args, "-dtime_merge", false, false); 1310 1310 PXOPT_LOOKUP_TIME(epoch, config->args, "-epoch", false, false); 1311 PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-mergedvodb_path", false, false); 1311 PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-mergedvodb_path", true, false); 1312 PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-minidvodb_group", true, false); 1313 1312 1314 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 1313 1315 //generate restrictions 1314 1316 psMetadata *where = psMetadataAlloc(); 1315 1317 PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbRun.minidvodb_id", "=="); 1318 1319 1320 if (!psDBTransaction(config->dbh)) { 1321 psError(PS_ERR_UNKNOWN, false, "database error"); 1322 1323 return false; 1324 } 1325 1316 1326 1317 1327 psString query = pxDataGet("addtool_find_pendingmergeprocess.sql"); … … 1346 1356 } 1347 1357 1348 if (!psDBTransaction(config->dbh)) {1349 psError(PS_ERR_UNKNOWN, false, "database error");1350 psFree(output);1351 return false;1352 }1358 //if (!psDBTransaction(config->dbh)) { 1359 // psError(PS_ERR_UNKNOWN, false, "database error"); 1360 // psFree(output); 1361 // return false; 1362 // } 1353 1363 minidvodbRunRow *pendingRow = minidvodbRunObjectFromMetadata(output->data[0]); 1354 1364 psFree(output); … … 1377 1387 // since there is only one exp per 'new' set addRun.state = 'full' 1378 1388 1379 // psString query2 = NULL ; 1380 // 1381 // psStringAppend(&query2, "UPDATE minidvodbRun SET state = 'merging' WHERE minidvodb_name = '%s'", row->minidvodb_name); 1382 1383 //if (!p_psDBRunQuery(config->dbh, query2)) { 1384 // psError(PS_ERR_UNKNOWN, false, "database error"); 1385 // psFree(query2); 1386 // return false; 1387 // } 1388 // psArray *output2 = p_psDBFetchResult(config->dbh); 1389 // if (!output2) { 1390 //psError(PS_ERR_UNKNOWN, false, "database error"); 1391 //return false; 1392 // } 1393 // if (!psArrayLength(output2)) { 1394 // psTrace("addtool", PS_LOG_INFO, "no rows found"); 1395 // // psFree(output2); 1396 // return true; 1397 // } 1398 1399 1389 psString query2 = NULL ; 1390 psStringAppend(&query2, "UPDATE minidvodbRun SET state = 'merging' WHERE minidvodb_id = %'" PRIu64, row->minidvodb_id); 1400 1391 1401 // psFree(row); 1402 // psFree(pendingRow); 1403 // 1392 if (!p_psDBRunQuery(config->dbh, query2)) { 1393 // rollback 1394 if (!psDBRollback(config->dbh)) { 1395 psError(PS_ERR_UNKNOWN, false, "database error"); 1396 } 1397 psError(PS_ERR_UNKNOWN, false, "database error"); 1398 psFree(query2); 1399 return false; 1400 } 1401 1402 //this finds the # of merged things (for the merge order) 1403 psString query3 = NULL; 1404 psStringAppend(&query3, "select count(*) from minidvodbRun join minidvodbProcessed using (minidvodb_id) where state = 'merged' and minidvodb_group = '%s';", minidvodb_group); 1405 1406 if (!p_psDBRunQuery(config->dbh, query3)) { 1407 // rollback 1408 if (!psDBRollback(config->dbh)) { 1409 psError(PS_ERR_UNKNOWN, false, "database error"); 1410 } 1411 psError(PS_ERR_UNKNOWN, false, "database error"); 1412 psFree(query3); 1413 return false; 1414 } 1415 psArray *output2 = p_psDBFetchResult(config->dbh); 1416 if (!output2) { 1417 psError(PS_ERR_UNKNOWN, false, "database error"); 1418 return false; 1419 } 1420 if (!psArrayLength(output2)) { 1421 psTrace("addtool", PS_LOG_INFO, "no rows found"); 1422 psFree(output); 1423 return true; 1424 } 1425 bool status; 1426 psS64 m_order = psMetadataLookupS64(&status, output2->data[0], "count(*)"); 1427 if (!status) { 1428 1429 psAbort("failed to lookup value for count column"); 1430 return false; 1431 } 1432 psString final = NULL; 1433 psStringAppend(&final, "%" PRIu64, m_order); 1434 printf("%s", final); 1435 //return false; 1436 1437 1438 1439 psFree(query3); 1440 1441 1442 psFree(output2); 1443 1444 1445 psString query4 = NULL; 1446 psStringAppend(&query4, "update minidvodbProcessed set merge_order = %"PRIu64,m_order); 1447 psStringAppend(&query4," where minidvodb_id = %" PRIu64, minidvodb_id); 1448 printf("%s", query4); 1449 if (!p_psDBRunQuery(config->dbh, query4)) { 1450 // rollback 1451 if (!psDBRollback(config->dbh)) { 1452 psError(PS_ERR_UNKNOWN, false, "database error"); 1453 } 1454 psError(PS_ERR_UNKNOWN, false, "database error"); 1455 psFree(query4); 1456 return false; 1457 } 1458 // 1459 1460 1461 psFree(query4); 1462 psFree(row); 1463 psFree(pendingRow); 1464 1404 1465 if (!psDBCommit(config->dbh)) { 1405 1466 psError(PS_ERR_UNKNOWN, false, "database error"); … … 1408 1469 1409 1470 1410 1471 printf("%s", final); 1472 psFree(final); 1411 1473 1412 1474 return true; -
branches/haf_branches/ipp.20100512/ippTools/src/addtoolConfig.c
r28102 r28171 196 196 psMetadataAddTime(addminidvodbprocessedArgs, PS_LIST_TAIL, "-epoch", 0, "time merge is finished", NULL); 197 197 psMetadataAddStr(addminidvodbprocessedArgs, PS_LIST_TAIL, "-mergedvodb_path",0, "path of merged dvodb", NULL); 198 psMetadataAddStr(addminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_group",0, "minidvodb_group", NULL); 198 199 psMetadataAddS16(addminidvodbprocessedArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 199 200
Note:
See TracChangeset
for help on using the changeset viewer.
