IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 8528


Ignore:
Timestamp:
Aug 23, 2006, 1:55:03 PM (20 years ago)
Author:
jhoblitt
Message:

VERSION 0.0.32

Location:
trunk
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/dbconfig/config.md

    r8433 r8528  
    22    pkg_name        STR     ippdb
    33    pkg_namespace   STR     ippdb
    4     pkg_version     STR     0.0.31
     4    pkg_version     STR     0.0.32
    55END
  • trunk/ippdb/Makefile.am

    r8380 r8528  
    4141    $(top_builddir)/docs/man/man3/detMasterImfileRow.3 \
    4242    $(top_builddir)/docs/man/man3/detResidImfileRow.3 \
    43     $(top_builddir)/docs/man/man3/detResidExpRow.3
     43    $(top_builddir)/docs/man/man3/detResidExpRow.3 \
     44    $(top_builddir)/docs/man/man3/detRunSummaryRow.3
    4445
    4546
    46 docs/man/man3/ippdb.3 docs/man/man3/weatherRow.3 docs/man/man3/skyp_transparencyRow.3 docs/man/man3/skyp_absorptionRow.3 docs/man/man3/skyp_emissionRow.3 docs/man/man3/dimmRow.3 docs/man/man3/skyp_irRow.3 docs/man/man3/domeRow.3 docs/man/man3/telescopeRow.3 docs/man/man3/summitExpRow.3 docs/man/man3/pzPendingExpRow.3 docs/man/man3/pzPendingImfileRow.3 docs/man/man3/newExpRow.3 docs/man/man3/newImfileRow.3 docs/man/man3/rawDetrendExpRow.3 docs/man/man3/rawScienceExpRow.3 docs/man/man3/rawImfileRow.3 docs/man/man3/p1PendingExpRow.3 docs/man/man3/p2PendingExpRow.3 docs/man/man3/p2PendingImfileRow.3 docs/man/man3/p2DoneExpRow.3 docs/man/man3/p2DoneImfileRow.3 docs/man/man3/p3PendingExpRow.3 docs/man/man3/detRunRow.3 docs/man/man3/detInputExpRow.3 docs/man/man3/detProcessedImfileRow.3 docs/man/man3/detStackedImfileRow.3 docs/man/man3/detNormalizedStatImfileRow.3 docs/man/man3/detNormalizedImfileRow.3 docs/man/man3/detMasterFrameRow.3 docs/man/man3/detMasterImfileRow.3 docs/man/man3/detResidImfileRow.3 docs/man/man3/detResidExpRow.3:
     47docs/man/man3/ippdb.3 docs/man/man3/weatherRow.3 docs/man/man3/skyp_transparencyRow.3 docs/man/man3/skyp_absorptionRow.3 docs/man/man3/skyp_emissionRow.3 docs/man/man3/dimmRow.3 docs/man/man3/skyp_irRow.3 docs/man/man3/domeRow.3 docs/man/man3/telescopeRow.3 docs/man/man3/summitExpRow.3 docs/man/man3/pzPendingExpRow.3 docs/man/man3/pzPendingImfileRow.3 docs/man/man3/newExpRow.3 docs/man/man3/newImfileRow.3 docs/man/man3/rawDetrendExpRow.3 docs/man/man3/rawScienceExpRow.3 docs/man/man3/rawImfileRow.3 docs/man/man3/p1PendingExpRow.3 docs/man/man3/p2PendingExpRow.3 docs/man/man3/p2PendingImfileRow.3 docs/man/man3/p2DoneExpRow.3 docs/man/man3/p2DoneImfileRow.3 docs/man/man3/p3PendingExpRow.3 docs/man/man3/detRunRow.3 docs/man/man3/detInputExpRow.3 docs/man/man3/detProcessedImfileRow.3 docs/man/man3/detStackedImfileRow.3 docs/man/man3/detNormalizedStatImfileRow.3 docs/man/man3/detNormalizedImfileRow.3 docs/man/man3/detMasterFrameRow.3 docs/man/man3/detMasterImfileRow.3 docs/man/man3/detResidImfileRow.3 docs/man/man3/detResidExpRow.3 docs/man/man3/detRunSummaryRow.3:
    4748        $(DOXYGEN)
    4849
  • trunk/ippdb/configure.ac

    r8380 r8528  
    11AC_PREREQ(2.59)
    22
    3 AC_INIT([ippdb], [0.0.30], [pan-starrs.ifa.hawaii.edu])
     3AC_INIT([ippdb], [0.0.32], [pan-starrs.ifa.hawaii.edu])
    44AC_CONFIG_SRCDIR([ippdb.pc.in])
    55
  • trunk/ippdb/src/ippdb.c

    r8380 r8528  
    6868#define DETRESIDEXP_TABLE_NAME "detResidExp"
    6969#define DETRESIDEXP_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
     70#define DETRUNSUMMARY_TABLE_NAME "detRunSummary"
     71#define DETRUNSUMMARY_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
    7072#define MAX_STRING_LENGTH 1024
    7173
     
    1260712609        return false;
    1260812610    }
    12609     if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, 0)) {
     12611    if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, "Key", 0)) {
    1261012612        psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");
    1261112613        psFree(md);
     
    1299212994static void detInputExpRowFree(detInputExpRow *object);
    1299312995
    12994 detInputExpRow *detInputExpRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, bool include, bool accept)
     12996detInputExpRow *detInputExpRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, bool include)
    1299512997{
    1299612998    detInputExpRow  *object;
     
    1300313005    object->exp_id = psStringCopy(exp_id);
    1300413006    object->include = include;
    13005     object->accept = accept;
    1300613007
    1300713008    return object;
     
    1304413045        return false;
    1304513046    }
    13046     if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, false)) {
    13047         psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
    13048         psFree(md);
    13049         return false;
    13050     }
    1305113047
    1305213048    status = psDBCreateTable(dbh, DETINPUTEXP_TABLE_NAME, md);
     
    1306213058}
    1306313059
    13064 bool detInputExpInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, bool include, bool accept)
     13060bool detInputExpInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, bool include)
    1306513061{
    1306613062    psMetadata      *md;
     
    1308513081    if (!psMetadataAdd(md, PS_LIST_TAIL, "include", PS_DATA_BOOL, NULL, include)) {
    1308613082        psError(PS_ERR_UNKNOWN, false, "failed to add item include");
    13087         psFree(md);
    13088         return false;
    13089     }
    13090     if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, accept)) {
    13091         psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
    1309213083        psFree(md);
    1309313084        return false;
     
    1311413105    return deleted;
    1311513106}
    13116 bool detInputExpPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, bool *include, bool *accept)
     13107bool detInputExpPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, bool *include)
    1311713108{
    1311813109    psArray         *rowSet;
     
    1318213173        return false;
    1318313174    }
    13184     *accept = psMetadataLookupBool(&status, row, "accept");
    13185     if (!status) {
    13186         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item accept");
    13187         psFree(row);
    13188         return false;
    13189     }
    1319013175
    1319113176    psFree(row);
     
    1319613181bool detInputExpInsertObject(psDB *dbh, detInputExpRow *object)
    1319713182{
    13198     return detInputExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->include, object->accept);
     13183    return detInputExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->include);
    1319913184}
    1320013185
     
    1321613201    char            exp_id[256];
    1321713202    bool            include;
    13218     bool            accept;
    13219 
    13220     if (!detInputExpPop(dbh, &det_id, &iteration, (char **)&exp_id, &include, &accept)) {
     13203
     13204    if (!detInputExpPop(dbh, &det_id, &iteration, (char **)&exp_id, &include)) {
    1322113205        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1322213206        return NULL;
    1322313207    }
    1322413208
    13225     return detInputExpRowAlloc(det_id, iteration, exp_id, include, accept);
     13209    return detInputExpRowAlloc(det_id, iteration, exp_id, include);
    1322613210}
    1322713211
     
    1334213326        return NULL;
    1334313327    }
    13344     if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, object->accept)) {
    13345         psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
    13346         psFree(md);
    13347         return NULL;
    13348     }
    1334913328
    1335013329    return md;
     
    1335813337    char            *exp_id;
    1335913338    bool            include;
    13360     bool            accept;
    1336113339
    1336213340    det_id = psMetadataLookupS32(&status, md, "det_id");
     
    1338013358        return false;
    1338113359    }
    13382     accept = psMetadataLookupBool(&status, md, "accept");
    13383     if (!status) {
    13384         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item accept");
    13385         return false;
    13386     }
    13387 
    13388     return detInputExpRowAlloc(det_id, iteration, exp_id, include, accept);
     13360
     13361    return detInputExpRowAlloc(det_id, iteration, exp_id, include);
    1338913362}
    1339013363psArray *detInputExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1408414057static void detStackedImfileRowFree(detStackedImfileRow *object);
    1408514058
    14086 detStackedImfileRow *detStackedImfileRowAlloc(psS32 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe)
     14059detStackedImfileRow *detStackedImfileRowAlloc(psS32 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev)
    1408714060{
    1408814061    detStackedImfileRow *object;
     
    1409614069    object->uri = psStringCopy(uri);
    1409714070    object->recipe = psStringCopy(recipe);
     14071    object->bg = bg;
     14072    object->bg_stdev = bg_stdev;
     14073    object->bg_mean_stdev = bg_mean_stdev;
    1409814074
    1409914075    return object;
     
    1414314119        return false;
    1414414120    }
     14121    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) {
     14122        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     14123        psFree(md);
     14124        return false;
     14125    }
     14126    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) {
     14127        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     14128        psFree(md);
     14129        return false;
     14130    }
     14131    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) {
     14132        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     14133        psFree(md);
     14134        return false;
     14135    }
    1414514136
    1414614137    status = psDBCreateTable(dbh, DETSTACKEDIMFILE_TABLE_NAME, md);
     
    1415614147}
    1415714148
    14158 bool detStackedImfileInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe)
     14149bool detStackedImfileInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev)
    1415914150{
    1416014151    psMetadata      *md;
     
    1418414175    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, recipe)) {
    1418514176        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     14177        psFree(md);
     14178        return false;
     14179    }
     14180    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) {
     14181        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     14182        psFree(md);
     14183        return false;
     14184    }
     14185    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) {
     14186        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     14187        psFree(md);
     14188        return false;
     14189    }
     14190    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) {
     14191        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
    1418614192        psFree(md);
    1418714193        return false;
     
    1420814214    return deleted;
    1420914215}
    14210 bool detStackedImfilePop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **class_id, char **uri, char **recipe)
     14216bool detStackedImfilePop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **class_id, char **uri, char **recipe, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev)
    1421114217{
    1421214218    psArray         *rowSet;
     
    1428214288        return false;
    1428314289    }
     14290    *bg = psMetadataLookupF64(&status, row, "bg");
     14291    if (!status) {
     14292        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     14293        psFree(row);
     14294        return false;
     14295    }
     14296    *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev");
     14297    if (!status) {
     14298        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     14299        psFree(row);
     14300        return false;
     14301    }
     14302    *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev");
     14303    if (!status) {
     14304        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     14305        psFree(row);
     14306        return false;
     14307    }
    1428414308
    1428514309    psFree(row);
     
    1429014314bool detStackedImfileInsertObject(psDB *dbh, detStackedImfileRow *object)
    1429114315{
    14292     return detStackedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->recipe);
     14316    return detStackedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev);
    1429314317}
    1429414318
     
    1431114335    char            uri[256];
    1431214336    char            recipe[256];
    14313 
    14314     if (!detStackedImfilePop(dbh, &det_id, &iteration, (char **)&class_id, (char **)&uri, (char **)&recipe)) {
     14337    psF64           bg;
     14338    psF64           bg_stdev;
     14339    psF64           bg_mean_stdev;
     14340
     14341    if (!detStackedImfilePop(dbh, &det_id, &iteration, (char **)&class_id, (char **)&uri, (char **)&recipe, &bg, &bg_stdev, &bg_mean_stdev)) {
    1431514342        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1431614343        return NULL;
    1431714344    }
    1431814345
    14319     return detStackedImfileRowAlloc(det_id, iteration, class_id, uri, recipe);
     14346    return detStackedImfileRowAlloc(det_id, iteration, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev);
    1432014347}
    1432114348
     
    1444114468        return NULL;
    1444214469    }
     14470    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) {
     14471        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     14472        psFree(md);
     14473        return NULL;
     14474    }
     14475    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) {
     14476        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     14477        psFree(md);
     14478        return NULL;
     14479    }
     14480    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) {
     14481        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     14482        psFree(md);
     14483        return NULL;
     14484    }
    1444314485
    1444414486    return md;
     
    1445314495    char            *uri;
    1445414496    char            *recipe;
     14497    psF64           bg;
     14498    psF64           bg_stdev;
     14499    psF64           bg_mean_stdev;
    1445514500
    1445614501    det_id = psMetadataLookupS32(&status, md, "det_id");
     
    1447914524        return false;
    1448014525    }
    14481 
    14482     return detStackedImfileRowAlloc(det_id, iteration, class_id, uri, recipe);
     14526    bg = psMetadataLookupF64(&status, md, "bg");
     14527    if (!status) {
     14528        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     14529        return false;
     14530    }
     14531    bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
     14532    if (!status) {
     14533        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     14534        return false;
     14535    }
     14536    bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
     14537    if (!status) {
     14538        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     14539        return false;
     14540    }
     14541
     14542    return detStackedImfileRowAlloc(det_id, iteration, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev);
    1448314543}
    1448414544psArray *detStackedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1644916509static void detResidImfileRowFree(detResidImfileRow *object);
    1645016510
    16451 detResidImfileRow *detResidImfileRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, const char *class_id, const char *recipe, const char *uri, const char *b1_uri, const char *b2_uri)
     16511detResidImfileRow *detResidImfileRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *b1_uri, const char *b2_uri)
    1645216512{
    1645316513    detResidImfileRow *object;
     
    1646016520    object->exp_id = psStringCopy(exp_id);
    1646116521    object->class_id = psStringCopy(class_id);
     16522    object->uri = psStringCopy(uri);
    1646216523    object->recipe = psStringCopy(recipe);
    16463     object->uri = psStringCopy(uri);
     16524    object->bg = bg;
     16525    object->bg_stdev = bg_stdev;
     16526    object->bg_mean_stdev = bg_mean_stdev;
    1646416527    object->b1_uri = psStringCopy(b1_uri);
    1646516528    object->b2_uri = psStringCopy(b2_uri);
     
    1647216535    psFree(object->exp_id);
    1647316536    psFree(object->class_id);
     16537    psFree(object->uri);
    1647416538    psFree(object->recipe);
    16475     psFree(object->uri);
    1647616539    psFree(object->b1_uri);
    1647716540    psFree(object->b2_uri);
     
    1650916572        return false;
    1651016573    }
     16574    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "64")) {
     16575        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     16576        psFree(md);
     16577        return false;
     16578    }
    1651116579    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
    1651216580        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    1651416582        return false;
    1651516583    }
    16516     if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "64")) {
    16517         psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     16584    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) {
     16585        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     16586        psFree(md);
     16587        return false;
     16588    }
     16589    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) {
     16590        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     16591        psFree(md);
     16592        return false;
     16593    }
     16594    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) {
     16595        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
    1651816596        psFree(md);
    1651916597        return false;
     
    1654216620}
    1654316621
    16544 bool detResidImfileInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, const char *class_id, const char *recipe, const char *uri, const char *b1_uri, const char *b2_uri)
     16622bool detResidImfileInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *b1_uri, const char *b2_uri)
    1654516623{
    1654616624    psMetadata      *md;
     
    1656816646        return false;
    1656916647    }
     16648    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, uri)) {
     16649        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     16650        psFree(md);
     16651        return false;
     16652    }
    1657016653    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, recipe)) {
    1657116654        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    1657316656        return false;
    1657416657    }
    16575     if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, uri)) {
    16576         psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     16658    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) {
     16659        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     16660        psFree(md);
     16661        return false;
     16662    }
     16663    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) {
     16664        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     16665        psFree(md);
     16666        return false;
     16667    }
     16668    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) {
     16669        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
    1657716670        psFree(md);
    1657816671        return false;
     
    1660916702    return deleted;
    1661016703}
    16611 bool detResidImfilePop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, char **class_id, char **recipe, char **uri, char **b1_uri, char **b2_uri)
     16704bool detResidImfilePop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, char **class_id, char **uri, char **recipe, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, char **b1_uri, char **b2_uri)
    1661216705{
    1661316706    psArray         *rowSet;
     
    1667716770        return false;
    1667816771    }
     16772    *uri = psMetadataLookupPtr(&status, row, "uri");
     16773    if (!status) {
     16774        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
     16775        psFree(row);
     16776        return false;
     16777    }
    1667916778    *recipe = psMetadataLookupPtr(&status, row, "recipe");
    1668016779    if (!status) {
     
    1668316782        return false;
    1668416783    }
    16685     *uri = psMetadataLookupPtr(&status, row, "uri");
    16686     if (!status) {
    16687         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
     16784    *bg = psMetadataLookupF64(&status, row, "bg");
     16785    if (!status) {
     16786        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     16787        psFree(row);
     16788        return false;
     16789    }
     16790    *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev");
     16791    if (!status) {
     16792        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     16793        psFree(row);
     16794        return false;
     16795    }
     16796    *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev");
     16797    if (!status) {
     16798        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
    1668816799        psFree(row);
    1668916800        return false;
     
    1670916820bool detResidImfileInsertObject(psDB *dbh, detResidImfileRow *object)
    1671016821{
    16711     return detResidImfileInsert(dbh, object->det_id, object->iteration, object->exp_id, object->class_id, object->recipe, object->uri, object->b1_uri, object->b2_uri);
     16822    return detResidImfileInsert(dbh, object->det_id, object->iteration, object->exp_id, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->b1_uri, object->b2_uri);
    1671216823}
    1671316824
     
    1672916840    char            exp_id[256];
    1673016841    char            class_id[256];
     16842    char            uri[256];
    1673116843    char            recipe[256];
    16732     char            uri[256];
     16844    psF64           bg;
     16845    psF64           bg_stdev;
     16846    psF64           bg_mean_stdev;
    1673316847    char            b1_uri[256];
    1673416848    char            b2_uri[256];
    1673516849
    16736     if (!detResidImfilePop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&class_id, (char **)&recipe, (char **)&uri, (char **)&b1_uri, (char **)&b2_uri)) {
     16850    if (!detResidImfilePop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&class_id, (char **)&uri, (char **)&recipe, &bg, &bg_stdev, &bg_mean_stdev, (char **)&b1_uri, (char **)&b2_uri)) {
    1673716851        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1673816852        return NULL;
    1673916853    }
    1674016854
    16741     return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, recipe, uri, b1_uri, b2_uri);
     16855    return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, b1_uri, b2_uri);
    1674216856}
    1674316857
     
    1685816972        return NULL;
    1685916973    }
     16974    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, object->uri)) {
     16975        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     16976        psFree(md);
     16977        return NULL;
     16978    }
    1686016979    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
    1686116980        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    1686316982        return NULL;
    1686416983    }
    16865     if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, object->uri)) {
    16866         psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     16984    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) {
     16985        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     16986        psFree(md);
     16987        return NULL;
     16988    }
     16989    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) {
     16990        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     16991        psFree(md);
     16992        return NULL;
     16993    }
     16994    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) {
     16995        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
    1686716996        psFree(md);
    1686816997        return NULL;
     
    1688917018    char            *exp_id;
    1689017019    char            *class_id;
     17020    char            *uri;
    1689117021    char            *recipe;
    16892     char            *uri;
     17022    psF64           bg;
     17023    psF64           bg_stdev;
     17024    psF64           bg_mean_stdev;
    1689317025    char            *b1_uri;
    1689417026    char            *b2_uri;
     
    1691417046        return false;
    1691517047    }
     17048    uri = psMetadataLookupPtr(&status, md, "uri");
     17049    if (!status) {
     17050        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
     17051        return false;
     17052    }
    1691617053    recipe = psMetadataLookupPtr(&status, md, "recipe");
    1691717054    if (!status) {
     
    1691917056        return false;
    1692017057    }
    16921     uri = psMetadataLookupPtr(&status, md, "uri");
    16922     if (!status) {
    16923         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
     17058    bg = psMetadataLookupF64(&status, md, "bg");
     17059    if (!status) {
     17060        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     17061        return false;
     17062    }
     17063    bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
     17064    if (!status) {
     17065        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     17066        return false;
     17067    }
     17068    bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
     17069    if (!status) {
     17070        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
    1692417071        return false;
    1692517072    }
     
    1693517082    }
    1693617083
    16937     return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, recipe, uri, b1_uri, b2_uri);
     17084    return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, b1_uri, b2_uri);
    1693817085}
    1693917086psArray *detResidImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1704217189static void detResidExpRowFree(detResidExpRow *object);
    1704317190
    17044 detResidExpRow *detResidExpRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, const char *recipe, bool keep, bool accept)
     17191detResidExpRow *detResidExpRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *b1_uri, const char *b2_uri, bool accept)
    1704517192{
    1704617193    detResidExpRow  *object;
     
    1705317200    object->exp_id = psStringCopy(exp_id);
    1705417201    object->recipe = psStringCopy(recipe);
    17055     object->keep = keep;
     17202    object->bg = bg;
     17203    object->bg_stdev = bg_stdev;
     17204    object->bg_mean_stdev = bg_mean_stdev;
     17205    object->b1_uri = psStringCopy(b1_uri);
     17206    object->b2_uri = psStringCopy(b2_uri);
    1705617207    object->accept = accept;
    1705717208
     
    1706317214    psFree(object->exp_id);
    1706417215    psFree(object->recipe);
     17216    psFree(object->b1_uri);
     17217    psFree(object->b2_uri);
    1706517218}
    1706617219
     
    1709617249        return false;
    1709717250    }
    17098     if (!psMetadataAdd(md, PS_LIST_TAIL, "keep", PS_DATA_BOOL, NULL, false)) {
    17099         psError(PS_ERR_UNKNOWN, false, "failed to add item keep");
     17251    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) {
     17252        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     17253        psFree(md);
     17254        return false;
     17255    }
     17256    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) {
     17257        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     17258        psFree(md);
     17259        return false;
     17260    }
     17261    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) {
     17262        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     17263        psFree(md);
     17264        return false;
     17265    }
     17266    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b1_uri", 0, NULL, "64")) {
     17267        psError(PS_ERR_UNKNOWN, false, "failed to add item b1_uri");
     17268        psFree(md);
     17269        return false;
     17270    }
     17271    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b2_uri", 0, NULL, "64")) {
     17272        psError(PS_ERR_UNKNOWN, false, "failed to add item b2_uri");
    1710017273        psFree(md);
    1710117274        return false;
     
    1711917292}
    1712017293
    17121 bool detResidExpInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, const char *recipe, bool keep, bool accept)
     17294bool detResidExpInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *b1_uri, const char *b2_uri, bool accept)
    1712217295{
    1712317296    psMetadata      *md;
     
    1714517318        return false;
    1714617319    }
    17147     if (!psMetadataAdd(md, PS_LIST_TAIL, "keep", PS_DATA_BOOL, NULL, keep)) {
    17148         psError(PS_ERR_UNKNOWN, false, "failed to add item keep");
     17320    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) {
     17321        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     17322        psFree(md);
     17323        return false;
     17324    }
     17325    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) {
     17326        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     17327        psFree(md);
     17328        return false;
     17329    }
     17330    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) {
     17331        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     17332        psFree(md);
     17333        return false;
     17334    }
     17335    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b1_uri", 0, NULL, b1_uri)) {
     17336        psError(PS_ERR_UNKNOWN, false, "failed to add item b1_uri");
     17337        psFree(md);
     17338        return false;
     17339    }
     17340    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b2_uri", 0, NULL, b2_uri)) {
     17341        psError(PS_ERR_UNKNOWN, false, "failed to add item b2_uri");
    1714917342        psFree(md);
    1715017343        return false;
     
    1717617369    return deleted;
    1717717370}
    17178 bool detResidExpPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, char **recipe, bool *keep, bool *accept)
     17371bool detResidExpPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, char **recipe, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, char **b1_uri, char **b2_uri, bool *accept)
    1717917372{
    1718017373    psArray         *rowSet;
     
    1724417437        return false;
    1724517438    }
    17246     *keep = psMetadataLookupBool(&status, row, "keep");
    17247     if (!status) {
    17248         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item keep");
     17439    *bg = psMetadataLookupF64(&status, row, "bg");
     17440    if (!status) {
     17441        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     17442        psFree(row);
     17443        return false;
     17444    }
     17445    *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev");
     17446    if (!status) {
     17447        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     17448        psFree(row);
     17449        return false;
     17450    }
     17451    *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev");
     17452    if (!status) {
     17453        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     17454        psFree(row);
     17455        return false;
     17456    }
     17457    *b1_uri = psMetadataLookupPtr(&status, row, "b1_uri");
     17458    if (!status) {
     17459        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item b1_uri");
     17460        psFree(row);
     17461        return false;
     17462    }
     17463    *b2_uri = psMetadataLookupPtr(&status, row, "b2_uri");
     17464    if (!status) {
     17465        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item b2_uri");
    1724917466        psFree(row);
    1725017467        return false;
     
    1726417481bool detResidExpInsertObject(psDB *dbh, detResidExpRow *object)
    1726517482{
    17266     return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->recipe, object->keep, object->accept);
     17483    return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->b1_uri, object->b2_uri, object->accept);
    1726717484}
    1726817485
     
    1728417501    char            exp_id[256];
    1728517502    char            recipe[256];
    17286     bool            keep;
     17503    psF64           bg;
     17504    psF64           bg_stdev;
     17505    psF64           bg_mean_stdev;
     17506    char            b1_uri[256];
     17507    char            b2_uri[256];
    1728717508    bool            accept;
    1728817509
    17289     if (!detResidExpPop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&recipe, &keep, &accept)) {
     17510    if (!detResidExpPop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&recipe, &bg, &bg_stdev, &bg_mean_stdev, (char **)&b1_uri, (char **)&b2_uri, &accept)) {
    1729017511        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1729117512        return NULL;
    1729217513    }
    1729317514
    17294     return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, keep, accept);
     17515    return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, bg, bg_stdev, bg_mean_stdev, b1_uri, b2_uri, accept);
    1729517516}
    1729617517
     
    1741117632        return NULL;
    1741217633    }
    17413     if (!psMetadataAdd(md, PS_LIST_TAIL, "keep", PS_DATA_BOOL, NULL, object->keep)) {
    17414         psError(PS_ERR_UNKNOWN, false, "failed to add item keep");
     17634    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) {
     17635        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     17636        psFree(md);
     17637        return NULL;
     17638    }
     17639    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) {
     17640        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     17641        psFree(md);
     17642        return NULL;
     17643    }
     17644    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) {
     17645        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     17646        psFree(md);
     17647        return NULL;
     17648    }
     17649    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b1_uri", 0, NULL, object->b1_uri)) {
     17650        psError(PS_ERR_UNKNOWN, false, "failed to add item b1_uri");
     17651        psFree(md);
     17652        return NULL;
     17653    }
     17654    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b2_uri", 0, NULL, object->b2_uri)) {
     17655        psError(PS_ERR_UNKNOWN, false, "failed to add item b2_uri");
    1741517656        psFree(md);
    1741617657        return NULL;
     
    1743217673    char            *exp_id;
    1743317674    char            *recipe;
    17434     bool            keep;
     17675    psF64           bg;
     17676    psF64           bg_stdev;
     17677    psF64           bg_mean_stdev;
     17678    char            *b1_uri;
     17679    char            *b2_uri;
    1743517680    bool            accept;
    1743617681
     
    1745517700        return false;
    1745617701    }
    17457     keep = psMetadataLookupBool(&status, md, "keep");
    17458     if (!status) {
    17459         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item keep");
     17702    bg = psMetadataLookupF64(&status, md, "bg");
     17703    if (!status) {
     17704        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     17705        return false;
     17706    }
     17707    bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
     17708    if (!status) {
     17709        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     17710        return false;
     17711    }
     17712    bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
     17713    if (!status) {
     17714        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     17715        return false;
     17716    }
     17717    b1_uri = psMetadataLookupPtr(&status, md, "b1_uri");
     17718    if (!status) {
     17719        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item b1_uri");
     17720        return false;
     17721    }
     17722    b2_uri = psMetadataLookupPtr(&status, md, "b2_uri");
     17723    if (!status) {
     17724        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item b2_uri");
    1746017725        return false;
    1746117726    }
     
    1746617731    }
    1746717732
    17468     return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, keep, accept);
     17733    return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, bg, bg_stdev, bg_mean_stdev, b1_uri, b2_uri, accept);
    1746917734}
    1747017735psArray *detResidExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1757117836    return true;
    1757217837}
     17838static void detRunSummaryRowFree(detRunSummaryRow *object);
     17839
     17840detRunSummaryRow *detRunSummaryRowAlloc(psS32 det_id, psS32 iteration, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, bool accept)
     17841{
     17842    detRunSummaryRow *object;
     17843
     17844    object = psAlloc(sizeof(detRunSummaryRow));
     17845    psMemSetDeallocator(object, (psFreeFunc)detRunSummaryRowFree);
     17846
     17847    object->det_id = det_id;
     17848    object->iteration = iteration;
     17849    object->bg = bg;
     17850    object->bg_stdev = bg_stdev;
     17851    object->bg_mean_stdev = bg_mean_stdev;
     17852    object->accept = accept;
     17853
     17854    return object;
     17855}
     17856
     17857static void detRunSummaryRowFree(detRunSummaryRow *object)
     17858{
     17859}
     17860
     17861bool detRunSummaryCreateTable(psDB *dbh)
     17862{
     17863    psMetadata      *md;
     17864    bool            status;
     17865
     17866    md = psMetadataAlloc();
     17867    if (!psMetadataAdd(md, PS_LIST_TAIL, DETRUNSUMMARY_INDEX_NAME, PS_DATA_S32, "AUTO_INCREMENT", 0.0)) {
     17868        psError(PS_ERR_UNKNOWN, false, "failed to add item %s", DETRUNSUMMARY_INDEX_NAME);
     17869        psFree(md);
     17870        return false;
     17871    }
     17872    if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, "Primary Key", 0)) {
     17873        psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");
     17874        psFree(md);
     17875        return false;
     17876    }
     17877    if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, "Primary Key", 0)) {
     17878        psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");
     17879        psFree(md);
     17880        return false;
     17881    }
     17882    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) {
     17883        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     17884        psFree(md);
     17885        return false;
     17886    }
     17887    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) {
     17888        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     17889        psFree(md);
     17890        return false;
     17891    }
     17892    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) {
     17893        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     17894        psFree(md);
     17895        return false;
     17896    }
     17897    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, false)) {
     17898        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
     17899        psFree(md);
     17900        return false;
     17901    }
     17902
     17903    status = psDBCreateTable(dbh, DETRUNSUMMARY_TABLE_NAME, md);
     17904
     17905    psFree(md);
     17906
     17907    return status;
     17908}
     17909
     17910bool detRunSummaryDropTable(psDB *dbh)
     17911{
     17912    return psDBDropTable(dbh, DETRUNSUMMARY_TABLE_NAME);
     17913}
     17914
     17915bool detRunSummaryInsert(psDB * dbh, psS32 det_id, psS32 iteration, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, bool accept)
     17916{
     17917    psMetadata      *md;
     17918    bool            status;
     17919
     17920    md = psMetadataAlloc();
     17921    if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, det_id)) {
     17922        psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");
     17923        psFree(md);
     17924        return false;
     17925    }
     17926    if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, iteration)) {
     17927        psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");
     17928        psFree(md);
     17929        return false;
     17930    }
     17931    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) {
     17932        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     17933        psFree(md);
     17934        return false;
     17935    }
     17936    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) {
     17937        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     17938        psFree(md);
     17939        return false;
     17940    }
     17941    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) {
     17942        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     17943        psFree(md);
     17944        return false;
     17945    }
     17946    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, accept)) {
     17947        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
     17948        psFree(md);
     17949        return false;
     17950    }
     17951
     17952    status = psDBInsertOneRow(dbh, DETRUNSUMMARY_TABLE_NAME, md);
     17953    psFree(md);
     17954
     17955    return status;
     17956}
     17957
     17958long long detRunSummaryDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     17959{
     17960    long long       deleted = 0;
     17961
     17962    long long count = psDBDeleteRows(dbh, DETRUNSUMMARY_TABLE_NAME, where, limit);
     17963    if (count < 0) {
     17964        psError(PS_ERR_UNKNOWN, true, "failed to delete row from detRunSummary");
     17965        return count;
     17966
     17967        deleted += count;
     17968    }
     17969
     17970    return deleted;
     17971}
     17972bool detRunSummaryPop(psDB *dbh, psS32 *det_id, psS32 *iteration, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, bool *accept)
     17973{
     17974    psArray         *rowSet;
     17975    psMetadata      *row;
     17976    psMetadata      *popped;
     17977    long            deleted;
     17978    bool            status;
     17979    int             rowID;
     17980
     17981    rowSet = psDBSelectRows(dbh, DETRUNSUMMARY_TABLE_NAME, NULL, 1);
     17982    if (!rowSet) {
     17983        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", DETRUNSUMMARY_INDEX_NAME);
     17984        psFree(rowSet);
     17985        return NULL;
     17986    }
     17987
     17988    row = psArrayGet(rowSet, 0);
     17989    psMemIncrRefCounter(row);
     17990    if (!row) {
     17991        psError(PS_ERR_UNKNOWN, true, "database error or table is empty");
     17992        return NULL;
     17993    }
     17994    psFree(rowSet);
     17995
     17996    rowID = psMetadataLookupS32(&status, row, DETRUNSUMMARY_INDEX_NAME);
     17997    if (!status) {
     17998        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", DETRUNSUMMARY_INDEX_NAME);
     17999        psFree(row);
     18000        return NULL;
     18001    }
     18002
     18003    popped = psMetadataAlloc();
     18004    psMetadataAddS32(popped, PS_LIST_TAIL, DETRUNSUMMARY_INDEX_NAME, 0, NULL, rowID);
     18005
     18006    deleted = psDBDeleteRows(dbh, DETRUNSUMMARY_TABLE_NAME, popped, 0);
     18007    if (deleted != 1) {
     18008        psError(PS_ERR_UNKNOWN, false, "database failed to delete row");
     18009        psFree(popped);
     18010        psFree(row);
     18011        return NULL;
     18012    }
     18013
     18014    psFree(popped);
     18015
     18016    *det_id = psMetadataLookupS32(&status, row, "det_id");
     18017    if (!status) {
     18018        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item det_id");
     18019        psFree(row);
     18020        return false;
     18021    }
     18022    *iteration = psMetadataLookupS32(&status, row, "iteration");
     18023    if (!status) {
     18024        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iteration");
     18025        psFree(row);
     18026        return false;
     18027    }
     18028    *bg = psMetadataLookupF64(&status, row, "bg");
     18029    if (!status) {
     18030        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     18031        psFree(row);
     18032        return false;
     18033    }
     18034    *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev");
     18035    if (!status) {
     18036        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     18037        psFree(row);
     18038        return false;
     18039    }
     18040    *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev");
     18041    if (!status) {
     18042        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     18043        psFree(row);
     18044        return false;
     18045    }
     18046    *accept = psMetadataLookupBool(&status, row, "accept");
     18047    if (!status) {
     18048        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item accept");
     18049        psFree(row);
     18050        return false;
     18051    }
     18052
     18053    psFree(row);
     18054
     18055    return true;
     18056}
     18057
     18058bool detRunSummaryInsertObject(psDB *dbh, detRunSummaryRow *object)
     18059{
     18060    return detRunSummaryInsert(dbh, object->det_id, object->iteration, object->bg, object->bg_stdev, object->bg_mean_stdev, object->accept);
     18061}
     18062
     18063bool detRunSummaryInsertObjects(psDB *dbh, psArray *objects)
     18064{
     18065    for (long i = 0; i < psArrayLength(objects); i++) {
     18066        if (!detRunSummaryInsertObject(dbh, objects->data[i])) {
     18067            return false;
     18068        }
     18069    }
     18070
     18071    return true;
     18072}
     18073
     18074detRunSummaryRow *detRunSummaryPopObject(psDB *dbh)
     18075{
     18076    psS32           det_id;
     18077    psS32           iteration;
     18078    psF64           bg;
     18079    psF64           bg_stdev;
     18080    psF64           bg_mean_stdev;
     18081    bool            accept;
     18082
     18083    if (!detRunSummaryPop(dbh, &det_id, &iteration, &bg, &bg_stdev, &bg_mean_stdev, &accept)) {
     18084        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
     18085        return NULL;
     18086    }
     18087
     18088    return detRunSummaryRowAlloc(det_id, iteration, bg, bg_stdev, bg_mean_stdev, accept);
     18089}
     18090
     18091bool detRunSummaryInsertFits(psDB *dbh, const psFits *fits)
     18092{
     18093    psArray         *rowSet;
     18094
     18095    // move to (the first?) extension named  DETRUNSUMMARY_TABLE_NAME
     18096    if (!psFitsMoveExtName(fits, DETRUNSUMMARY_TABLE_NAME)) {
     18097        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DETRUNSUMMARY_TABLE_NAME);
     18098        return false;
     18099    }
     18100
     18101    // check HDU type
     18102    if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE)  {
     18103        psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");
     18104        return false;
     18105    }
     18106
     18107    // read fits table
     18108    rowSet = psFitsReadTable(fits);
     18109    if (!rowSet) {
     18110        psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");
     18111        psFree(rowSet);
     18112        return false;
     18113    }
     18114
     18115    if (!psDBInsertRows(dbh, DETRUNSUMMARY_TABLE_NAME, rowSet)) {
     18116        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
     18117        psFree(rowSet);
     18118        return false;
     18119    }
     18120
     18121    psFree(rowSet);
     18122
     18123    return true;
     18124}
     18125
     18126bool detRunSummaryPopFits(psDB *dbh, psFits *fits, unsigned long long limit)
     18127{
     18128    char            query[MAX_STRING_LENGTH];
     18129
     18130    if (!detRunSummarySelectRowsFits(dbh, fits, NULL, limit)) {
     18131        psError(PS_ERR_UNKNOWN, true, "database error or table is empty");
     18132        return false;
     18133    }
     18134
     18135    // remove limit rows from the end of the database
     18136    if (snprintf(query, MAX_STRING_LENGTH,
     18137                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
     18138                DETRUNSUMMARY_TABLE_NAME, DETRUNSUMMARY_INDEX_NAME, limit) < 0) {
     18139        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     18140        return false;
     18141    }
     18142           
     18143    if (!p_psDBRunQuery(dbh, query)) {
     18144        psError(PS_ERR_UNKNOWN, false, "database query failed");
     18145        return false;
     18146    }
     18147
     18148    return true;
     18149}
     18150
     18151bool detRunSummarySelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     18152{
     18153    psArray         *rowSet;
     18154    psU64           i;
     18155
     18156    rowSet = psDBSelectRows(dbh, DETRUNSUMMARY_TABLE_NAME, where, limit);
     18157    if (!rowSet) {
     18158        return false;
     18159    }
     18160
     18161    // strip index column
     18162    for (i = 0; i < rowSet->n; i++) {
     18163        if (!psMetadataRemove((psMetadata *)rowSet->data[i], 0, DETRUNSUMMARY_INDEX_NAME)) {
     18164            psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", DETRUNSUMMARY_INDEX_NAME);
     18165            psFree(rowSet);
     18166            return false;
     18167        }
     18168    }
     18169
     18170    // output to fits
     18171    if (!psFitsWriteTable(fits, NULL, rowSet, DETRUNSUMMARY_TABLE_NAME)) {
     18172        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
     18173        psFree(rowSet);
     18174        return false;
     18175    }
     18176
     18177    psFree(rowSet);
     18178
     18179    return true;
     18180}
     18181
     18182psMetadata *detRunSummaryMetadataFromObject(const detRunSummaryRow *object)
     18183{
     18184    psMetadata      *md;
     18185
     18186    md = psMetadataAlloc();
     18187    if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, object->det_id)) {
     18188        psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");
     18189        psFree(md);
     18190        return NULL;
     18191    }
     18192    if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, object->iteration)) {
     18193        psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");
     18194        psFree(md);
     18195        return NULL;
     18196    }
     18197    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) {
     18198        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     18199        psFree(md);
     18200        return NULL;
     18201    }
     18202    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) {
     18203        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     18204        psFree(md);
     18205        return NULL;
     18206    }
     18207    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) {
     18208        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     18209        psFree(md);
     18210        return NULL;
     18211    }
     18212    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, object->accept)) {
     18213        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
     18214        psFree(md);
     18215        return NULL;
     18216    }
     18217
     18218    return md;
     18219}
     18220
     18221detRunSummaryRow *detRunSummaryObjectFromMetadata(psMetadata *md)
     18222{
     18223    bool            status;
     18224    psS32           det_id;
     18225    psS32           iteration;
     18226    psF64           bg;
     18227    psF64           bg_stdev;
     18228    psF64           bg_mean_stdev;
     18229    bool            accept;
     18230
     18231    det_id = psMetadataLookupS32(&status, md, "det_id");
     18232    if (!status) {
     18233        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item det_id");
     18234        return false;
     18235    }
     18236    iteration = psMetadataLookupS32(&status, md, "iteration");
     18237    if (!status) {
     18238        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iteration");
     18239        return false;
     18240    }
     18241    bg = psMetadataLookupF64(&status, md, "bg");
     18242    if (!status) {
     18243        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     18244        return false;
     18245    }
     18246    bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
     18247    if (!status) {
     18248        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     18249        return false;
     18250    }
     18251    bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
     18252    if (!status) {
     18253        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     18254        return false;
     18255    }
     18256    accept = psMetadataLookupBool(&status, md, "accept");
     18257    if (!status) {
     18258        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item accept");
     18259        return false;
     18260    }
     18261
     18262    return detRunSummaryRowAlloc(det_id, iteration, bg, bg_stdev, bg_mean_stdev, accept);
     18263}
     18264psArray *detRunSummarySelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     18265{
     18266    psArray         *rowSet;
     18267    psArray         *returnSet;
     18268    psU64           i;
     18269
     18270    rowSet = psDBSelectRows(dbh, DETRUNSUMMARY_TABLE_NAME, where, limit);
     18271    if (!rowSet) {
     18272        return NULL;
     18273    }
     18274
     18275    // strip index column
     18276    for (i = 0; i < rowSet->n; i++) {
     18277        if (!psMetadataRemove((psMetadata *)(rowSet->data[i]), 0, DETRUNSUMMARY_INDEX_NAME)) {
     18278            psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", DETRUNSUMMARY_INDEX_NAME);
     18279            psFree(rowSet);
     18280            return false;
     18281        }
     18282    }
     18283
     18284    // convert psMetadata rows to row objects
     18285
     18286    returnSet = psArrayAlloc(rowSet->n);
     18287    returnSet->n = 0;
     18288
     18289    for (i = 0; i < rowSet->n; i++) {
     18290        detRunSummaryRow *object = detRunSummaryObjectFromMetadata(rowSet->data[i]);
     18291        psArrayAdd(returnSet, 0, object);
     18292        psFree(object);
     18293    }
     18294
     18295    psFree(rowSet);
     18296
     18297    return returnSet;
     18298}
     18299bool detRunSummaryDeleteObject(psDB *dbh, const detRunSummaryRow *object)
     18300{
     18301    psMetadata *where = detRunSummaryMetadataFromObject(object);
     18302    long long count = psDBDeleteRows(dbh, DETRUNSUMMARY_TABLE_NAME, where, 0);
     18303    psFree(where)
     18304    if (count < 0) {
     18305        psError(PS_ERR_UNKNOWN, true, "failed to delete row from detRunSummary");
     18306        return false;
     18307    }
     18308    if (count > 1) {
     18309        // XXX should this be a psAbort() instead?  It is possible that
     18310        // having an object match multiple rows was by design.
     18311        psError(PS_ERR_UNKNOWN, true, "detRunSummaryRow object matched more then one row.  Check your database schema");
     18312        return false;
     18313    }
     18314
     18315    return true;
     18316}
     18317long long detRunSummaryDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     18318{
     18319    long long       deleted = 0;
     18320
     18321    for (long long i = 0; i < objects->n; i++) {
     18322        detRunSummaryRow *object = objects->data[i];
     18323        psMetadata *where = detRunSummaryMetadataFromObject(object);
     18324        long long count = psDBDeleteRows(dbh, DETRUNSUMMARY_TABLE_NAME, where, limit);
     18325        psFree(where)
     18326        if (count < 0) {
     18327            psError(PS_ERR_UNKNOWN, true, "failed to delete row from detRunSummary");
     18328            return count;
     18329        }
     18330
     18331        deleted += count;
     18332    }
     18333
     18334    return deleted;
     18335}
     18336bool detRunSummaryPrintObjects(FILE *stream, psArray *objects, bool mdcf)
     18337{
     18338    PS_ASSERT_PTR_NON_NULL(objects, false);
     18339
     18340    psMetadata *output = psMetadataAlloc();
     18341    for (long i = 0; i < psArrayLength(objects); i++) {
     18342        psMetadata *md = detRunSummaryMetadataFromObject(objects->data[i]);
     18343        if (!psMetadataAddMetadata(
     18344            output,
     18345            PS_LIST_TAIL,
     18346            DETRUNSUMMARY_TABLE_NAME,
     18347            PS_META_DUPLICATE_OK,
     18348            NULL,
     18349            md
     18350        )) {
     18351            psError(PS_ERR_UNKNOWN, false, "failed to add metadata");
     18352            psFree(md);
     18353            psFree(output);
     18354            return false;
     18355        }
     18356        psFree(md);
     18357    }
     18358
     18359    if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {
     18360        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     18361        psFree(output);
     18362    }
     18363    psFree(output);
     18364
     18365    return true;
     18366}
  • trunk/ippdb/src/ippdb.h

    r8380 r8528  
    55845584    char            *exp_id;
    55855585    bool            include;
    5586     bool            accept;
    55875586} detInputExpRow;
    55885587
     
    55965595    psS32           iteration,
    55975596    const char      *exp_id,
    5598     bool            include,
    5599     bool            accept
     5597    bool            include
    56005598);
    56015599
     
    56305628    psS32           iteration,
    56315629    const char      *exp_id,
    5632     bool            include,
    5633     bool            accept
     5630    bool            include
    56345631);
    56355632
     
    56555652    psS32           *iteration,
    56565653    char            **exp_id,
    5657     bool            *include,
    5658     bool            *accept
     5654    bool            *include
    56595655);
    56605656
     
    60596055    char            *uri;
    60606056    char            *recipe;
     6057    psF64           bg;
     6058    psF64           bg_stdev;
     6059    psF64           bg_mean_stdev;
    60616060} detStackedImfileRow;
    60626061
     
    60716070    const char      *class_id,
    60726071    const char      *uri,
    6073     const char      *recipe
     6072    const char      *recipe,
     6073    psF64           bg,
     6074    psF64           bg_stdev,
     6075    psF64           bg_mean_stdev
    60746076);
    60756077
     
    61056107    const char      *class_id,
    61066108    const char      *uri,
    6107     const char      *recipe
     6109    const char      *recipe,
     6110    psF64           bg,
     6111    psF64           bg_stdev,
     6112    psF64           bg_mean_stdev
    61086113);
    61096114
     
    61306135    char            **class_id,
    61316136    char            **uri,
    6132     char            **recipe
     6137    char            **recipe,
     6138    psF64           *bg,
     6139    psF64           *bg_stdev,
     6140    psF64           *bg_mean_stdev
    61336141);
    61346142
     
    71937201    char            *exp_id;
    71947202    char            *class_id;
     7203    char            *uri;
    71957204    char            *recipe;
    7196     char            *uri;
     7205    psF64           bg;
     7206    psF64           bg_stdev;
     7207    psF64           bg_mean_stdev;
    71977208    char            *b1_uri;
    71987209    char            *b2_uri;
     
    72097220    const char      *exp_id,
    72107221    const char      *class_id,
     7222    const char      *uri,
    72117223    const char      *recipe,
    7212     const char      *uri,
     7224    psF64           bg,
     7225    psF64           bg_stdev,
     7226    psF64           bg_mean_stdev,
    72137227    const char      *b1_uri,
    72147228    const char      *b2_uri
     
    72467260    const char      *exp_id,
    72477261    const char      *class_id,
     7262    const char      *uri,
    72487263    const char      *recipe,
    7249     const char      *uri,
     7264    psF64           bg,
     7265    psF64           bg_stdev,
     7266    psF64           bg_mean_stdev,
    72507267    const char      *b1_uri,
    72517268    const char      *b2_uri
     
    72747291    char            **exp_id,
    72757292    char            **class_id,
     7293    char            **uri,
    72767294    char            **recipe,
    7277     char            **uri,
     7295    psF64           *bg,
     7296    psF64           *bg_stdev,
     7297    psF64           *bg_mean_stdev,
    72787298    char            **b1_uri,
    72797299    char            **b2_uri
     
    74367456    char            *exp_id;
    74377457    char            *recipe;
    7438     bool            keep;
     7458    psF64           bg;
     7459    psF64           bg_stdev;
     7460    psF64           bg_mean_stdev;
     7461    char            *b1_uri;
     7462    char            *b2_uri;
    74397463    bool            accept;
    74407464} detResidExpRow;
     
    74507474    const char      *exp_id,
    74517475    const char      *recipe,
    7452     bool            keep,
     7476    psF64           bg,
     7477    psF64           bg_stdev,
     7478    psF64           bg_mean_stdev,
     7479    const char      *b1_uri,
     7480    const char      *b2_uri,
    74537481    bool            accept
    74547482);
     
    74857513    const char      *exp_id,
    74867514    const char      *recipe,
    7487     bool            keep,
     7515    psF64           bg,
     7516    psF64           bg_stdev,
     7517    psF64           bg_mean_stdev,
     7518    const char      *b1_uri,
     7519    const char      *b2_uri,
    74887520    bool            accept
    74897521);
     
    75117543    char            **exp_id,
    75127544    char            **recipe,
    7513     bool            *keep,
     7545    psF64           *bg,
     7546    psF64           *bg_stdev,
     7547    psF64           *bg_mean_stdev,
     7548    char            **b1_uri,
     7549    char            **b2_uri,
    75147550    bool            *accept
    75157551);
     
    76617697    bool            mdcf                ///< format as mdconfig or simple
    76627698);
     7699/** detRunSummaryRow data structure
     7700 *
     7701 * Structure for representing a single row of detRunSummary table data.
     7702 */
     7703
     7704typedef struct {
     7705    psS32           det_id;
     7706    psS32           iteration;
     7707    psF64           bg;
     7708    psF64           bg_stdev;
     7709    psF64           bg_mean_stdev;
     7710    bool            accept;
     7711} detRunSummaryRow;
     7712
     7713/** Creates a new detRunSummaryRow object
     7714 *
     7715 *  @return A new detRunSummaryRow object or NULL on failure.
     7716 */
     7717
     7718detRunSummaryRow *detRunSummaryRowAlloc(
     7719    psS32           det_id,
     7720    psS32           iteration,
     7721    psF64           bg,
     7722    psF64           bg_stdev,
     7723    psF64           bg_mean_stdev,
     7724    bool            accept
     7725);
     7726
     7727/** Creates a new detRunSummary table
     7728 *
     7729 * @return true on success
     7730 */
     7731
     7732bool detRunSummaryCreateTable(
     7733    psDB            *dbh                ///< Database handle
     7734);
     7735
     7736/** Deletes a detRunSummary table
     7737 *
     7738 * @return true on success
     7739 */
     7740
     7741bool detRunSummaryDropTable(
     7742    psDB            *dbh                ///< Database handle
     7743);
     7744
     7745/** Insert a single row into a table
     7746 *
     7747 * This function constructs and inserts a single row based on it's parameters.
     7748 *
     7749 * @return true on success
     7750 */
     7751
     7752bool detRunSummaryInsert(
     7753    psDB            *dbh,               ///< Database handle
     7754    psS32           det_id,
     7755    psS32           iteration,
     7756    psF64           bg,
     7757    psF64           bg_stdev,
     7758    psF64           bg_mean_stdev,
     7759    bool            accept
     7760);
     7761
     7762/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     7763 *
     7764 * @return A The number of rows removed or a negative value on error
     7765 */
     7766
     7767long long detRunSummaryDelete(
     7768    psDB            *dbh,               ///< Database handle
     7769    const psMetadata *where,            ///< Row match criteria
     7770    unsigned long long limit            ///< Maximum number of elements to delete
     7771);
     7772
     7773/** Removes the last row from the database and returns it
     7774 *
     7775 * @return true on success
     7776 */
     7777
     7778bool detRunSummaryPop(
     7779    psDB            *dbh,               ///< Database handle
     7780    psS32           *det_id,
     7781    psS32           *iteration,
     7782    psF64           *bg,
     7783    psF64           *bg_stdev,
     7784    psF64           *bg_mean_stdev,
     7785    bool            *accept
     7786);
     7787
     7788/** Insert a single detRunSummaryRow object into a table
     7789 *
     7790 * This function constructs and inserts a single row based on it's parameters.
     7791 *
     7792 * @return true on success
     7793 */
     7794
     7795bool detRunSummaryInsertObject(
     7796    psDB            *dbh,               ///< Database handle
     7797    detRunSummaryRow *object             ///< detRunSummaryRow object
     7798);
     7799
     7800/** Insert an array of detRunSummaryRow object into a table
     7801 *
     7802 * This function constructs and inserts multiple rows based on it's parameters.
     7803 *
     7804 * @return true on success
     7805 */
     7806
     7807bool detRunSummaryInsertObjects(
     7808    psDB            *dbh,               ///< Database handle
     7809    psArray         *objects            ///< array of detRunSummaryRow objects
     7810);
     7811
     7812/** Removes the last row from the database and returns it
     7813 *
     7814 * @return A new detRunSummaryRow on success or NULL on failure.
     7815 */
     7816
     7817detRunSummaryRow *detRunSummaryPopObject(
     7818    psDB            *dbh                ///< Database handle
     7819);
     7820
     7821/** Insert data from a binary FITS table detRunSummaryRow into the database
     7822 *
     7823 * This function expects a psFits object with a FITS table as the first
     7824 * extension.  The table must have at least one row of data in it, that is of
     7825 * the appropriate format (number of columns and their type).  All other
     7826 * extensions are ignored.
     7827 *
     7828 * @return true on success
     7829 */
     7830
     7831bool detRunSummaryInsertFits(
     7832    psDB            *dbh,               ///< Database handle
     7833    const psFits    *fits               ///< psFits object
     7834);
     7835
     7836/** Removes the last limit row from the database and returns them in a binary FITS table.
     7837 *
     7838 * This function assumes an empty psFits object and will create a FITS table as
     7839 * the first extension.
     7840 *
     7841 * @return true on success
     7842 */
     7843
     7844bool detRunSummaryPopFits(
     7845    psDB            *dbh,               ///< Database handle
     7846    psFits          *fits,              ///< psFits object
     7847    unsigned long long limit            ///< Maximum number of elements to return
     7848);
     7849
     7850/** Selects up to limit from the database and returns them in a binary FITS table
     7851 *
     7852 * This function assumes an empty psFits object and will create a FITS table
     7853 * as the first extension.
     7854 *
     7855 *  See psDBSelectRows() for documentation on the format of where.
     7856 *
     7857 * @return true on success
     7858 */
     7859
     7860bool detRunSummarySelectRowsFits(
     7861    psDB            *dbh,               ///< Database handle
     7862    psFits          *fits,              ///< psFits object
     7863    const psMetadata *where,            ///< Row match criteria
     7864    unsigned long long limit            ///< Maximum number of elements to return
     7865);
     7866
     7867/** Convert a detRunSummaryRow into an equivalent psMetadata
     7868 *
     7869 * @return A psMetadata pointer or NULL on error
     7870 */
     7871
     7872psMetadata *detRunSummaryMetadataFromObject(
     7873    const detRunSummaryRow *object             ///< fooRow to convert into a psMetadata
     7874);
     7875
     7876/** Convert a psMetadata into an equivalent fooRow
     7877 *
     7878 * @return A detRunSummaryRow pointer or NULL on error
     7879 */
     7880
     7881detRunSummaryRow *detRunSummaryObjectFromMetadata(
     7882    psMetadata      *md                 ///< psMetadata to convert into a fooRow
     7883);
     7884/** Selects up to limit rows from the database and returns as detRunSummaryRow objects in a psArray
     7885 *
     7886 *  See psDBSelectRows() for documentation on the format of where.
     7887 *
     7888 * @return A psArray pointer or NULL on error
     7889 */
     7890
     7891psArray *detRunSummarySelectRowObjects(
     7892    psDB            *dbh,               ///< Database handle
     7893    const psMetadata *where,            ///< Row match criteria
     7894    unsigned long long limit            ///< Maximum number of elements to return
     7895);
     7896/** Deletes a row from the database coresponding to an detRunSummary
     7897 *
     7898 *  Note that a 'where' search psMetadata is constructed from each object and
     7899 *  used to find rows to delete.
     7900 *
     7901 * @return A The number of rows removed or a negative value on error
     7902 */
     7903
     7904bool detRunSummaryDeleteObject(
     7905    psDB            *dbh,               ///< Database handle
     7906    const detRunSummaryRow *object    ///< Object to delete
     7907);
     7908/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     7909 *
     7910 *  Note that a 'where' search psMetadata is constructed from each object and
     7911 *  used to find rows to delete.
     7912 *
     7913 * @return A The number of rows removed or a negative value on error
     7914 */
     7915
     7916long long detRunSummaryDeleteRowObjects(
     7917    psDB            *dbh,               ///< Database handle
     7918    const psArray   *objects,           ///< Array of objects to delete
     7919    unsigned long long limit            ///< Maximum number of elements to delete
     7920);
     7921/** Formats and prints an array of detRunSummaryRow objects
     7922 *
     7923 * When mdcf is set the formated output is in psMetadataConfig
     7924 * format, otherwise it is in a simple tabular format.
     7925 *
     7926 * @return true on success
     7927 */
     7928
     7929bool detRunSummaryPrintObjects(
     7930    FILE            *stream,            ///< a stream
     7931    psArray         *objects,           ///< An array of detRunSummaryRow objects
     7932    bool            mdcf                ///< format as mdconfig or simple
     7933);
    76637934
    76647935/// @}
     
    76687939#endif
    76697940
    7670 #endif // DETRESIDEXP_DB_H
     7941#endif // DETRUNSUMMARY_DB_H
  • trunk/ippdb/tests/alloc.c

    r8380 r8528  
    933933        detInputExpRow  *object;
    934934
    935         object = detInputExpRowAlloc(-32, -32, "a string", true, true    );
     935        object = detInputExpRowAlloc(-32, -32, "a string", true    );
    936936
    937937        if (!object) {
     
    955955            exit(EXIT_FAILURE);
    956956        }
     957
     958        psFree(object);
     959    }
     960
     961    {
     962        detProcessedImfileRow *object;
     963
     964        object = detProcessedImfileRowAlloc(-32, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64    );
     965
     966        if (!object) {
     967            exit(EXIT_FAILURE);
     968        }
     969
     970        if (!object->det_id == -32) {
     971            psFree(object);
     972            exit(EXIT_FAILURE);
     973        }
     974        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
     975            psFree(object);
     976            exit(EXIT_FAILURE);
     977        }
     978        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     979            psFree(object);
     980            exit(EXIT_FAILURE);
     981        }
     982        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     983            psFree(object);
     984            exit(EXIT_FAILURE);
     985        }
     986        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     987            psFree(object);
     988            exit(EXIT_FAILURE);
     989        }
     990        if (!object->bg == 64.64) {
     991            psFree(object);
     992            exit(EXIT_FAILURE);
     993        }
     994        if (!object->bg_stdev == 64.64) {
     995            psFree(object);
     996            exit(EXIT_FAILURE);
     997        }
     998        if (!object->bg_mean_stdev == 64.64) {
     999            psFree(object);
     1000            exit(EXIT_FAILURE);
     1001        }
     1002
     1003        psFree(object);
     1004    }
     1005
     1006    {
     1007        detStackedImfileRow *object;
     1008
     1009        object = detStackedImfileRowAlloc(-32, -32, "a string", "a string", "a string", 64.64, 64.64, 64.64    );
     1010
     1011        if (!object) {
     1012            exit(EXIT_FAILURE);
     1013        }
     1014
     1015        if (!object->det_id == -32) {
     1016            psFree(object);
     1017            exit(EXIT_FAILURE);
     1018        }
     1019        if (!object->iteration == -32) {
     1020            psFree(object);
     1021            exit(EXIT_FAILURE);
     1022        }
     1023        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1024            psFree(object);
     1025            exit(EXIT_FAILURE);
     1026        }
     1027        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1028            psFree(object);
     1029            exit(EXIT_FAILURE);
     1030        }
     1031        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     1032            psFree(object);
     1033            exit(EXIT_FAILURE);
     1034        }
     1035        if (!object->bg == 64.64) {
     1036            psFree(object);
     1037            exit(EXIT_FAILURE);
     1038        }
     1039        if (!object->bg_stdev == 64.64) {
     1040            psFree(object);
     1041            exit(EXIT_FAILURE);
     1042        }
     1043        if (!object->bg_mean_stdev == 64.64) {
     1044            psFree(object);
     1045            exit(EXIT_FAILURE);
     1046        }
     1047
     1048        psFree(object);
     1049    }
     1050
     1051    {
     1052        detNormalizedStatImfileRow *object;
     1053
     1054        object = detNormalizedStatImfileRowAlloc(-32, -32, "a string", 32.32    );
     1055
     1056        if (!object) {
     1057            exit(EXIT_FAILURE);
     1058        }
     1059
     1060        if (!object->det_id == -32) {
     1061            psFree(object);
     1062            exit(EXIT_FAILURE);
     1063        }
     1064        if (!object->iteration == -32) {
     1065            psFree(object);
     1066            exit(EXIT_FAILURE);
     1067        }
     1068        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1069            psFree(object);
     1070            exit(EXIT_FAILURE);
     1071        }
     1072        if (!object->norm == 32.32) {
     1073            psFree(object);
     1074            exit(EXIT_FAILURE);
     1075        }
     1076
     1077        psFree(object);
     1078    }
     1079
     1080    {
     1081        detNormalizedImfileRow *object;
     1082
     1083        object = detNormalizedImfileRowAlloc(-32, -32, "a string", "a string"    );
     1084
     1085        if (!object) {
     1086            exit(EXIT_FAILURE);
     1087        }
     1088
     1089        if (!object->det_id == -32) {
     1090            psFree(object);
     1091            exit(EXIT_FAILURE);
     1092        }
     1093        if (!object->iteration == -32) {
     1094            psFree(object);
     1095            exit(EXIT_FAILURE);
     1096        }
     1097        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1098            psFree(object);
     1099            exit(EXIT_FAILURE);
     1100        }
     1101        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1102            psFree(object);
     1103            exit(EXIT_FAILURE);
     1104        }
     1105
     1106        psFree(object);
     1107    }
     1108
     1109    {
     1110        detMasterFrameRow *object;
     1111
     1112        object = detMasterFrameRowAlloc(-32, -32, "a string"    );
     1113
     1114        if (!object) {
     1115            exit(EXIT_FAILURE);
     1116        }
     1117
     1118        if (!object->det_id == -32) {
     1119            psFree(object);
     1120            exit(EXIT_FAILURE);
     1121        }
     1122        if (!object->iteration == -32) {
     1123            psFree(object);
     1124            exit(EXIT_FAILURE);
     1125        }
     1126        if (strncmp(object->comment, "a string", MAX_STRING_LENGTH)) {
     1127            psFree(object);
     1128            exit(EXIT_FAILURE);
     1129        }
     1130
     1131        psFree(object);
     1132    }
     1133
     1134    {
     1135        detMasterImfileRow *object;
     1136
     1137        object = detMasterImfileRowAlloc(-32, "a string", "a string", "a string"    );
     1138
     1139        if (!object) {
     1140            exit(EXIT_FAILURE);
     1141        }
     1142
     1143        if (!object->det_id == -32) {
     1144            psFree(object);
     1145            exit(EXIT_FAILURE);
     1146        }
     1147        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1148            psFree(object);
     1149            exit(EXIT_FAILURE);
     1150        }
     1151        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1152            psFree(object);
     1153            exit(EXIT_FAILURE);
     1154        }
     1155        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     1156            psFree(object);
     1157            exit(EXIT_FAILURE);
     1158        }
     1159
     1160        psFree(object);
     1161    }
     1162
     1163    {
     1164        detResidImfileRow *object;
     1165
     1166        object = detResidImfileRowAlloc(-32, -32, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string"    );
     1167
     1168        if (!object) {
     1169            exit(EXIT_FAILURE);
     1170        }
     1171
     1172        if (!object->det_id == -32) {
     1173            psFree(object);
     1174            exit(EXIT_FAILURE);
     1175        }
     1176        if (!object->iteration == -32) {
     1177            psFree(object);
     1178            exit(EXIT_FAILURE);
     1179        }
     1180        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
     1181            psFree(object);
     1182            exit(EXIT_FAILURE);
     1183        }
     1184        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1185            psFree(object);
     1186            exit(EXIT_FAILURE);
     1187        }
     1188        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1189            psFree(object);
     1190            exit(EXIT_FAILURE);
     1191        }
     1192        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     1193            psFree(object);
     1194            exit(EXIT_FAILURE);
     1195        }
     1196        if (!object->bg == 64.64) {
     1197            psFree(object);
     1198            exit(EXIT_FAILURE);
     1199        }
     1200        if (!object->bg_stdev == 64.64) {
     1201            psFree(object);
     1202            exit(EXIT_FAILURE);
     1203        }
     1204        if (!object->bg_mean_stdev == 64.64) {
     1205            psFree(object);
     1206            exit(EXIT_FAILURE);
     1207        }
     1208        if (strncmp(object->b1_uri, "a string", MAX_STRING_LENGTH)) {
     1209            psFree(object);
     1210            exit(EXIT_FAILURE);
     1211        }
     1212        if (strncmp(object->b2_uri, "a string", MAX_STRING_LENGTH)) {
     1213            psFree(object);
     1214            exit(EXIT_FAILURE);
     1215        }
     1216
     1217        psFree(object);
     1218    }
     1219
     1220    {
     1221        detResidExpRow  *object;
     1222
     1223        object = detResidExpRowAlloc(-32, -32, "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string", true    );
     1224
     1225        if (!object) {
     1226            exit(EXIT_FAILURE);
     1227        }
     1228
     1229        if (!object->det_id == -32) {
     1230            psFree(object);
     1231            exit(EXIT_FAILURE);
     1232        }
     1233        if (!object->iteration == -32) {
     1234            psFree(object);
     1235            exit(EXIT_FAILURE);
     1236        }
     1237        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
     1238            psFree(object);
     1239            exit(EXIT_FAILURE);
     1240        }
     1241        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     1242            psFree(object);
     1243            exit(EXIT_FAILURE);
     1244        }
     1245        if (!object->bg == 64.64) {
     1246            psFree(object);
     1247            exit(EXIT_FAILURE);
     1248        }
     1249        if (!object->bg_stdev == 64.64) {
     1250            psFree(object);
     1251            exit(EXIT_FAILURE);
     1252        }
     1253        if (!object->bg_mean_stdev == 64.64) {
     1254            psFree(object);
     1255            exit(EXIT_FAILURE);
     1256        }
     1257        if (strncmp(object->b1_uri, "a string", MAX_STRING_LENGTH)) {
     1258            psFree(object);
     1259            exit(EXIT_FAILURE);
     1260        }
     1261        if (strncmp(object->b2_uri, "a string", MAX_STRING_LENGTH)) {
     1262            psFree(object);
     1263            exit(EXIT_FAILURE);
     1264        }
    9571265        if (!object->accept == true) {
    9581266            psFree(object);
     
    9641272
    9651273    {
    966         detProcessedImfileRow *object;
    967 
    968         object = detProcessedImfileRowAlloc(-32, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64    );
     1274        detRunSummaryRow *object;
     1275
     1276        object = detRunSummaryRowAlloc(-32, -32, 64.64, 64.64, 64.64, true    );
    9691277
    9701278        if (!object) {
     
    9761284            exit(EXIT_FAILURE);
    9771285        }
    978         if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    979             psFree(object);
    980             exit(EXIT_FAILURE);
    981         }
    982         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    983             psFree(object);
    984             exit(EXIT_FAILURE);
    985         }
    986         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    987             psFree(object);
    988             exit(EXIT_FAILURE);
    989         }
    990         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     1286        if (!object->iteration == -32) {
    9911287            psFree(object);
    9921288            exit(EXIT_FAILURE);
     
    10011297        }
    10021298        if (!object->bg_mean_stdev == 64.64) {
    1003             psFree(object);
    1004             exit(EXIT_FAILURE);
    1005         }
    1006 
    1007         psFree(object);
    1008     }
    1009 
    1010     {
    1011         detStackedImfileRow *object;
    1012 
    1013         object = detStackedImfileRowAlloc(-32, -32, "a string", "a string", "a string"    );
    1014 
    1015         if (!object) {
    1016             exit(EXIT_FAILURE);
    1017         }
    1018 
    1019         if (!object->det_id == -32) {
    1020             psFree(object);
    1021             exit(EXIT_FAILURE);
    1022         }
    1023         if (!object->iteration == -32) {
    1024             psFree(object);
    1025             exit(EXIT_FAILURE);
    1026         }
    1027         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1028             psFree(object);
    1029             exit(EXIT_FAILURE);
    1030         }
    1031         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1032             psFree(object);
    1033             exit(EXIT_FAILURE);
    1034         }
    1035         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    1036             psFree(object);
    1037             exit(EXIT_FAILURE);
    1038         }
    1039 
    1040         psFree(object);
    1041     }
    1042 
    1043     {
    1044         detNormalizedStatImfileRow *object;
    1045 
    1046         object = detNormalizedStatImfileRowAlloc(-32, -32, "a string", 32.32    );
    1047 
    1048         if (!object) {
    1049             exit(EXIT_FAILURE);
    1050         }
    1051 
    1052         if (!object->det_id == -32) {
    1053             psFree(object);
    1054             exit(EXIT_FAILURE);
    1055         }
    1056         if (!object->iteration == -32) {
    1057             psFree(object);
    1058             exit(EXIT_FAILURE);
    1059         }
    1060         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1061             psFree(object);
    1062             exit(EXIT_FAILURE);
    1063         }
    1064         if (!object->norm == 32.32) {
    1065             psFree(object);
    1066             exit(EXIT_FAILURE);
    1067         }
    1068 
    1069         psFree(object);
    1070     }
    1071 
    1072     {
    1073         detNormalizedImfileRow *object;
    1074 
    1075         object = detNormalizedImfileRowAlloc(-32, -32, "a string", "a string"    );
    1076 
    1077         if (!object) {
    1078             exit(EXIT_FAILURE);
    1079         }
    1080 
    1081         if (!object->det_id == -32) {
    1082             psFree(object);
    1083             exit(EXIT_FAILURE);
    1084         }
    1085         if (!object->iteration == -32) {
    1086             psFree(object);
    1087             exit(EXIT_FAILURE);
    1088         }
    1089         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1090             psFree(object);
    1091             exit(EXIT_FAILURE);
    1092         }
    1093         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1094             psFree(object);
    1095             exit(EXIT_FAILURE);
    1096         }
    1097 
    1098         psFree(object);
    1099     }
    1100 
    1101     {
    1102         detMasterFrameRow *object;
    1103 
    1104         object = detMasterFrameRowAlloc(-32, -32, "a string"    );
    1105 
    1106         if (!object) {
    1107             exit(EXIT_FAILURE);
    1108         }
    1109 
    1110         if (!object->det_id == -32) {
    1111             psFree(object);
    1112             exit(EXIT_FAILURE);
    1113         }
    1114         if (!object->iteration == -32) {
    1115             psFree(object);
    1116             exit(EXIT_FAILURE);
    1117         }
    1118         if (strncmp(object->comment, "a string", MAX_STRING_LENGTH)) {
    1119             psFree(object);
    1120             exit(EXIT_FAILURE);
    1121         }
    1122 
    1123         psFree(object);
    1124     }
    1125 
    1126     {
    1127         detMasterImfileRow *object;
    1128 
    1129         object = detMasterImfileRowAlloc(-32, "a string", "a string", "a string"    );
    1130 
    1131         if (!object) {
    1132             exit(EXIT_FAILURE);
    1133         }
    1134 
    1135         if (!object->det_id == -32) {
    1136             psFree(object);
    1137             exit(EXIT_FAILURE);
    1138         }
    1139         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1140             psFree(object);
    1141             exit(EXIT_FAILURE);
    1142         }
    1143         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1144             psFree(object);
    1145             exit(EXIT_FAILURE);
    1146         }
    1147         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    1148             psFree(object);
    1149             exit(EXIT_FAILURE);
    1150         }
    1151 
    1152         psFree(object);
    1153     }
    1154 
    1155     {
    1156         detResidImfileRow *object;
    1157 
    1158         object = detResidImfileRowAlloc(-32, -32, "a string", "a string", "a string", "a string", "a string", "a string"    );
    1159 
    1160         if (!object) {
    1161             exit(EXIT_FAILURE);
    1162         }
    1163 
    1164         if (!object->det_id == -32) {
    1165             psFree(object);
    1166             exit(EXIT_FAILURE);
    1167         }
    1168         if (!object->iteration == -32) {
    1169             psFree(object);
    1170             exit(EXIT_FAILURE);
    1171         }
    1172         if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    1173             psFree(object);
    1174             exit(EXIT_FAILURE);
    1175         }
    1176         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1177             psFree(object);
    1178             exit(EXIT_FAILURE);
    1179         }
    1180         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    1181             psFree(object);
    1182             exit(EXIT_FAILURE);
    1183         }
    1184         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1185             psFree(object);
    1186             exit(EXIT_FAILURE);
    1187         }
    1188         if (strncmp(object->b1_uri, "a string", MAX_STRING_LENGTH)) {
    1189             psFree(object);
    1190             exit(EXIT_FAILURE);
    1191         }
    1192         if (strncmp(object->b2_uri, "a string", MAX_STRING_LENGTH)) {
    1193             psFree(object);
    1194             exit(EXIT_FAILURE);
    1195         }
    1196 
    1197         psFree(object);
    1198     }
    1199 
    1200     {
    1201         detResidExpRow  *object;
    1202 
    1203         object = detResidExpRowAlloc(-32, -32, "a string", "a string", true, true    );
    1204 
    1205         if (!object) {
    1206             exit(EXIT_FAILURE);
    1207         }
    1208 
    1209         if (!object->det_id == -32) {
    1210             psFree(object);
    1211             exit(EXIT_FAILURE);
    1212         }
    1213         if (!object->iteration == -32) {
    1214             psFree(object);
    1215             exit(EXIT_FAILURE);
    1216         }
    1217         if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    1218             psFree(object);
    1219             exit(EXIT_FAILURE);
    1220         }
    1221         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    1222             psFree(object);
    1223             exit(EXIT_FAILURE);
    1224         }
    1225         if (!object->keep == true) {
    12261299            psFree(object);
    12271300            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/createtable.c

    r8380 r8528  
    485485    }
    486486
     487    {
     488        psDB            *dbh;
     489
     490        dbh = psDBInit("localhost", "test", NULL, "test");
     491        if (!dbh) {
     492            exit(EXIT_FAILURE);
     493        }
     494
     495        if(!detRunSummaryCreateTable(dbh)) {
     496            exit(EXIT_FAILURE);
     497        }
     498
     499        psDBCleanup(dbh);
     500    }
     501
    487502    exit(EXIT_SUCCESS);
    488503}
  • trunk/ippdb/tests/dbcleanup.c

    r8380 r8528  
    4343    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detResidImfile");
    4444    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detResidExp");
     45    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detRunSummary");
    4546
    4647    psDBCleanup(dbh);
  • trunk/ippdb/tests/dbsetup.c

    r8380 r8528  
    109109    detResidExpCreateTable(dbh);
    110110
     111    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detRunSummary");
     112    detRunSummaryCreateTable(dbh);
     113
    111114    psDBCleanup(dbh);
    112115
  • trunk/ippdb/tests/droptable.c

    r8380 r8528  
    485485    }
    486486
     487    {
     488        psDB            *dbh;
     489
     490        dbh = psDBInit("localhost", "test", NULL, "test");
     491        if (!dbh) {
     492            exit(EXIT_FAILURE);
     493        }
     494
     495        if (!detRunSummaryDropTable(dbh)) {
     496            exit(EXIT_FAILURE);
     497        }
     498
     499        psDBCleanup(dbh);
     500    }
     501
    487502    exit(EXIT_SUCCESS);
    488503}
  • trunk/ippdb/tests/insert.c

    r8380 r8528  
    358358        }
    359359
    360         if (!detInputExpInsert(dbh, -32, -32, "a string", true, true)) {
     360        if (!detInputExpInsert(dbh, -32, -32, "a string", true)) {
    361361            exit(EXIT_FAILURE);
    362362        }
     
    388388        }
    389389
    390         if (!detStackedImfileInsert(dbh, -32, -32, "a string", "a string", "a string")) {
     390        if (!detStackedImfileInsert(dbh, -32, -32, "a string", "a string", "a string", 64.64, 64.64, 64.64)) {
    391391            exit(EXIT_FAILURE);
    392392        }
     
    463463        }
    464464
    465         if (!detResidImfileInsert(dbh, -32, -32, "a string", "a string", "a string", "a string", "a string", "a string")) {
    466             exit(EXIT_FAILURE);
    467         }
    468 
    469         psDBCleanup(dbh);
    470     }
    471 
    472     {
    473         psDB            *dbh;
    474 
    475         dbh = psDBInit("localhost", "test", NULL, "test");
    476         if (!dbh) {
    477             exit(EXIT_FAILURE);
    478         }
    479 
    480         if (!detResidExpInsert(dbh, -32, -32, "a string", "a string", true, true)) {
     465        if (!detResidImfileInsert(dbh, -32, -32, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string")) {
     466            exit(EXIT_FAILURE);
     467        }
     468
     469        psDBCleanup(dbh);
     470    }
     471
     472    {
     473        psDB            *dbh;
     474
     475        dbh = psDBInit("localhost", "test", NULL, "test");
     476        if (!dbh) {
     477            exit(EXIT_FAILURE);
     478        }
     479
     480        if (!detResidExpInsert(dbh, -32, -32, "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string", true)) {
     481            exit(EXIT_FAILURE);
     482        }
     483
     484        psDBCleanup(dbh);
     485    }
     486
     487    {
     488        psDB            *dbh;
     489
     490        dbh = psDBInit("localhost", "test", NULL, "test");
     491        if (!dbh) {
     492            exit(EXIT_FAILURE);
     493        }
     494
     495        if (!detRunSummaryInsert(dbh, -32, -32, 64.64, 64.64, 64.64, true)) {
    481496            exit(EXIT_FAILURE);
    482497        }
  • trunk/ippdb/tests/insertfits.c

    r8380 r8528  
    841841    }
    842842
     843    {
     844        psDB            *dbh;
     845        psFits          *fits;
     846
     847        dbh = psDBInit("localhost", "test", NULL, "test");
     848        if (!dbh) {
     849            exit(EXIT_FAILURE);
     850        }
     851
     852        // open a temp
     853        fits = psFitsOpen(TMP_FILENAME, "r");
     854        if (!fits) {
     855            exit(EXIT_FAILURE);
     856        }
     857
     858        if (!detRunSummaryInsertFits(dbh, fits)) {
     859            exit(EXIT_FAILURE);
     860        }
     861
     862        if (!psFitsClose(fits)) {
     863            exit(EXIT_FAILURE);
     864        }
     865
     866        psDBCleanup(dbh);
     867    }
     868
    843869    exit(EXIT_SUCCESS);
    844870}
  • trunk/ippdb/tests/insertobject.c

    r8380 r8528  
    520520        }
    521521
    522         object = detInputExpRowAlloc(-32, -32, "a string", true, true);
     522        object = detInputExpRowAlloc(-32, -32, "a string", true);
    523523        if (!object) {
    524524            exit(EXIT_FAILURE);
     
    564564        }
    565565
    566         object = detStackedImfileRowAlloc(-32, -32, "a string", "a string", "a string");
     566        object = detStackedImfileRowAlloc(-32, -32, "a string", "a string", "a string", 64.64, 64.64, 64.64);
    567567        if (!object) {
    568568            exit(EXIT_FAILURE);
     
    674674        }
    675675
    676         object = detResidImfileRowAlloc(-32, -32, "a string", "a string", "a string", "a string", "a string", "a string");
     676        object = detResidImfileRowAlloc(-32, -32, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string");
    677677        if (!object) {
    678678            exit(EXIT_FAILURE);
     
    696696        }
    697697
    698         object = detResidExpRowAlloc(-32, -32, "a string", "a string", true, true);
     698        object = detResidExpRowAlloc(-32, -32, "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string", true);
    699699        if (!object) {
    700700            exit(EXIT_FAILURE);
     
    702702
    703703        if (!detResidExpInsertObject(dbh, object)) {
     704            exit(EXIT_FAILURE);
     705        }
     706
     707        psFree(object);
     708        psDBCleanup(dbh);
     709    }
     710
     711    {
     712        psDB            *dbh;
     713        detRunSummaryRow *object;
     714
     715        dbh = psDBInit("localhost", "test", NULL, "test");
     716        if (!dbh) {
     717            exit(EXIT_FAILURE);
     718        }
     719
     720        object = detRunSummaryRowAlloc(-32, -32, 64.64, 64.64, 64.64, true);
     721        if (!object) {
     722            exit(EXIT_FAILURE);
     723        }
     724
     725        if (!detRunSummaryInsertObject(dbh, object)) {
    704726            exit(EXIT_FAILURE);
    705727        }
  • trunk/ippdb/tests/metadatafromobject.c

    r8380 r8528  
    11201120        bool            status;
    11211121
    1122         object = detInputExpRowAlloc(-32, -32, "a string", true, true);
     1122        object = detInputExpRowAlloc(-32, -32, "a string", true);
    11231123        if (!object) {
    11241124            exit(EXIT_FAILURE);
     
    11481148            exit(EXIT_FAILURE);
    11491149        }
     1150
     1151        psFree(md);
     1152    }
     1153
     1154    {
     1155        psMetadata      *md;
     1156        detProcessedImfileRow *object;
     1157        bool            status;
     1158
     1159        object = detProcessedImfileRowAlloc(-32, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64);
     1160        if (!object) {
     1161            exit(EXIT_FAILURE);
     1162        }
     1163
     1164        md = detProcessedImfileMetadataFromObject(object);
     1165        if (!md) {
     1166            exit(EXIT_FAILURE);
     1167        }
     1168
     1169        psFree(object);
     1170
     1171        if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
     1172            psFree(md);
     1173            exit(EXIT_FAILURE);
     1174        }
     1175        if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
     1176            psFree(md);
     1177            exit(EXIT_FAILURE);
     1178        }
     1179        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1180            psFree(md);
     1181            exit(EXIT_FAILURE);
     1182        }
     1183        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1184            psFree(md);
     1185            exit(EXIT_FAILURE);
     1186        }
     1187        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     1188            psFree(md);
     1189            exit(EXIT_FAILURE);
     1190        }
     1191        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     1192            psFree(md);
     1193            exit(EXIT_FAILURE);
     1194        }
     1195        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     1196            psFree(md);
     1197            exit(EXIT_FAILURE);
     1198        }
     1199        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     1200            psFree(md);
     1201            exit(EXIT_FAILURE);
     1202        }
     1203
     1204        psFree(md);
     1205    }
     1206
     1207    {
     1208        psMetadata      *md;
     1209        detStackedImfileRow *object;
     1210        bool            status;
     1211
     1212        object = detStackedImfileRowAlloc(-32, -32, "a string", "a string", "a string", 64.64, 64.64, 64.64);
     1213        if (!object) {
     1214            exit(EXIT_FAILURE);
     1215        }
     1216
     1217        md = detStackedImfileMetadataFromObject(object);
     1218        if (!md) {
     1219            exit(EXIT_FAILURE);
     1220        }
     1221
     1222        psFree(object);
     1223
     1224        if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
     1225            psFree(md);
     1226            exit(EXIT_FAILURE);
     1227        }
     1228        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     1229            psFree(md);
     1230            exit(EXIT_FAILURE);
     1231        }
     1232        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1233            psFree(md);
     1234            exit(EXIT_FAILURE);
     1235        }
     1236        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1237            psFree(md);
     1238            exit(EXIT_FAILURE);
     1239        }
     1240        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     1241            psFree(md);
     1242            exit(EXIT_FAILURE);
     1243        }
     1244        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     1245            psFree(md);
     1246            exit(EXIT_FAILURE);
     1247        }
     1248        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     1249            psFree(md);
     1250            exit(EXIT_FAILURE);
     1251        }
     1252        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     1253            psFree(md);
     1254            exit(EXIT_FAILURE);
     1255        }
     1256
     1257        psFree(md);
     1258    }
     1259
     1260    {
     1261        psMetadata      *md;
     1262        detNormalizedStatImfileRow *object;
     1263        bool            status;
     1264
     1265        object = detNormalizedStatImfileRowAlloc(-32, -32, "a string", 32.32);
     1266        if (!object) {
     1267            exit(EXIT_FAILURE);
     1268        }
     1269
     1270        md = detNormalizedStatImfileMetadataFromObject(object);
     1271        if (!md) {
     1272            exit(EXIT_FAILURE);
     1273        }
     1274
     1275        psFree(object);
     1276
     1277        if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
     1278            psFree(md);
     1279            exit(EXIT_FAILURE);
     1280        }
     1281        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     1282            psFree(md);
     1283            exit(EXIT_FAILURE);
     1284        }
     1285        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1286            psFree(md);
     1287            exit(EXIT_FAILURE);
     1288        }
     1289        if (!psMetadataLookupF32(&status, md, "norm") == 32.32) {
     1290            psFree(md);
     1291            exit(EXIT_FAILURE);
     1292        }
     1293
     1294        psFree(md);
     1295    }
     1296
     1297    {
     1298        psMetadata      *md;
     1299        detNormalizedImfileRow *object;
     1300        bool            status;
     1301
     1302        object = detNormalizedImfileRowAlloc(-32, -32, "a string", "a string");
     1303        if (!object) {
     1304            exit(EXIT_FAILURE);
     1305        }
     1306
     1307        md = detNormalizedImfileMetadataFromObject(object);
     1308        if (!md) {
     1309            exit(EXIT_FAILURE);
     1310        }
     1311
     1312        psFree(object);
     1313
     1314        if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
     1315            psFree(md);
     1316            exit(EXIT_FAILURE);
     1317        }
     1318        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     1319            psFree(md);
     1320            exit(EXIT_FAILURE);
     1321        }
     1322        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1323            psFree(md);
     1324            exit(EXIT_FAILURE);
     1325        }
     1326        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1327            psFree(md);
     1328            exit(EXIT_FAILURE);
     1329        }
     1330
     1331        psFree(md);
     1332    }
     1333
     1334    {
     1335        psMetadata      *md;
     1336        detMasterFrameRow *object;
     1337        bool            status;
     1338
     1339        object = detMasterFrameRowAlloc(-32, -32, "a string");
     1340        if (!object) {
     1341            exit(EXIT_FAILURE);
     1342        }
     1343
     1344        md = detMasterFrameMetadataFromObject(object);
     1345        if (!md) {
     1346            exit(EXIT_FAILURE);
     1347        }
     1348
     1349        psFree(object);
     1350
     1351        if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
     1352            psFree(md);
     1353            exit(EXIT_FAILURE);
     1354        }
     1355        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     1356            psFree(md);
     1357            exit(EXIT_FAILURE);
     1358        }
     1359        if (strncmp(psMetadataLookupPtr(&status, md, "comment"), "a string", MAX_STRING_LENGTH)) {
     1360            psFree(md);
     1361            exit(EXIT_FAILURE);
     1362        }
     1363
     1364        psFree(md);
     1365    }
     1366
     1367    {
     1368        psMetadata      *md;
     1369        detMasterImfileRow *object;
     1370        bool            status;
     1371
     1372        object = detMasterImfileRowAlloc(-32, "a string", "a string", "a string");
     1373        if (!object) {
     1374            exit(EXIT_FAILURE);
     1375        }
     1376
     1377        md = detMasterImfileMetadataFromObject(object);
     1378        if (!md) {
     1379            exit(EXIT_FAILURE);
     1380        }
     1381
     1382        psFree(object);
     1383
     1384        if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
     1385            psFree(md);
     1386            exit(EXIT_FAILURE);
     1387        }
     1388        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1389            psFree(md);
     1390            exit(EXIT_FAILURE);
     1391        }
     1392        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1393            psFree(md);
     1394            exit(EXIT_FAILURE);
     1395        }
     1396        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     1397            psFree(md);
     1398            exit(EXIT_FAILURE);
     1399        }
     1400
     1401        psFree(md);
     1402    }
     1403
     1404    {
     1405        psMetadata      *md;
     1406        detResidImfileRow *object;
     1407        bool            status;
     1408
     1409        object = detResidImfileRowAlloc(-32, -32, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string");
     1410        if (!object) {
     1411            exit(EXIT_FAILURE);
     1412        }
     1413
     1414        md = detResidImfileMetadataFromObject(object);
     1415        if (!md) {
     1416            exit(EXIT_FAILURE);
     1417        }
     1418
     1419        psFree(object);
     1420
     1421        if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
     1422            psFree(md);
     1423            exit(EXIT_FAILURE);
     1424        }
     1425        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     1426            psFree(md);
     1427            exit(EXIT_FAILURE);
     1428        }
     1429        if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
     1430            psFree(md);
     1431            exit(EXIT_FAILURE);
     1432        }
     1433        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1434            psFree(md);
     1435            exit(EXIT_FAILURE);
     1436        }
     1437        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1438            psFree(md);
     1439            exit(EXIT_FAILURE);
     1440        }
     1441        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     1442            psFree(md);
     1443            exit(EXIT_FAILURE);
     1444        }
     1445        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     1446            psFree(md);
     1447            exit(EXIT_FAILURE);
     1448        }
     1449        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     1450            psFree(md);
     1451            exit(EXIT_FAILURE);
     1452        }
     1453        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     1454            psFree(md);
     1455            exit(EXIT_FAILURE);
     1456        }
     1457        if (strncmp(psMetadataLookupPtr(&status, md, "b1_uri"), "a string", MAX_STRING_LENGTH)) {
     1458            psFree(md);
     1459            exit(EXIT_FAILURE);
     1460        }
     1461        if (strncmp(psMetadataLookupPtr(&status, md, "b2_uri"), "a string", MAX_STRING_LENGTH)) {
     1462            psFree(md);
     1463            exit(EXIT_FAILURE);
     1464        }
     1465
     1466        psFree(md);
     1467    }
     1468
     1469    {
     1470        psMetadata      *md;
     1471        detResidExpRow  *object;
     1472        bool            status;
     1473
     1474        object = detResidExpRowAlloc(-32, -32, "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string", true);
     1475        if (!object) {
     1476            exit(EXIT_FAILURE);
     1477        }
     1478
     1479        md = detResidExpMetadataFromObject(object);
     1480        if (!md) {
     1481            exit(EXIT_FAILURE);
     1482        }
     1483
     1484        psFree(object);
     1485
     1486        if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
     1487            psFree(md);
     1488            exit(EXIT_FAILURE);
     1489        }
     1490        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     1491            psFree(md);
     1492            exit(EXIT_FAILURE);
     1493        }
     1494        if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
     1495            psFree(md);
     1496            exit(EXIT_FAILURE);
     1497        }
     1498        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     1499            psFree(md);
     1500            exit(EXIT_FAILURE);
     1501        }
     1502        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     1503            psFree(md);
     1504            exit(EXIT_FAILURE);
     1505        }
     1506        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     1507            psFree(md);
     1508            exit(EXIT_FAILURE);
     1509        }
     1510        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     1511            psFree(md);
     1512            exit(EXIT_FAILURE);
     1513        }
     1514        if (strncmp(psMetadataLookupPtr(&status, md, "b1_uri"), "a string", MAX_STRING_LENGTH)) {
     1515            psFree(md);
     1516            exit(EXIT_FAILURE);
     1517        }
     1518        if (strncmp(psMetadataLookupPtr(&status, md, "b2_uri"), "a string", MAX_STRING_LENGTH)) {
     1519            psFree(md);
     1520            exit(EXIT_FAILURE);
     1521        }
    11501522        if (!psMetadataLookupBool(&status, md, "accept") == true) {
    11511523            psFree(md);
     
    11581530    {
    11591531        psMetadata      *md;
    1160         detProcessedImfileRow *object;
    1161         bool            status;
    1162 
    1163         object = detProcessedImfileRowAlloc(-32, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64);
    1164         if (!object) {
    1165             exit(EXIT_FAILURE);
    1166         }
    1167 
    1168         md = detProcessedImfileMetadataFromObject(object);
     1532        detRunSummaryRow *object;
     1533        bool            status;
     1534
     1535        object = detRunSummaryRowAlloc(-32, -32, 64.64, 64.64, 64.64, true);
     1536        if (!object) {
     1537            exit(EXIT_FAILURE);
     1538        }
     1539
     1540        md = detRunSummaryMetadataFromObject(object);
    11691541        if (!md) {
    11701542            exit(EXIT_FAILURE);
     
    11771549            exit(EXIT_FAILURE);
    11781550        }
    1179         if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
    1180             psFree(md);
    1181             exit(EXIT_FAILURE);
    1182         }
    1183         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    1184             psFree(md);
    1185             exit(EXIT_FAILURE);
    1186         }
    1187         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1188             psFree(md);
    1189             exit(EXIT_FAILURE);
    1190         }
    1191         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     1551        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    11921552            psFree(md);
    11931553            exit(EXIT_FAILURE);
     
    12021562        }
    12031563        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    1204             psFree(md);
    1205             exit(EXIT_FAILURE);
    1206         }
    1207 
    1208         psFree(md);
    1209     }
    1210 
    1211     {
    1212         psMetadata      *md;
    1213         detStackedImfileRow *object;
    1214         bool            status;
    1215 
    1216         object = detStackedImfileRowAlloc(-32, -32, "a string", "a string", "a string");
    1217         if (!object) {
    1218             exit(EXIT_FAILURE);
    1219         }
    1220 
    1221         md = detStackedImfileMetadataFromObject(object);
    1222         if (!md) {
    1223             exit(EXIT_FAILURE);
    1224         }
    1225 
    1226         psFree(object);
    1227 
    1228         if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
    1229             psFree(md);
    1230             exit(EXIT_FAILURE);
    1231         }
    1232         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    1233             psFree(md);
    1234             exit(EXIT_FAILURE);
    1235         }
    1236         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    1237             psFree(md);
    1238             exit(EXIT_FAILURE);
    1239         }
    1240         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1241             psFree(md);
    1242             exit(EXIT_FAILURE);
    1243         }
    1244         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    1245             psFree(md);
    1246             exit(EXIT_FAILURE);
    1247         }
    1248 
    1249         psFree(md);
    1250     }
    1251 
    1252     {
    1253         psMetadata      *md;
    1254         detNormalizedStatImfileRow *object;
    1255         bool            status;
    1256 
    1257         object = detNormalizedStatImfileRowAlloc(-32, -32, "a string", 32.32);
    1258         if (!object) {
    1259             exit(EXIT_FAILURE);
    1260         }
    1261 
    1262         md = detNormalizedStatImfileMetadataFromObject(object);
    1263         if (!md) {
    1264             exit(EXIT_FAILURE);
    1265         }
    1266 
    1267         psFree(object);
    1268 
    1269         if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
    1270             psFree(md);
    1271             exit(EXIT_FAILURE);
    1272         }
    1273         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    1274             psFree(md);
    1275             exit(EXIT_FAILURE);
    1276         }
    1277         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    1278             psFree(md);
    1279             exit(EXIT_FAILURE);
    1280         }
    1281         if (!psMetadataLookupF32(&status, md, "norm") == 32.32) {
    1282             psFree(md);
    1283             exit(EXIT_FAILURE);
    1284         }
    1285 
    1286         psFree(md);
    1287     }
    1288 
    1289     {
    1290         psMetadata      *md;
    1291         detNormalizedImfileRow *object;
    1292         bool            status;
    1293 
    1294         object = detNormalizedImfileRowAlloc(-32, -32, "a string", "a string");
    1295         if (!object) {
    1296             exit(EXIT_FAILURE);
    1297         }
    1298 
    1299         md = detNormalizedImfileMetadataFromObject(object);
    1300         if (!md) {
    1301             exit(EXIT_FAILURE);
    1302         }
    1303 
    1304         psFree(object);
    1305 
    1306         if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
    1307             psFree(md);
    1308             exit(EXIT_FAILURE);
    1309         }
    1310         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    1311             psFree(md);
    1312             exit(EXIT_FAILURE);
    1313         }
    1314         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    1315             psFree(md);
    1316             exit(EXIT_FAILURE);
    1317         }
    1318         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1319             psFree(md);
    1320             exit(EXIT_FAILURE);
    1321         }
    1322 
    1323         psFree(md);
    1324     }
    1325 
    1326     {
    1327         psMetadata      *md;
    1328         detMasterFrameRow *object;
    1329         bool            status;
    1330 
    1331         object = detMasterFrameRowAlloc(-32, -32, "a string");
    1332         if (!object) {
    1333             exit(EXIT_FAILURE);
    1334         }
    1335 
    1336         md = detMasterFrameMetadataFromObject(object);
    1337         if (!md) {
    1338             exit(EXIT_FAILURE);
    1339         }
    1340 
    1341         psFree(object);
    1342 
    1343         if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
    1344             psFree(md);
    1345             exit(EXIT_FAILURE);
    1346         }
    1347         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    1348             psFree(md);
    1349             exit(EXIT_FAILURE);
    1350         }
    1351         if (strncmp(psMetadataLookupPtr(&status, md, "comment"), "a string", MAX_STRING_LENGTH)) {
    1352             psFree(md);
    1353             exit(EXIT_FAILURE);
    1354         }
    1355 
    1356         psFree(md);
    1357     }
    1358 
    1359     {
    1360         psMetadata      *md;
    1361         detMasterImfileRow *object;
    1362         bool            status;
    1363 
    1364         object = detMasterImfileRowAlloc(-32, "a string", "a string", "a string");
    1365         if (!object) {
    1366             exit(EXIT_FAILURE);
    1367         }
    1368 
    1369         md = detMasterImfileMetadataFromObject(object);
    1370         if (!md) {
    1371             exit(EXIT_FAILURE);
    1372         }
    1373 
    1374         psFree(object);
    1375 
    1376         if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
    1377             psFree(md);
    1378             exit(EXIT_FAILURE);
    1379         }
    1380         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    1381             psFree(md);
    1382             exit(EXIT_FAILURE);
    1383         }
    1384         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1385             psFree(md);
    1386             exit(EXIT_FAILURE);
    1387         }
    1388         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    1389             psFree(md);
    1390             exit(EXIT_FAILURE);
    1391         }
    1392 
    1393         psFree(md);
    1394     }
    1395 
    1396     {
    1397         psMetadata      *md;
    1398         detResidImfileRow *object;
    1399         bool            status;
    1400 
    1401         object = detResidImfileRowAlloc(-32, -32, "a string", "a string", "a string", "a string", "a string", "a string");
    1402         if (!object) {
    1403             exit(EXIT_FAILURE);
    1404         }
    1405 
    1406         md = detResidImfileMetadataFromObject(object);
    1407         if (!md) {
    1408             exit(EXIT_FAILURE);
    1409         }
    1410 
    1411         psFree(object);
    1412 
    1413         if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
    1414             psFree(md);
    1415             exit(EXIT_FAILURE);
    1416         }
    1417         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    1418             psFree(md);
    1419             exit(EXIT_FAILURE);
    1420         }
    1421         if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
    1422             psFree(md);
    1423             exit(EXIT_FAILURE);
    1424         }
    1425         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    1426             psFree(md);
    1427             exit(EXIT_FAILURE);
    1428         }
    1429         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    1430             psFree(md);
    1431             exit(EXIT_FAILURE);
    1432         }
    1433         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1434             psFree(md);
    1435             exit(EXIT_FAILURE);
    1436         }
    1437         if (strncmp(psMetadataLookupPtr(&status, md, "b1_uri"), "a string", MAX_STRING_LENGTH)) {
    1438             psFree(md);
    1439             exit(EXIT_FAILURE);
    1440         }
    1441         if (strncmp(psMetadataLookupPtr(&status, md, "b2_uri"), "a string", MAX_STRING_LENGTH)) {
    1442             psFree(md);
    1443             exit(EXIT_FAILURE);
    1444         }
    1445 
    1446         psFree(md);
    1447     }
    1448 
    1449     {
    1450         psMetadata      *md;
    1451         detResidExpRow  *object;
    1452         bool            status;
    1453 
    1454         object = detResidExpRowAlloc(-32, -32, "a string", "a string", true, true);
    1455         if (!object) {
    1456             exit(EXIT_FAILURE);
    1457         }
    1458 
    1459         md = detResidExpMetadataFromObject(object);
    1460         if (!md) {
    1461             exit(EXIT_FAILURE);
    1462         }
    1463 
    1464         psFree(object);
    1465 
    1466         if (!psMetadataLookupS32(&status, md, "det_id") == -32) {
    1467             psFree(md);
    1468             exit(EXIT_FAILURE);
    1469         }
    1470         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    1471             psFree(md);
    1472             exit(EXIT_FAILURE);
    1473         }
    1474         if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
    1475             psFree(md);
    1476             exit(EXIT_FAILURE);
    1477         }
    1478         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    1479             psFree(md);
    1480             exit(EXIT_FAILURE);
    1481         }
    1482         if (!psMetadataLookupBool(&status, md, "keep") == true) {
    14831564            psFree(md);
    14841565            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/objectfrommetadata.c

    r8380 r8528  
    16911691            exit(EXIT_FAILURE);
    16921692        }
     1693
     1694        object = detInputExpObjectFromMetadata(md);
     1695        if (!object) {
     1696            psFree(md);
     1697            exit(EXIT_FAILURE);
     1698        }
     1699
     1700        psFree(md);
     1701
     1702        if (!object->det_id == -32) {
     1703            psFree(object);
     1704            exit(EXIT_FAILURE);
     1705        }
     1706        if (!object->iteration == -32) {
     1707            psFree(object);
     1708            exit(EXIT_FAILURE);
     1709        }
     1710        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
     1711            psFree(object);
     1712            exit(EXIT_FAILURE);
     1713        }
     1714        if (!object->include == true) {
     1715            psFree(object);
     1716            exit(EXIT_FAILURE);
     1717        }
     1718
     1719        psFree(object);
     1720    }
     1721
     1722    {
     1723        psMetadata      *md;
     1724        detProcessedImfileRow *object;
     1725
     1726        md = psMetadataAlloc();
     1727        if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
     1728            psFree(md);
     1729            exit(EXIT_FAILURE);
     1730        }
     1731        if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, "a string")) {
     1732            psFree(md);
     1733            exit(EXIT_FAILURE);
     1734        }
     1735        if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
     1736            psFree(md);
     1737            exit(EXIT_FAILURE);
     1738        }
     1739        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
     1740            psFree(md);
     1741            exit(EXIT_FAILURE);
     1742        }
     1743        if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
     1744            psFree(md);
     1745            exit(EXIT_FAILURE);
     1746        }
     1747        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 64.64)) {
     1748            psFree(md);
     1749            exit(EXIT_FAILURE);
     1750        }
     1751        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 64.64)) {
     1752            psFree(md);
     1753            exit(EXIT_FAILURE);
     1754        }
     1755        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 64.64)) {
     1756            psFree(md);
     1757            exit(EXIT_FAILURE);
     1758        }
     1759
     1760        object = detProcessedImfileObjectFromMetadata(md);
     1761        if (!object) {
     1762            psFree(md);
     1763            exit(EXIT_FAILURE);
     1764        }
     1765
     1766        psFree(md);
     1767
     1768        if (!object->det_id == -32) {
     1769            psFree(object);
     1770            exit(EXIT_FAILURE);
     1771        }
     1772        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
     1773            psFree(object);
     1774            exit(EXIT_FAILURE);
     1775        }
     1776        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1777            psFree(object);
     1778            exit(EXIT_FAILURE);
     1779        }
     1780        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1781            psFree(object);
     1782            exit(EXIT_FAILURE);
     1783        }
     1784        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     1785            psFree(object);
     1786            exit(EXIT_FAILURE);
     1787        }
     1788        if (!object->bg == 64.64) {
     1789            psFree(object);
     1790            exit(EXIT_FAILURE);
     1791        }
     1792        if (!object->bg_stdev == 64.64) {
     1793            psFree(object);
     1794            exit(EXIT_FAILURE);
     1795        }
     1796        if (!object->bg_mean_stdev == 64.64) {
     1797            psFree(object);
     1798            exit(EXIT_FAILURE);
     1799        }
     1800
     1801        psFree(object);
     1802    }
     1803
     1804    {
     1805        psMetadata      *md;
     1806        detStackedImfileRow *object;
     1807
     1808        md = psMetadataAlloc();
     1809        if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
     1810            psFree(md);
     1811            exit(EXIT_FAILURE);
     1812        }
     1813        if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
     1814            psFree(md);
     1815            exit(EXIT_FAILURE);
     1816        }
     1817        if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
     1818            psFree(md);
     1819            exit(EXIT_FAILURE);
     1820        }
     1821        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
     1822            psFree(md);
     1823            exit(EXIT_FAILURE);
     1824        }
     1825        if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
     1826            psFree(md);
     1827            exit(EXIT_FAILURE);
     1828        }
     1829        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 64.64)) {
     1830            psFree(md);
     1831            exit(EXIT_FAILURE);
     1832        }
     1833        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 64.64)) {
     1834            psFree(md);
     1835            exit(EXIT_FAILURE);
     1836        }
     1837        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 64.64)) {
     1838            psFree(md);
     1839            exit(EXIT_FAILURE);
     1840        }
     1841
     1842        object = detStackedImfileObjectFromMetadata(md);
     1843        if (!object) {
     1844            psFree(md);
     1845            exit(EXIT_FAILURE);
     1846        }
     1847
     1848        psFree(md);
     1849
     1850        if (!object->det_id == -32) {
     1851            psFree(object);
     1852            exit(EXIT_FAILURE);
     1853        }
     1854        if (!object->iteration == -32) {
     1855            psFree(object);
     1856            exit(EXIT_FAILURE);
     1857        }
     1858        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1859            psFree(object);
     1860            exit(EXIT_FAILURE);
     1861        }
     1862        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1863            psFree(object);
     1864            exit(EXIT_FAILURE);
     1865        }
     1866        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     1867            psFree(object);
     1868            exit(EXIT_FAILURE);
     1869        }
     1870        if (!object->bg == 64.64) {
     1871            psFree(object);
     1872            exit(EXIT_FAILURE);
     1873        }
     1874        if (!object->bg_stdev == 64.64) {
     1875            psFree(object);
     1876            exit(EXIT_FAILURE);
     1877        }
     1878        if (!object->bg_mean_stdev == 64.64) {
     1879            psFree(object);
     1880            exit(EXIT_FAILURE);
     1881        }
     1882
     1883        psFree(object);
     1884    }
     1885
     1886    {
     1887        psMetadata      *md;
     1888        detNormalizedStatImfileRow *object;
     1889
     1890        md = psMetadataAlloc();
     1891        if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
     1892            psFree(md);
     1893            exit(EXIT_FAILURE);
     1894        }
     1895        if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
     1896            psFree(md);
     1897            exit(EXIT_FAILURE);
     1898        }
     1899        if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
     1900            psFree(md);
     1901            exit(EXIT_FAILURE);
     1902        }
     1903        if (!psMetadataAddF32(md, PS_LIST_TAIL, "norm", 0, NULL, 32.32)) {
     1904            psFree(md);
     1905            exit(EXIT_FAILURE);
     1906        }
     1907
     1908        object = detNormalizedStatImfileObjectFromMetadata(md);
     1909        if (!object) {
     1910            psFree(md);
     1911            exit(EXIT_FAILURE);
     1912        }
     1913
     1914        psFree(md);
     1915
     1916        if (!object->det_id == -32) {
     1917            psFree(object);
     1918            exit(EXIT_FAILURE);
     1919        }
     1920        if (!object->iteration == -32) {
     1921            psFree(object);
     1922            exit(EXIT_FAILURE);
     1923        }
     1924        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1925            psFree(object);
     1926            exit(EXIT_FAILURE);
     1927        }
     1928        if (!object->norm == 32.32) {
     1929            psFree(object);
     1930            exit(EXIT_FAILURE);
     1931        }
     1932
     1933        psFree(object);
     1934    }
     1935
     1936    {
     1937        psMetadata      *md;
     1938        detNormalizedImfileRow *object;
     1939
     1940        md = psMetadataAlloc();
     1941        if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
     1942            psFree(md);
     1943            exit(EXIT_FAILURE);
     1944        }
     1945        if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
     1946            psFree(md);
     1947            exit(EXIT_FAILURE);
     1948        }
     1949        if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
     1950            psFree(md);
     1951            exit(EXIT_FAILURE);
     1952        }
     1953        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
     1954            psFree(md);
     1955            exit(EXIT_FAILURE);
     1956        }
     1957
     1958        object = detNormalizedImfileObjectFromMetadata(md);
     1959        if (!object) {
     1960            psFree(md);
     1961            exit(EXIT_FAILURE);
     1962        }
     1963
     1964        psFree(md);
     1965
     1966        if (!object->det_id == -32) {
     1967            psFree(object);
     1968            exit(EXIT_FAILURE);
     1969        }
     1970        if (!object->iteration == -32) {
     1971            psFree(object);
     1972            exit(EXIT_FAILURE);
     1973        }
     1974        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1975            psFree(object);
     1976            exit(EXIT_FAILURE);
     1977        }
     1978        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1979            psFree(object);
     1980            exit(EXIT_FAILURE);
     1981        }
     1982
     1983        psFree(object);
     1984    }
     1985
     1986    {
     1987        psMetadata      *md;
     1988        detMasterFrameRow *object;
     1989
     1990        md = psMetadataAlloc();
     1991        if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
     1992            psFree(md);
     1993            exit(EXIT_FAILURE);
     1994        }
     1995        if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
     1996            psFree(md);
     1997            exit(EXIT_FAILURE);
     1998        }
     1999        if (!psMetadataAddStr(md, PS_LIST_TAIL, "comment", 0, NULL, "a string")) {
     2000            psFree(md);
     2001            exit(EXIT_FAILURE);
     2002        }
     2003
     2004        object = detMasterFrameObjectFromMetadata(md);
     2005        if (!object) {
     2006            psFree(md);
     2007            exit(EXIT_FAILURE);
     2008        }
     2009
     2010        psFree(md);
     2011
     2012        if (!object->det_id == -32) {
     2013            psFree(object);
     2014            exit(EXIT_FAILURE);
     2015        }
     2016        if (!object->iteration == -32) {
     2017            psFree(object);
     2018            exit(EXIT_FAILURE);
     2019        }
     2020        if (strncmp(object->comment, "a string", MAX_STRING_LENGTH)) {
     2021            psFree(object);
     2022            exit(EXIT_FAILURE);
     2023        }
     2024
     2025        psFree(object);
     2026    }
     2027
     2028    {
     2029        psMetadata      *md;
     2030        detMasterImfileRow *object;
     2031
     2032        md = psMetadataAlloc();
     2033        if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
     2034            psFree(md);
     2035            exit(EXIT_FAILURE);
     2036        }
     2037        if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
     2038            psFree(md);
     2039            exit(EXIT_FAILURE);
     2040        }
     2041        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
     2042            psFree(md);
     2043            exit(EXIT_FAILURE);
     2044        }
     2045        if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
     2046            psFree(md);
     2047            exit(EXIT_FAILURE);
     2048        }
     2049
     2050        object = detMasterImfileObjectFromMetadata(md);
     2051        if (!object) {
     2052            psFree(md);
     2053            exit(EXIT_FAILURE);
     2054        }
     2055
     2056        psFree(md);
     2057
     2058        if (!object->det_id == -32) {
     2059            psFree(object);
     2060            exit(EXIT_FAILURE);
     2061        }
     2062        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2063            psFree(object);
     2064            exit(EXIT_FAILURE);
     2065        }
     2066        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2067            psFree(object);
     2068            exit(EXIT_FAILURE);
     2069        }
     2070        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2071            psFree(object);
     2072            exit(EXIT_FAILURE);
     2073        }
     2074
     2075        psFree(object);
     2076    }
     2077
     2078    {
     2079        psMetadata      *md;
     2080        detResidImfileRow *object;
     2081
     2082        md = psMetadataAlloc();
     2083        if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
     2084            psFree(md);
     2085            exit(EXIT_FAILURE);
     2086        }
     2087        if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
     2088            psFree(md);
     2089            exit(EXIT_FAILURE);
     2090        }
     2091        if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, "a string")) {
     2092            psFree(md);
     2093            exit(EXIT_FAILURE);
     2094        }
     2095        if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
     2096            psFree(md);
     2097            exit(EXIT_FAILURE);
     2098        }
     2099        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
     2100            psFree(md);
     2101            exit(EXIT_FAILURE);
     2102        }
     2103        if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
     2104            psFree(md);
     2105            exit(EXIT_FAILURE);
     2106        }
     2107        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 64.64)) {
     2108            psFree(md);
     2109            exit(EXIT_FAILURE);
     2110        }
     2111        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 64.64)) {
     2112            psFree(md);
     2113            exit(EXIT_FAILURE);
     2114        }
     2115        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 64.64)) {
     2116            psFree(md);
     2117            exit(EXIT_FAILURE);
     2118        }
     2119        if (!psMetadataAddStr(md, PS_LIST_TAIL, "b1_uri", 0, NULL, "a string")) {
     2120            psFree(md);
     2121            exit(EXIT_FAILURE);
     2122        }
     2123        if (!psMetadataAddStr(md, PS_LIST_TAIL, "b2_uri", 0, NULL, "a string")) {
     2124            psFree(md);
     2125            exit(EXIT_FAILURE);
     2126        }
     2127
     2128        object = detResidImfileObjectFromMetadata(md);
     2129        if (!object) {
     2130            psFree(md);
     2131            exit(EXIT_FAILURE);
     2132        }
     2133
     2134        psFree(md);
     2135
     2136        if (!object->det_id == -32) {
     2137            psFree(object);
     2138            exit(EXIT_FAILURE);
     2139        }
     2140        if (!object->iteration == -32) {
     2141            psFree(object);
     2142            exit(EXIT_FAILURE);
     2143        }
     2144        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
     2145            psFree(object);
     2146            exit(EXIT_FAILURE);
     2147        }
     2148        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2149            psFree(object);
     2150            exit(EXIT_FAILURE);
     2151        }
     2152        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2153            psFree(object);
     2154            exit(EXIT_FAILURE);
     2155        }
     2156        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2157            psFree(object);
     2158            exit(EXIT_FAILURE);
     2159        }
     2160        if (!object->bg == 64.64) {
     2161            psFree(object);
     2162            exit(EXIT_FAILURE);
     2163        }
     2164        if (!object->bg_stdev == 64.64) {
     2165            psFree(object);
     2166            exit(EXIT_FAILURE);
     2167        }
     2168        if (!object->bg_mean_stdev == 64.64) {
     2169            psFree(object);
     2170            exit(EXIT_FAILURE);
     2171        }
     2172        if (strncmp(object->b1_uri, "a string", MAX_STRING_LENGTH)) {
     2173            psFree(object);
     2174            exit(EXIT_FAILURE);
     2175        }
     2176        if (strncmp(object->b2_uri, "a string", MAX_STRING_LENGTH)) {
     2177            psFree(object);
     2178            exit(EXIT_FAILURE);
     2179        }
     2180
     2181        psFree(object);
     2182    }
     2183
     2184    {
     2185        psMetadata      *md;
     2186        detResidExpRow  *object;
     2187
     2188        md = psMetadataAlloc();
     2189        if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
     2190            psFree(md);
     2191            exit(EXIT_FAILURE);
     2192        }
     2193        if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
     2194            psFree(md);
     2195            exit(EXIT_FAILURE);
     2196        }
     2197        if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, "a string")) {
     2198            psFree(md);
     2199            exit(EXIT_FAILURE);
     2200        }
     2201        if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
     2202            psFree(md);
     2203            exit(EXIT_FAILURE);
     2204        }
     2205        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 64.64)) {
     2206            psFree(md);
     2207            exit(EXIT_FAILURE);
     2208        }
     2209        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 64.64)) {
     2210            psFree(md);
     2211            exit(EXIT_FAILURE);
     2212        }
     2213        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 64.64)) {
     2214            psFree(md);
     2215            exit(EXIT_FAILURE);
     2216        }
     2217        if (!psMetadataAddStr(md, PS_LIST_TAIL, "b1_uri", 0, NULL, "a string")) {
     2218            psFree(md);
     2219            exit(EXIT_FAILURE);
     2220        }
     2221        if (!psMetadataAddStr(md, PS_LIST_TAIL, "b2_uri", 0, NULL, "a string")) {
     2222            psFree(md);
     2223            exit(EXIT_FAILURE);
     2224        }
    16932225        if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, true)) {
    16942226            psFree(md);
     
    16962228        }
    16972229
    1698         object = detInputExpObjectFromMetadata(md);
     2230        object = detResidExpObjectFromMetadata(md);
    16992231        if (!object) {
    17002232            psFree(md);
     
    17162248            exit(EXIT_FAILURE);
    17172249        }
    1718         if (!object->include == true) {
     2250        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2251            psFree(object);
     2252            exit(EXIT_FAILURE);
     2253        }
     2254        if (!object->bg == 64.64) {
     2255            psFree(object);
     2256            exit(EXIT_FAILURE);
     2257        }
     2258        if (!object->bg_stdev == 64.64) {
     2259            psFree(object);
     2260            exit(EXIT_FAILURE);
     2261        }
     2262        if (!object->bg_mean_stdev == 64.64) {
     2263            psFree(object);
     2264            exit(EXIT_FAILURE);
     2265        }
     2266        if (strncmp(object->b1_uri, "a string", MAX_STRING_LENGTH)) {
     2267            psFree(object);
     2268            exit(EXIT_FAILURE);
     2269        }
     2270        if (strncmp(object->b2_uri, "a string", MAX_STRING_LENGTH)) {
    17192271            psFree(object);
    17202272            exit(EXIT_FAILURE);
     
    17302282    {
    17312283        psMetadata      *md;
    1732         detProcessedImfileRow *object;
     2284        detRunSummaryRow *object;
    17332285
    17342286        md = psMetadataAlloc();
     
    17372289            exit(EXIT_FAILURE);
    17382290        }
    1739         if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, "a string")) {
    1740             psFree(md);
    1741             exit(EXIT_FAILURE);
    1742         }
    1743         if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
    1744             psFree(md);
    1745             exit(EXIT_FAILURE);
    1746         }
    1747         if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
    1748             psFree(md);
    1749             exit(EXIT_FAILURE);
    1750         }
    1751         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
     2291        if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
    17522292            psFree(md);
    17532293            exit(EXIT_FAILURE);
     
    17652305            exit(EXIT_FAILURE);
    17662306        }
    1767 
    1768         object = detProcessedImfileObjectFromMetadata(md);
     2307        if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, true)) {
     2308            psFree(md);
     2309            exit(EXIT_FAILURE);
     2310        }
     2311
     2312        object = detRunSummaryObjectFromMetadata(md);
    17692313        if (!object) {
    17702314            psFree(md);
     
    17782322            exit(EXIT_FAILURE);
    17792323        }
    1780         if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    1781             psFree(object);
    1782             exit(EXIT_FAILURE);
    1783         }
    1784         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1785             psFree(object);
    1786             exit(EXIT_FAILURE);
    1787         }
    1788         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1789             psFree(object);
    1790             exit(EXIT_FAILURE);
    1791         }
    1792         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2324        if (!object->iteration == -32) {
    17932325            psFree(object);
    17942326            exit(EXIT_FAILURE);
     
    18032335        }
    18042336        if (!object->bg_mean_stdev == 64.64) {
    1805             psFree(object);
    1806             exit(EXIT_FAILURE);
    1807         }
    1808 
    1809         psFree(object);
    1810     }
    1811 
    1812     {
    1813         psMetadata      *md;
    1814         detStackedImfileRow *object;
    1815 
    1816         md = psMetadataAlloc();
    1817         if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
    1818             psFree(md);
    1819             exit(EXIT_FAILURE);
    1820         }
    1821         if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
    1822             psFree(md);
    1823             exit(EXIT_FAILURE);
    1824         }
    1825         if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
    1826             psFree(md);
    1827             exit(EXIT_FAILURE);
    1828         }
    1829         if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
    1830             psFree(md);
    1831             exit(EXIT_FAILURE);
    1832         }
    1833         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
    1834             psFree(md);
    1835             exit(EXIT_FAILURE);
    1836         }
    1837 
    1838         object = detStackedImfileObjectFromMetadata(md);
    1839         if (!object) {
    1840             psFree(md);
    1841             exit(EXIT_FAILURE);
    1842         }
    1843 
    1844         psFree(md);
    1845 
    1846         if (!object->det_id == -32) {
    1847             psFree(object);
    1848             exit(EXIT_FAILURE);
    1849         }
    1850         if (!object->iteration == -32) {
    1851             psFree(object);
    1852             exit(EXIT_FAILURE);
    1853         }
    1854         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1855             psFree(object);
    1856             exit(EXIT_FAILURE);
    1857         }
    1858         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1859             psFree(object);
    1860             exit(EXIT_FAILURE);
    1861         }
    1862         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    1863             psFree(object);
    1864             exit(EXIT_FAILURE);
    1865         }
    1866 
    1867         psFree(object);
    1868     }
    1869 
    1870     {
    1871         psMetadata      *md;
    1872         detNormalizedStatImfileRow *object;
    1873 
    1874         md = psMetadataAlloc();
    1875         if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
    1876             psFree(md);
    1877             exit(EXIT_FAILURE);
    1878         }
    1879         if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
    1880             psFree(md);
    1881             exit(EXIT_FAILURE);
    1882         }
    1883         if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
    1884             psFree(md);
    1885             exit(EXIT_FAILURE);
    1886         }
    1887         if (!psMetadataAddF32(md, PS_LIST_TAIL, "norm", 0, NULL, 32.32)) {
    1888             psFree(md);
    1889             exit(EXIT_FAILURE);
    1890         }
    1891 
    1892         object = detNormalizedStatImfileObjectFromMetadata(md);
    1893         if (!object) {
    1894             psFree(md);
    1895             exit(EXIT_FAILURE);
    1896         }
    1897 
    1898         psFree(md);
    1899 
    1900         if (!object->det_id == -32) {
    1901             psFree(object);
    1902             exit(EXIT_FAILURE);
    1903         }
    1904         if (!object->iteration == -32) {
    1905             psFree(object);
    1906             exit(EXIT_FAILURE);
    1907         }
    1908         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1909             psFree(object);
    1910             exit(EXIT_FAILURE);
    1911         }
    1912         if (!object->norm == 32.32) {
    1913             psFree(object);
    1914             exit(EXIT_FAILURE);
    1915         }
    1916 
    1917         psFree(object);
    1918     }
    1919 
    1920     {
    1921         psMetadata      *md;
    1922         detNormalizedImfileRow *object;
    1923 
    1924         md = psMetadataAlloc();
    1925         if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
    1926             psFree(md);
    1927             exit(EXIT_FAILURE);
    1928         }
    1929         if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
    1930             psFree(md);
    1931             exit(EXIT_FAILURE);
    1932         }
    1933         if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
    1934             psFree(md);
    1935             exit(EXIT_FAILURE);
    1936         }
    1937         if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
    1938             psFree(md);
    1939             exit(EXIT_FAILURE);
    1940         }
    1941 
    1942         object = detNormalizedImfileObjectFromMetadata(md);
    1943         if (!object) {
    1944             psFree(md);
    1945             exit(EXIT_FAILURE);
    1946         }
    1947 
    1948         psFree(md);
    1949 
    1950         if (!object->det_id == -32) {
    1951             psFree(object);
    1952             exit(EXIT_FAILURE);
    1953         }
    1954         if (!object->iteration == -32) {
    1955             psFree(object);
    1956             exit(EXIT_FAILURE);
    1957         }
    1958         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1959             psFree(object);
    1960             exit(EXIT_FAILURE);
    1961         }
    1962         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1963             psFree(object);
    1964             exit(EXIT_FAILURE);
    1965         }
    1966 
    1967         psFree(object);
    1968     }
    1969 
    1970     {
    1971         psMetadata      *md;
    1972         detMasterFrameRow *object;
    1973 
    1974         md = psMetadataAlloc();
    1975         if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
    1976             psFree(md);
    1977             exit(EXIT_FAILURE);
    1978         }
    1979         if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
    1980             psFree(md);
    1981             exit(EXIT_FAILURE);
    1982         }
    1983         if (!psMetadataAddStr(md, PS_LIST_TAIL, "comment", 0, NULL, "a string")) {
    1984             psFree(md);
    1985             exit(EXIT_FAILURE);
    1986         }
    1987 
    1988         object = detMasterFrameObjectFromMetadata(md);
    1989         if (!object) {
    1990             psFree(md);
    1991             exit(EXIT_FAILURE);
    1992         }
    1993 
    1994         psFree(md);
    1995 
    1996         if (!object->det_id == -32) {
    1997             psFree(object);
    1998             exit(EXIT_FAILURE);
    1999         }
    2000         if (!object->iteration == -32) {
    2001             psFree(object);
    2002             exit(EXIT_FAILURE);
    2003         }
    2004         if (strncmp(object->comment, "a string", MAX_STRING_LENGTH)) {
    2005             psFree(object);
    2006             exit(EXIT_FAILURE);
    2007         }
    2008 
    2009         psFree(object);
    2010     }
    2011 
    2012     {
    2013         psMetadata      *md;
    2014         detMasterImfileRow *object;
    2015 
    2016         md = psMetadataAlloc();
    2017         if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
    2018             psFree(md);
    2019             exit(EXIT_FAILURE);
    2020         }
    2021         if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
    2022             psFree(md);
    2023             exit(EXIT_FAILURE);
    2024         }
    2025         if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
    2026             psFree(md);
    2027             exit(EXIT_FAILURE);
    2028         }
    2029         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
    2030             psFree(md);
    2031             exit(EXIT_FAILURE);
    2032         }
    2033 
    2034         object = detMasterImfileObjectFromMetadata(md);
    2035         if (!object) {
    2036             psFree(md);
    2037             exit(EXIT_FAILURE);
    2038         }
    2039 
    2040         psFree(md);
    2041 
    2042         if (!object->det_id == -32) {
    2043             psFree(object);
    2044             exit(EXIT_FAILURE);
    2045         }
    2046         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2047             psFree(object);
    2048             exit(EXIT_FAILURE);
    2049         }
    2050         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2051             psFree(object);
    2052             exit(EXIT_FAILURE);
    2053         }
    2054         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2055             psFree(object);
    2056             exit(EXIT_FAILURE);
    2057         }
    2058 
    2059         psFree(object);
    2060     }
    2061 
    2062     {
    2063         psMetadata      *md;
    2064         detResidImfileRow *object;
    2065 
    2066         md = psMetadataAlloc();
    2067         if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
    2068             psFree(md);
    2069             exit(EXIT_FAILURE);
    2070         }
    2071         if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
    2072             psFree(md);
    2073             exit(EXIT_FAILURE);
    2074         }
    2075         if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, "a string")) {
    2076             psFree(md);
    2077             exit(EXIT_FAILURE);
    2078         }
    2079         if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
    2080             psFree(md);
    2081             exit(EXIT_FAILURE);
    2082         }
    2083         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
    2084             psFree(md);
    2085             exit(EXIT_FAILURE);
    2086         }
    2087         if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
    2088             psFree(md);
    2089             exit(EXIT_FAILURE);
    2090         }
    2091         if (!psMetadataAddStr(md, PS_LIST_TAIL, "b1_uri", 0, NULL, "a string")) {
    2092             psFree(md);
    2093             exit(EXIT_FAILURE);
    2094         }
    2095         if (!psMetadataAddStr(md, PS_LIST_TAIL, "b2_uri", 0, NULL, "a string")) {
    2096             psFree(md);
    2097             exit(EXIT_FAILURE);
    2098         }
    2099 
    2100         object = detResidImfileObjectFromMetadata(md);
    2101         if (!object) {
    2102             psFree(md);
    2103             exit(EXIT_FAILURE);
    2104         }
    2105 
    2106         psFree(md);
    2107 
    2108         if (!object->det_id == -32) {
    2109             psFree(object);
    2110             exit(EXIT_FAILURE);
    2111         }
    2112         if (!object->iteration == -32) {
    2113             psFree(object);
    2114             exit(EXIT_FAILURE);
    2115         }
    2116         if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    2117             psFree(object);
    2118             exit(EXIT_FAILURE);
    2119         }
    2120         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2121             psFree(object);
    2122             exit(EXIT_FAILURE);
    2123         }
    2124         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2125             psFree(object);
    2126             exit(EXIT_FAILURE);
    2127         }
    2128         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2129             psFree(object);
    2130             exit(EXIT_FAILURE);
    2131         }
    2132         if (strncmp(object->b1_uri, "a string", MAX_STRING_LENGTH)) {
    2133             psFree(object);
    2134             exit(EXIT_FAILURE);
    2135         }
    2136         if (strncmp(object->b2_uri, "a string", MAX_STRING_LENGTH)) {
    2137             psFree(object);
    2138             exit(EXIT_FAILURE);
    2139         }
    2140 
    2141         psFree(object);
    2142     }
    2143 
    2144     {
    2145         psMetadata      *md;
    2146         detResidExpRow  *object;
    2147 
    2148         md = psMetadataAlloc();
    2149         if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {
    2150             psFree(md);
    2151             exit(EXIT_FAILURE);
    2152         }
    2153         if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {
    2154             psFree(md);
    2155             exit(EXIT_FAILURE);
    2156         }
    2157         if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, "a string")) {
    2158             psFree(md);
    2159             exit(EXIT_FAILURE);
    2160         }
    2161         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
    2162             psFree(md);
    2163             exit(EXIT_FAILURE);
    2164         }
    2165         if (!psMetadataAdd(md, PS_LIST_TAIL, "keep", PS_DATA_BOOL, NULL, true)) {
    2166             psFree(md);
    2167             exit(EXIT_FAILURE);
    2168         }
    2169         if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, true)) {
    2170             psFree(md);
    2171             exit(EXIT_FAILURE);
    2172         }
    2173 
    2174         object = detResidExpObjectFromMetadata(md);
    2175         if (!object) {
    2176             psFree(md);
    2177             exit(EXIT_FAILURE);
    2178         }
    2179 
    2180         psFree(md);
    2181 
    2182         if (!object->det_id == -32) {
    2183             psFree(object);
    2184             exit(EXIT_FAILURE);
    2185         }
    2186         if (!object->iteration == -32) {
    2187             psFree(object);
    2188             exit(EXIT_FAILURE);
    2189         }
    2190         if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    2191             psFree(object);
    2192             exit(EXIT_FAILURE);
    2193         }
    2194         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2195             psFree(object);
    2196             exit(EXIT_FAILURE);
    2197         }
    2198         if (!object->keep == true) {
    21992337            psFree(object);
    22002338            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/pop.c

    r8380 r8528  
    512512        char            exp_id[256];
    513513        bool            include;
    514         bool            accept;
    515 
    516         dbh = psDBInit("localhost", "test", NULL, "test");
    517         if (!dbh) {
    518             exit(EXIT_FAILURE);
    519         }
    520 
    521         if (!detInputExpPop(dbh, &det_id, &iteration, (char **)&exp_id, &include, &accept)) {
     514
     515        dbh = psDBInit("localhost", "test", NULL, "test");
     516        if (!dbh) {
     517            exit(EXIT_FAILURE);
     518        }
     519
     520        if (!detInputExpPop(dbh, &det_id, &iteration, (char **)&exp_id, &include)) {
    522521            exit(EXIT_FAILURE);
    523522        }
     
    556555        char            uri[256];
    557556        char            recipe[256];
    558 
    559         dbh = psDBInit("localhost", "test", NULL, "test");
    560         if (!dbh) {
    561             exit(EXIT_FAILURE);
    562         }
    563 
    564         if (!detStackedImfilePop(dbh, &det_id, &iteration, (char **)&class_id, (char **)&uri, (char **)&recipe)) {
     557        psF64           bg;
     558        psF64           bg_stdev;
     559        psF64           bg_mean_stdev;
     560
     561        dbh = psDBInit("localhost", "test", NULL, "test");
     562        if (!dbh) {
     563            exit(EXIT_FAILURE);
     564        }
     565
     566        if (!detStackedImfilePop(dbh, &det_id, &iteration, (char **)&class_id, (char **)&uri, (char **)&recipe, &bg, &bg_stdev, &bg_mean_stdev)) {
    565567            exit(EXIT_FAILURE);
    566568        }
     
    650652        char            exp_id[256];
    651653        char            class_id[256];
    652         char            recipe[256];
    653         char            uri[256];
     654        char            uri[256];
     655        char            recipe[256];
     656        psF64           bg;
     657        psF64           bg_stdev;
     658        psF64           bg_mean_stdev;
    654659        char            b1_uri[256];
    655660        char            b2_uri[256];
     
    660665        }
    661666
    662         if (!detResidImfilePop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&class_id, (char **)&recipe, (char **)&uri, (char **)&b1_uri, (char **)&b2_uri)) {
    663             exit(EXIT_FAILURE);
    664         }
    665 
    666         psDBCleanup(dbh);
    667     }
    668 
    669     {
    670         psDB            *dbh;
    671         psS32           det_id;
    672         psS32           iteration;
    673         char            exp_id[256];
    674         char            recipe[256];
    675         bool            keep;
     667        if (!detResidImfilePop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&class_id, (char **)&uri, (char **)&recipe, &bg, &bg_stdev, &bg_mean_stdev, (char **)&b1_uri, (char **)&b2_uri)) {
     668            exit(EXIT_FAILURE);
     669        }
     670
     671        psDBCleanup(dbh);
     672    }
     673
     674    {
     675        psDB            *dbh;
     676        psS32           det_id;
     677        psS32           iteration;
     678        char            exp_id[256];
     679        char            recipe[256];
     680        psF64           bg;
     681        psF64           bg_stdev;
     682        psF64           bg_mean_stdev;
     683        char            b1_uri[256];
     684        char            b2_uri[256];
    676685        bool            accept;
    677686
     
    681690        }
    682691
    683         if (!detResidExpPop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&recipe, &keep, &accept)) {
     692        if (!detResidExpPop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&recipe, &bg, &bg_stdev, &bg_mean_stdev, (char **)&b1_uri, (char **)&b2_uri, &accept)) {
     693            exit(EXIT_FAILURE);
     694        }
     695
     696        psDBCleanup(dbh);
     697    }
     698
     699    {
     700        psDB            *dbh;
     701        psS32           det_id;
     702        psS32           iteration;
     703        psF64           bg;
     704        psF64           bg_stdev;
     705        psF64           bg_mean_stdev;
     706        bool            accept;
     707
     708        dbh = psDBInit("localhost", "test", NULL, "test");
     709        if (!dbh) {
     710            exit(EXIT_FAILURE);
     711        }
     712
     713        if (!detRunSummaryPop(dbh, &det_id, &iteration, &bg, &bg_stdev, &bg_mean_stdev, &accept)) {
    684714            exit(EXIT_FAILURE);
    685715        }
  • trunk/ippdb/tests/popfits.c

    r8380 r8528  
    841841    }
    842842
     843    {
     844        psDB            *dbh;
     845        psFits          *fits;
     846
     847        dbh = psDBInit("localhost", "test", NULL, "test");
     848        if (!dbh) {
     849            exit(EXIT_FAILURE);
     850        }
     851
     852        // allocate a temp
     853        fits = psFitsOpen(TMP_FILENAME, "w");
     854        if (!fits) {
     855            exit(EXIT_FAILURE);
     856        }
     857
     858        if (!detRunSummaryPopFits(dbh, fits, 1)) {
     859            exit(EXIT_FAILURE);
     860        }
     861
     862        if (!psFitsClose(fits)) {
     863            exit(EXIT_FAILURE);
     864        }
     865
     866        psDBCleanup(dbh);
     867    }
     868
    843869    exit(EXIT_SUCCESS);
    844870}
  • trunk/ippdb/tests/popobject.c

    r8380 r8528  
    581581    }
    582582
     583    {
     584        psDB            *dbh;
     585        detRunSummaryRow *object;
     586
     587        dbh = psDBInit("localhost", "test", NULL, "test");
     588        if (!dbh) {
     589            exit(EXIT_FAILURE);
     590        }
     591
     592        object = detRunSummaryPopObject(dbh);
     593        if (!object) {
     594            exit(EXIT_FAILURE);
     595        }
     596
     597        psFree(object);
     598        psDBCleanup(dbh);
     599    }
     600
    583601    exit(EXIT_SUCCESS);
    584602}
  • trunk/ippdb/tests/selectrowsfits.c

    r8380 r8528  
    711711    }
    712712
     713    {
     714        psDB            *dbh;
     715        psFits          *fits;
     716
     717        dbh = psDBInit("localhost", "test", NULL, "test");
     718        if (!dbh) {
     719            exit(EXIT_FAILURE);
     720        }
     721
     722        fits = psFitsOpen(TMP_FILENAME, "w");
     723        if (!fits) {
     724            exit(EXIT_FAILURE);
     725        }
     726
     727        if (!detRunSummarySelectRowsFits(dbh, fits, NULL, 1)) {
     728            exit(EXIT_FAILURE);
     729        }
     730
     731        psFree(fits);
     732        psDBCleanup(dbh);
     733    }
     734
    713735    exit(EXIT_SUCCESS);
    714736}
Note: See TracChangeset for help on using the changeset viewer.