IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 16587


Ignore:
Timestamp:
Feb 21, 2008, 6:09:25 PM (18 years ago)
Author:
jhoblitt
Message:

update

Location:
trunk/ippdb
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippdb/Makefile.am

    r15576 r16587  
    1313    $(top_builddir)/docs/man/man3/summitExpRow.3 \
    1414    $(top_builddir)/docs/man/man3/summitImfileRow.3 \
    15     $(top_builddir)/docs/man/man3/pzPendingExpRow.3 \
    16     $(top_builddir)/docs/man/man3/pzPendingImfileRow.3 \
    17     $(top_builddir)/docs/man/man3/pzDoneExpRow.3 \
    18     $(top_builddir)/docs/man/man3/pzDoneImfileRow.3 \
     15    $(top_builddir)/docs/man/man3/pzDownloadExpRow.3 \
     16    $(top_builddir)/docs/man/man3/pzDownloadImfileRow.3 \
    1917    $(top_builddir)/docs/man/man3/newExpRow.3 \
    2018    $(top_builddir)/docs/man/man3/newImfileRow.3 \
     
    6159    $(top_builddir)/docs/man/man3/calRunRow.3 \
    6260    $(top_builddir)/docs/man/man3/flatcorrRunRow.3 \
    63     $(top_builddir)/docs/man/man3/flatcorrExpRow.3
     61    $(top_builddir)/docs/man/man3/flatcorrExpRow.3 \
     62    $(top_builddir)/docs/man/man3/pstampDataStoreRow.3 \
     63    $(top_builddir)/docs/man/man3/pstampRequestRow.3 \
     64    $(top_builddir)/docs/man/man3/pstampJobRow.3
    6465
    6566
    66 docs/man/man3/ippdb.3 docs/man/man3/pzDataStoreRow.3 docs/man/man3/summitExpRow.3 docs/man/man3/summitImfileRow.3 docs/man/man3/pzPendingExpRow.3 docs/man/man3/pzPendingImfileRow.3 docs/man/man3/pzDoneExpRow.3 docs/man/man3/pzDoneImfileRow.3 docs/man/man3/newExpRow.3 docs/man/man3/newImfileRow.3 docs/man/man3/rawExpRow.3 docs/man/man3/rawImfileRow.3 docs/man/man3/guidePendingExpRow.3 docs/man/man3/chipRunRow.3 docs/man/man3/chipProcessedImfileRow.3 docs/man/man3/chipMaskRow.3 docs/man/man3/camRunRow.3 docs/man/man3/camProcessedExpRow.3 docs/man/man3/camMaskRow.3 docs/man/man3/warpRunRow.3 docs/man/man3/warpInputExpRow.3 docs/man/man3/warpSkyCellMapRow.3 docs/man/man3/warpSkyfileRow.3 docs/man/man3/diffRunRow.3 docs/man/man3/diffInputSkyfileRow.3 docs/man/man3/diffSkyfileRow.3 docs/man/man3/stackRunRow.3 docs/man/man3/stackInputSkyfileRow.3 docs/man/man3/stackSumSkyfileRow.3 docs/man/man3/detRunRow.3 docs/man/man3/detInputExpRow.3 docs/man/man3/detProcessedImfileRow.3 docs/man/man3/detProcessedExpRow.3 docs/man/man3/detStackedImfileRow.3 docs/man/man3/detNormalizedStatImfileRow.3 docs/man/man3/detNormalizedImfileRow.3 docs/man/man3/detNormalizedExpRow.3 docs/man/man3/detResidImfileRow.3 docs/man/man3/detResidExpRow.3 docs/man/man3/detRunSummaryRow.3 docs/man/man3/detRegisteredImfileRow.3 docs/man/man3/detCorrectedExpRow.3 docs/man/man3/detCorrectedImfileRow.3 docs/man/man3/magicRunRow.3 docs/man/man3/magicInputSkyfileRow.3 docs/man/man3/magicTreeRow.3 docs/man/man3/magicNodeResultRow.3 docs/man/man3/magicMaskRow.3 docs/man/man3/magicSkyfileMaskRow.3 docs/man/man3/calDBRow.3 docs/man/man3/calRunRow.3 docs/man/man3/flatcorrRunRow.3 docs/man/man3/flatcorrExpRow.3:
     67docs/man/man3/ippdb.3 docs/man/man3/pzDataStoreRow.3 docs/man/man3/summitExpRow.3 docs/man/man3/summitImfileRow.3 docs/man/man3/pzDownloadExpRow.3 docs/man/man3/pzDownloadImfileRow.3 docs/man/man3/newExpRow.3 docs/man/man3/newImfileRow.3 docs/man/man3/rawExpRow.3 docs/man/man3/rawImfileRow.3 docs/man/man3/guidePendingExpRow.3 docs/man/man3/chipRunRow.3 docs/man/man3/chipProcessedImfileRow.3 docs/man/man3/chipMaskRow.3 docs/man/man3/camRunRow.3 docs/man/man3/camProcessedExpRow.3 docs/man/man3/camMaskRow.3 docs/man/man3/warpRunRow.3 docs/man/man3/warpInputExpRow.3 docs/man/man3/warpSkyCellMapRow.3 docs/man/man3/warpSkyfileRow.3 docs/man/man3/diffRunRow.3 docs/man/man3/diffInputSkyfileRow.3 docs/man/man3/diffSkyfileRow.3 docs/man/man3/stackRunRow.3 docs/man/man3/stackInputSkyfileRow.3 docs/man/man3/stackSumSkyfileRow.3 docs/man/man3/detRunRow.3 docs/man/man3/detInputExpRow.3 docs/man/man3/detProcessedImfileRow.3 docs/man/man3/detProcessedExpRow.3 docs/man/man3/detStackedImfileRow.3 docs/man/man3/detNormalizedStatImfileRow.3 docs/man/man3/detNormalizedImfileRow.3 docs/man/man3/detNormalizedExpRow.3 docs/man/man3/detResidImfileRow.3 docs/man/man3/detResidExpRow.3 docs/man/man3/detRunSummaryRow.3 docs/man/man3/detRegisteredImfileRow.3 docs/man/man3/detCorrectedExpRow.3 docs/man/man3/detCorrectedImfileRow.3 docs/man/man3/magicRunRow.3 docs/man/man3/magicInputSkyfileRow.3 docs/man/man3/magicTreeRow.3 docs/man/man3/magicNodeResultRow.3 docs/man/man3/magicMaskRow.3 docs/man/man3/magicSkyfileMaskRow.3 docs/man/man3/calDBRow.3 docs/man/man3/calRunRow.3 docs/man/man3/flatcorrRunRow.3 docs/man/man3/flatcorrExpRow.3 docs/man/man3/pstampDataStoreRow.3 docs/man/man3/pstampRequestRow.3 docs/man/man3/pstampJobRow.3:
    6768        $(DOXYGEN)
    6869
  • trunk/ippdb/configure.ac

    r16154 r16587  
    77AC_PREREQ(2.61)
    88
    9 AC_INIT([ippdb], [1.1.29], [pan-starrs.ifa.hawaii.edu])
     9AC_INIT([ippdb], [1.1.30], [pan-starrs.ifa.hawaii.edu])
    1010AC_CONFIG_SRCDIR([ippdb.pc.in])
    1111
  • trunk/ippdb/src/ippdb.c

    r16177 r16587  
    3434#define SUMMITEXP_TABLE_NAME "summitExp"
    3535#define SUMMITIMFILE_TABLE_NAME "summitImfile"
    36 #define PZPENDINGEXP_TABLE_NAME "pzPendingExp"
    37 #define PZPENDINGIMFILE_TABLE_NAME "pzPendingImfile"
    38 #define PZDONEEXP_TABLE_NAME "pzDoneExp"
    39 #define PZDONEIMFILE_TABLE_NAME "pzDoneImfile"
     36#define PZDOWNLOADEXP_TABLE_NAME "pzDownloadExp"
     37#define PZDOWNLOADIMFILE_TABLE_NAME "pzDownloadImfile"
    4038#define NEWEXP_TABLE_NAME "newExp"
    4139#define NEWIMFILE_TABLE_NAME "newImfile"
     
    8381#define FLATCORRRUN_TABLE_NAME "flatcorrRun"
    8482#define FLATCORREXP_TABLE_NAME "flatcorrExp"
     83#define PSTAMPDATASTORE_TABLE_NAME "pstampDataStore"
     84#define PSTAMPREQUEST_TABLE_NAME "pstampRequest"
     85#define PSTAMPJOB_TABLE_NAME "pstampJob"
    8586#define MAX_STRING_LENGTH 1024
    8687
     
    10311032{
    10321033    psMetadata *md = psMetadataAlloc();
    1033     if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, "Primary Key", "64")) {
     1034    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, "Primary Key fkey(exp_name, camera, telescope) ref summitExp(exp_name, camera, telescope)", "64")) {
    10341035        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_name");
    10351036        psFree(md);
     
    14491450    return true;
    14501451}
    1451 static void pzPendingExpRowFree(pzPendingExpRow *object);
    1452 
    1453 pzPendingExpRow *pzPendingExpRowAlloc(const char *exp_name, const char *camera, const char *telescope)
    1454 {
    1455     pzPendingExpRow *_object;
    1456 
    1457     _object = psAlloc(sizeof(pzPendingExpRow));
    1458     psMemSetDeallocator(_object, (psFreeFunc)pzPendingExpRowFree);
     1452static void pzDownloadExpRowFree(pzDownloadExpRow *object);
     1453
     1454pzDownloadExpRow *pzDownloadExpRowAlloc(const char *exp_name, const char *camera, const char *telescope, const char *state)
     1455{
     1456    pzDownloadExpRow *_object;
     1457
     1458    _object = psAlloc(sizeof(pzDownloadExpRow));
     1459    psMemSetDeallocator(_object, (psFreeFunc)pzDownloadExpRowFree);
    14591460
    14601461    _object->exp_name = psStringCopy(exp_name);
    14611462    _object->camera = psStringCopy(camera);
    14621463    _object->telescope = psStringCopy(telescope);
     1464    _object->state = psStringCopy(state);
    14631465
    14641466    return _object;
    14651467}
    14661468
    1467 static void pzPendingExpRowFree(pzPendingExpRow *object)
     1469static void pzDownloadExpRowFree(pzDownloadExpRow *object)
    14681470{
    14691471    psFree(object->exp_name);
    14701472    psFree(object->camera);
    14711473    psFree(object->telescope);
    1472 }
    1473 
    1474 bool pzPendingExpCreateTable(psDB *dbh)
     1474    psFree(object->state);
     1475}
     1476
     1477bool pzDownloadExpCreateTable(psDB *dbh)
    14751478{
    14761479    psMetadata *md = psMetadataAlloc();
    1477     if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, "Primary Key", "64")) {
     1480    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, "Primary Key fkey(exp_name, camera, telescope) ref summitExp(exp_name, camera, telescope)", "64")) {
    14781481        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_name");
    14791482        psFree(md);
     
    14901493        return false;
    14911494    }
    1492 
    1493     bool status = psDBCreateTable(dbh, PZPENDINGEXP_TABLE_NAME, md);
     1495    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, "Key", "64")) {
     1496        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     1497        psFree(md);
     1498        return false;
     1499    }
     1500
     1501    bool status = psDBCreateTable(dbh, PZDOWNLOADEXP_TABLE_NAME, md);
    14941502
    14951503    psFree(md);
     
    14981506}
    14991507
    1500 bool pzPendingExpDropTable(psDB *dbh)
    1501 {
    1502     return psDBDropTable(dbh, PZPENDINGEXP_TABLE_NAME);
    1503 }
    1504 
    1505 bool pzPendingExpInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope)
     1508bool pzDownloadExpDropTable(psDB *dbh)
     1509{
     1510    return psDBDropTable(dbh, PZDOWNLOADEXP_TABLE_NAME);
     1511}
     1512
     1513bool pzDownloadExpInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, const char *state)
    15061514{
    15071515    psMetadata *md = psMetadataAlloc();
     
    15211529        return false;
    15221530    }
    1523 
    1524     bool status = psDBInsertOneRow(dbh, PZPENDINGEXP_TABLE_NAME, md);
     1531    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, state)) {
     1532        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     1533        psFree(md);
     1534        return false;
     1535    }
     1536
     1537    bool status = psDBInsertOneRow(dbh, PZDOWNLOADEXP_TABLE_NAME, md);
    15251538    psFree(md);
    15261539
     
    15281541}
    15291542
    1530 long long pzPendingExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     1543long long pzDownloadExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
    15311544{
    15321545    long long       deleted = 0;
    15331546
    1534     long long count = psDBDeleteRows(dbh, PZPENDINGEXP_TABLE_NAME, where, limit);
     1547    long long count = psDBDeleteRows(dbh, PZDOWNLOADEXP_TABLE_NAME, where, limit);
    15351548    if (count < 0) {
    1536         psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzPendingExp");
     1549        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDownloadExp");
    15371550        return count;
    15381551
     
    15421555    return deleted;
    15431556}
    1544 bool pzPendingExpInsertObject(psDB *dbh, pzPendingExpRow *object)
    1545 {
    1546     return pzPendingExpInsert(dbh, object->exp_name, object->camera, object->telescope);
    1547 }
    1548 
    1549 bool pzPendingExpInsertObjects(psDB *dbh, psArray *objects)
     1557bool pzDownloadExpInsertObject(psDB *dbh, pzDownloadExpRow *object)
     1558{
     1559    return pzDownloadExpInsert(dbh, object->exp_name, object->camera, object->telescope, object->state);
     1560}
     1561
     1562bool pzDownloadExpInsertObjects(psDB *dbh, psArray *objects)
    15501563{
    15511564    for (long i = 0; i < psArrayLength(objects); i++) {
    1552         if (!pzPendingExpInsertObject(dbh, objects->data[i])) {
     1565        if (!pzDownloadExpInsertObject(dbh, objects->data[i])) {
    15531566            return false;
    15541567        }
     
    15581571}
    15591572
    1560 bool pzPendingExpInsertFits(psDB *dbh, const psFits *fits)
     1573bool pzDownloadExpInsertFits(psDB *dbh, const psFits *fits)
    15611574{
    15621575    psArray         *rowSet;
    15631576
    1564     // move to (the first?) extension named  PZPENDINGEXP_TABLE_NAME
    1565     if (!psFitsMoveExtName(fits, PZPENDINGEXP_TABLE_NAME)) {
    1566         psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", PZPENDINGEXP_TABLE_NAME);
     1577    // move to (the first?) extension named  PZDOWNLOADEXP_TABLE_NAME
     1578    if (!psFitsMoveExtName(fits, PZDOWNLOADEXP_TABLE_NAME)) {
     1579        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", PZDOWNLOADEXP_TABLE_NAME);
    15671580        return false;
    15681581    }
     
    15821595    }
    15831596
    1584     if (!psDBInsertRows(dbh, PZPENDINGEXP_TABLE_NAME, rowSet)) {
     1597    if (!psDBInsertRows(dbh, PZDOWNLOADEXP_TABLE_NAME, rowSet)) {
    15851598        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
    15861599        psFree(rowSet);
     
    15931606}
    15941607
    1595 bool pzPendingExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     1608bool pzDownloadExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
    15961609{
    15971610    psArray         *rowSet;
    15981611
    1599     rowSet = psDBSelectRows(dbh, PZPENDINGEXP_TABLE_NAME, where, limit);
     1612    rowSet = psDBSelectRows(dbh, PZDOWNLOADEXP_TABLE_NAME, where, limit);
    16001613    if (!rowSet) {
    16011614        return false;
     
    16031616
    16041617    // output to fits
    1605     if (!psFitsWriteTable(fits, NULL, rowSet, PZPENDINGEXP_TABLE_NAME)) {
     1618    if (!psFitsWriteTable(fits, NULL, rowSet, PZDOWNLOADEXP_TABLE_NAME)) {
    16061619        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
    16071620        psFree(rowSet);
     
    16141627}
    16151628
    1616 psMetadata *pzPendingExpMetadataFromObject(const pzPendingExpRow *object)
     1629psMetadata *pzDownloadExpMetadataFromObject(const pzDownloadExpRow *object)
    16171630{
    16181631    psMetadata *md = psMetadataAlloc();
     
    16321645        return false;
    16331646    }
     1647    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, object->state)) {
     1648        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     1649        psFree(md);
     1650        return false;
     1651    }
    16341652
    16351653
     
    16371655}
    16381656
    1639 pzPendingExpRow *pzPendingExpObjectFromMetadata(psMetadata *md)
     1657pzDownloadExpRow *pzDownloadExpObjectFromMetadata(psMetadata *md)
    16401658{
    16411659
     
    16561674        return false;
    16571675    }
    1658 
    1659     return pzPendingExpRowAlloc(exp_name, camera, telescope);
    1660 }
    1661 psArray *pzPendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     1676    char* state = psMetadataLookupPtr(&status, md, "state");
     1677    if (!status) {
     1678        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item state");
     1679        return false;
     1680    }
     1681
     1682    return pzDownloadExpRowAlloc(exp_name, camera, telescope, state);
     1683}
     1684psArray *pzDownloadExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
    16621685{
    16631686    psArray         *rowSet;
     
    16651688    psU64           i;
    16661689
    1667     rowSet = psDBSelectRows(dbh, PZPENDINGEXP_TABLE_NAME, where, limit);
     1690    rowSet = psDBSelectRows(dbh, PZDOWNLOADEXP_TABLE_NAME, where, limit);
    16681691    if (!rowSet) {
    16691692        return NULL;
     
    16751698
    16761699    for (i = 0; i < rowSet->n; i++) {
    1677         pzPendingExpRow *object = pzPendingExpObjectFromMetadata(rowSet->data[i]);
     1700        pzDownloadExpRow *object = pzDownloadExpObjectFromMetadata(rowSet->data[i]);
    16781701        if (!object) {
    16791702            psFree(object);
     
    16901713    return returnSet;
    16911714}
    1692 bool pzPendingExpDeleteObject(psDB *dbh, const pzPendingExpRow *object)
    1693 {
    1694     psMetadata *where = pzPendingExpMetadataFromObject(object);
    1695     long long count = psDBDeleteRows(dbh, PZPENDINGEXP_TABLE_NAME, where, 0);
     1715bool pzDownloadExpDeleteObject(psDB *dbh, const pzDownloadExpRow *object)
     1716{
     1717    psMetadata *where = pzDownloadExpMetadataFromObject(object);
     1718    long long count = psDBDeleteRows(dbh, PZDOWNLOADEXP_TABLE_NAME, where, 0);
    16961719    psFree(where);
    16971720    if (count < 0) {
    1698         psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzPendingExp");
     1721        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDownloadExp");
    16991722        return false;
    17001723    }
     
    17021725        // XXX should this be a psAbort() instead?  It is possible that
    17031726        // having an object match multiple rows was by design.
    1704         psError(PS_ERR_UNKNOWN, true, "pzPendingExpRow object matched more then one row.  Check your database schema");
    1705         return false;
    1706     }
    1707 
    1708     return true;
    1709 }
    1710 long long pzPendingExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     1727        psError(PS_ERR_UNKNOWN, true, "pzDownloadExpRow object matched more then one row.  Check your database schema");
     1728        return false;
     1729    }
     1730
     1731    return true;
     1732}
     1733long long pzDownloadExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
    17111734{
    17121735    long long       deleted = 0;
    17131736
    17141737    for (long long i = 0; i < objects->n; i++) {
    1715         pzPendingExpRow *object = objects->data[i];
    1716         psMetadata *where = pzPendingExpMetadataFromObject(object);
    1717         long long count = psDBDeleteRows(dbh, PZPENDINGEXP_TABLE_NAME, where, limit);
     1738        pzDownloadExpRow *object = objects->data[i];
     1739        psMetadata *where = pzDownloadExpMetadataFromObject(object);
     1740        long long count = psDBDeleteRows(dbh, PZDOWNLOADEXP_TABLE_NAME, where, limit);
    17181741        psFree(where);
    17191742        if (count < 0) {
    1720             psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzPendingExp");
     1743            psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDownloadExp");
    17211744            return count;
    17221745        }
     
    17271750    return deleted;
    17281751}
    1729 bool pzPendingExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
     1752bool pzDownloadExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
    17301753{
    17311754    PS_ASSERT_PTR_NON_NULL(objects, false);
     
    17331756    psMetadata *output = psMetadataAlloc();
    17341757    for (long i = 0; i < psArrayLength(objects); i++) {
    1735         psMetadata *md = pzPendingExpMetadataFromObject(objects->data[i]);
     1758        psMetadata *md = pzDownloadExpMetadataFromObject(objects->data[i]);
    17361759        if (!psMetadataAddMetadata(
    17371760            output,
    17381761            PS_LIST_TAIL,
    1739             PZPENDINGEXP_TABLE_NAME,
     1762            PZDOWNLOADEXP_TABLE_NAME,
    17401763            PS_META_DUPLICATE_OK,
    17411764            NULL,
     
    17581781    return true;
    17591782}
    1760 bool pzPendingExpPrintObject(FILE *stream, pzPendingExpRow *object, bool mdcf)
     1783bool pzDownloadExpPrintObject(FILE *stream, pzDownloadExpRow *object, bool mdcf)
    17611784{
    17621785    PS_ASSERT_PTR_NON_NULL(object, false);
    17631786
    1764     psMetadata *md = pzPendingExpMetadataFromObject(object);
     1787    psMetadata *md = pzDownloadExpMetadataFromObject(object);
    17651788
    17661789    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
     
    17731796    return true;
    17741797}
    1775 static void pzPendingImfileRowFree(pzPendingImfileRow *object);
    1776 
    1777 pzPendingImfileRow *pzPendingImfileRowAlloc(const char *exp_name, const char *camera, const char *telescope, const char *class, const char *class_id)
    1778 {
    1779     pzPendingImfileRow *_object;
    1780 
    1781     _object = psAlloc(sizeof(pzPendingImfileRow));
    1782     psMemSetDeallocator(_object, (psFreeFunc)pzPendingImfileRowFree);
     1798static void pzDownloadImfileRowFree(pzDownloadImfileRow *object);
     1799
     1800pzDownloadImfileRow *pzDownloadImfileRowAlloc(const char *exp_name, const char *camera, const char *telescope, const char *class, const char *class_id, const char *uri, psS16 fault)
     1801{
     1802    pzDownloadImfileRow *_object;
     1803
     1804    _object = psAlloc(sizeof(pzDownloadImfileRow));
     1805    psMemSetDeallocator(_object, (psFreeFunc)pzDownloadImfileRowFree);
    17831806
    17841807    _object->exp_name = psStringCopy(exp_name);
     
    17871810    _object->class = psStringCopy(class);
    17881811    _object->class_id = psStringCopy(class_id);
     1812    _object->uri = psStringCopy(uri);
     1813    _object->fault = fault;
    17891814
    17901815    return _object;
    17911816}
    17921817
    1793 static void pzPendingImfileRowFree(pzPendingImfileRow *object)
     1818static void pzDownloadImfileRowFree(pzDownloadImfileRow *object)
    17941819{
    17951820    psFree(object->exp_name);
     
    17981823    psFree(object->class);
    17991824    psFree(object->class_id);
    1800 }
    1801 
    1802 bool pzPendingImfileCreateTable(psDB *dbh)
     1825    psFree(object->uri);
     1826}
     1827
     1828bool pzDownloadImfileCreateTable(psDB *dbh)
    18031829{
    18041830    psMetadata *md = psMetadataAlloc();
    1805     if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, "Primary Key", "64")) {
     1831    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, "Primary Key fkey(exp_name, camera, telescope) ref pzDownloadExp(exp_name, camera, telescope)", "64")) {
    18061832        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_name");
    18071833        psFree(md);
    18081834        return false;
    18091835    }
    1810     if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, "Primary Key", "64")) {
     1836    if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, "Primary Key fkey(exp_name, camera, telescope, class, class_id) ref summitImfile(exp_name, camera, telescope, class, class_id)", "64")) {
    18111837        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    18121838        psFree(md);
     
    18281854        return false;
    18291855    }
    1830 
    1831     bool status = psDBCreateTable(dbh, PZPENDINGIMFILE_TABLE_NAME, md);
     1856    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, "255")) {
     1857        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     1858        psFree(md);
     1859        return false;
     1860    }
     1861    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
     1862        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     1863        psFree(md);
     1864        return false;
     1865    }
     1866
     1867    bool status = psDBCreateTable(dbh, PZDOWNLOADIMFILE_TABLE_NAME, md);
    18321868
    18331869    psFree(md);
     
    18361872}
    18371873
    1838 bool pzPendingImfileDropTable(psDB *dbh)
    1839 {
    1840     return psDBDropTable(dbh, PZPENDINGIMFILE_TABLE_NAME);
    1841 }
    1842 
    1843 bool pzPendingImfileInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, const char *class, const char *class_id)
     1874bool pzDownloadImfileDropTable(psDB *dbh)
     1875{
     1876    return psDBDropTable(dbh, PZDOWNLOADIMFILE_TABLE_NAME);
     1877}
     1878
     1879bool pzDownloadImfileInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, const char *class, const char *class_id, const char *uri, psS16 fault)
    18441880{
    18451881    psMetadata *md = psMetadataAlloc();
     
    18691905        return false;
    18701906    }
    1871 
    1872     bool status = psDBInsertOneRow(dbh, PZPENDINGIMFILE_TABLE_NAME, md);
     1907    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
     1908        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     1909        psFree(md);
     1910        return false;
     1911    }
     1912    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) {
     1913        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     1914        psFree(md);
     1915        return false;
     1916    }
     1917
     1918    bool status = psDBInsertOneRow(dbh, PZDOWNLOADIMFILE_TABLE_NAME, md);
    18731919    psFree(md);
    18741920
     
    18761922}
    18771923
    1878 long long pzPendingImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     1924long long pzDownloadImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
    18791925{
    18801926    long long       deleted = 0;
    18811927
    1882     long long count = psDBDeleteRows(dbh, PZPENDINGIMFILE_TABLE_NAME, where, limit);
     1928    long long count = psDBDeleteRows(dbh, PZDOWNLOADIMFILE_TABLE_NAME, where, limit);
    18831929    if (count < 0) {
    1884         psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzPendingImfile");
     1930        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDownloadImfile");
    18851931        return count;
    18861932
     
    18901936    return deleted;
    18911937}
    1892 bool pzPendingImfileInsertObject(psDB *dbh, pzPendingImfileRow *object)
    1893 {
    1894     return pzPendingImfileInsert(dbh, object->exp_name, object->camera, object->telescope, object->class, object->class_id);
    1895 }
    1896 
    1897 bool pzPendingImfileInsertObjects(psDB *dbh, psArray *objects)
     1938bool pzDownloadImfileInsertObject(psDB *dbh, pzDownloadImfileRow *object)
     1939{
     1940    return pzDownloadImfileInsert(dbh, object->exp_name, object->camera, object->telescope, object->class, object->class_id, object->uri, object->fault);
     1941}
     1942
     1943bool pzDownloadImfileInsertObjects(psDB *dbh, psArray *objects)
    18981944{
    18991945    for (long i = 0; i < psArrayLength(objects); i++) {
    1900         if (!pzPendingImfileInsertObject(dbh, objects->data[i])) {
     1946        if (!pzDownloadImfileInsertObject(dbh, objects->data[i])) {
    19011947            return false;
    19021948        }
     
    19061952}
    19071953
    1908 bool pzPendingImfileInsertFits(psDB *dbh, const psFits *fits)
     1954bool pzDownloadImfileInsertFits(psDB *dbh, const psFits *fits)
    19091955{
    19101956    psArray         *rowSet;
    19111957
    1912     // move to (the first?) extension named  PZPENDINGIMFILE_TABLE_NAME
    1913     if (!psFitsMoveExtName(fits, PZPENDINGIMFILE_TABLE_NAME)) {
    1914         psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", PZPENDINGIMFILE_TABLE_NAME);
     1958    // move to (the first?) extension named  PZDOWNLOADIMFILE_TABLE_NAME
     1959    if (!psFitsMoveExtName(fits, PZDOWNLOADIMFILE_TABLE_NAME)) {
     1960        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", PZDOWNLOADIMFILE_TABLE_NAME);
    19151961        return false;
    19161962    }
     
    19301976    }
    19311977
    1932     if (!psDBInsertRows(dbh, PZPENDINGIMFILE_TABLE_NAME, rowSet)) {
     1978    if (!psDBInsertRows(dbh, PZDOWNLOADIMFILE_TABLE_NAME, rowSet)) {
    19331979        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
    19341980        psFree(rowSet);
     
    19411987}
    19421988
    1943 bool pzPendingImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     1989bool pzDownloadImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
    19441990{
    19451991    psArray         *rowSet;
    19461992
    1947     rowSet = psDBSelectRows(dbh, PZPENDINGIMFILE_TABLE_NAME, where, limit);
     1993    rowSet = psDBSelectRows(dbh, PZDOWNLOADIMFILE_TABLE_NAME, where, limit);
    19481994    if (!rowSet) {
    19491995        return false;
     
    19511997
    19521998    // output to fits
    1953     if (!psFitsWriteTable(fits, NULL, rowSet, PZPENDINGIMFILE_TABLE_NAME)) {
     1999    if (!psFitsWriteTable(fits, NULL, rowSet, PZDOWNLOADIMFILE_TABLE_NAME)) {
    19542000        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
    19552001        psFree(rowSet);
     
    19622008}
    19632009
    1964 psMetadata *pzPendingImfileMetadataFromObject(const pzPendingImfileRow *object)
     2010psMetadata *pzDownloadImfileMetadataFromObject(const pzDownloadImfileRow *object)
    19652011{
    19662012    psMetadata *md = psMetadataAlloc();
     
    19902036        return false;
    19912037    }
     2038    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, object->uri)) {
     2039        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     2040        psFree(md);
     2041        return false;
     2042    }
     2043    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
     2044        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     2045        psFree(md);
     2046        return false;
     2047    }
    19922048
    19932049
     
    19952051}
    19962052
    1997 pzPendingImfileRow *pzPendingImfileObjectFromMetadata(psMetadata *md)
     2053pzDownloadImfileRow *pzDownloadImfileObjectFromMetadata(psMetadata *md)
    19982054{
    19992055
     
    20242080        return false;
    20252081    }
    2026 
    2027     return pzPendingImfileRowAlloc(exp_name, camera, telescope, class, class_id);
    2028 }
    2029 psArray *pzPendingImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     2082    char* uri = psMetadataLookupPtr(&status, md, "uri");
     2083    if (!status) {
     2084        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
     2085        return false;
     2086    }
     2087    psS16 fault = psMetadataLookupS16(&status, md, "fault");
     2088    if (!status) {
     2089        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fault");
     2090        return false;
     2091    }
     2092
     2093    return pzDownloadImfileRowAlloc(exp_name, camera, telescope, class, class_id, uri, fault);
     2094}
     2095psArray *pzDownloadImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
    20302096{
    20312097    psArray         *rowSet;
     
    20332099    psU64           i;
    20342100
    2035     rowSet = psDBSelectRows(dbh, PZPENDINGIMFILE_TABLE_NAME, where, limit);
     2101    rowSet = psDBSelectRows(dbh, PZDOWNLOADIMFILE_TABLE_NAME, where, limit);
    20362102    if (!rowSet) {
    20372103        return NULL;
     
    20432109
    20442110    for (i = 0; i < rowSet->n; i++) {
    2045         pzPendingImfileRow *object = pzPendingImfileObjectFromMetadata(rowSet->data[i]);
     2111        pzDownloadImfileRow *object = pzDownloadImfileObjectFromMetadata(rowSet->data[i]);
    20462112        if (!object) {
    20472113            psFree(object);
     
    20582124    return returnSet;
    20592125}
    2060 bool pzPendingImfileDeleteObject(psDB *dbh, const pzPendingImfileRow *object)
    2061 {
    2062     psMetadata *where = pzPendingImfileMetadataFromObject(object);
    2063     long long count = psDBDeleteRows(dbh, PZPENDINGIMFILE_TABLE_NAME, where, 0);
     2126bool pzDownloadImfileDeleteObject(psDB *dbh, const pzDownloadImfileRow *object)
     2127{
     2128    psMetadata *where = pzDownloadImfileMetadataFromObject(object);
     2129    long long count = psDBDeleteRows(dbh, PZDOWNLOADIMFILE_TABLE_NAME, where, 0);
    20642130    psFree(where);
    20652131    if (count < 0) {
    2066         psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzPendingImfile");
     2132        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDownloadImfile");
    20672133        return false;
    20682134    }
     
    20702136        // XXX should this be a psAbort() instead?  It is possible that
    20712137        // having an object match multiple rows was by design.
    2072         psError(PS_ERR_UNKNOWN, true, "pzPendingImfileRow object matched more then one row.  Check your database schema");
    2073         return false;
    2074     }
    2075 
    2076     return true;
    2077 }
    2078 long long pzPendingImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     2138        psError(PS_ERR_UNKNOWN, true, "pzDownloadImfileRow object matched more then one row.  Check your database schema");
     2139        return false;
     2140    }
     2141
     2142    return true;
     2143}
     2144long long pzDownloadImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
    20792145{
    20802146    long long       deleted = 0;
    20812147
    20822148    for (long long i = 0; i < objects->n; i++) {
    2083         pzPendingImfileRow *object = objects->data[i];
    2084         psMetadata *where = pzPendingImfileMetadataFromObject(object);
    2085         long long count = psDBDeleteRows(dbh, PZPENDINGIMFILE_TABLE_NAME, where, limit);
     2149        pzDownloadImfileRow *object = objects->data[i];
     2150        psMetadata *where = pzDownloadImfileMetadataFromObject(object);
     2151        long long count = psDBDeleteRows(dbh, PZDOWNLOADIMFILE_TABLE_NAME, where, limit);
    20862152        psFree(where);
    20872153        if (count < 0) {
    2088             psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzPendingImfile");
     2154            psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDownloadImfile");
    20892155            return count;
    20902156        }
     
    20952161    return deleted;
    20962162}
    2097 bool pzPendingImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
     2163bool pzDownloadImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
    20982164{
    20992165    PS_ASSERT_PTR_NON_NULL(objects, false);
     
    21012167    psMetadata *output = psMetadataAlloc();
    21022168    for (long i = 0; i < psArrayLength(objects); i++) {
    2103         psMetadata *md = pzPendingImfileMetadataFromObject(objects->data[i]);
     2169        psMetadata *md = pzDownloadImfileMetadataFromObject(objects->data[i]);
    21042170        if (!psMetadataAddMetadata(
    21052171            output,
    21062172            PS_LIST_TAIL,
    2107             PZPENDINGIMFILE_TABLE_NAME,
     2173            PZDOWNLOADIMFILE_TABLE_NAME,
    21082174            PS_META_DUPLICATE_OK,
    21092175            NULL,
     
    21262192    return true;
    21272193}
    2128 bool pzPendingImfilePrintObject(FILE *stream, pzPendingImfileRow *object, bool mdcf)
     2194bool pzDownloadImfilePrintObject(FILE *stream, pzDownloadImfileRow *object, bool mdcf)
    21292195{
    21302196    PS_ASSERT_PTR_NON_NULL(object, false);
    21312197
    2132     psMetadata *md = pzPendingImfileMetadataFromObject(object);
     2198    psMetadata *md = pzDownloadImfileMetadataFromObject(object);
    21332199
    21342200    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
     
    21412207    return true;
    21422208}
    2143 static void pzDoneExpRowFree(pzDoneExpRow *object);
    2144 
    2145 pzDoneExpRow *pzDoneExpRowAlloc(const char *exp_name, const char *camera, const char *telescope)
    2146 {
    2147     pzDoneExpRow    *_object;
    2148 
    2149     _object = psAlloc(sizeof(pzDoneExpRow));
    2150     psMemSetDeallocator(_object, (psFreeFunc)pzDoneExpRowFree);
    2151 
    2152     _object->exp_name = psStringCopy(exp_name);
    2153     _object->camera = psStringCopy(camera);
    2154     _object->telescope = psStringCopy(telescope);
    2155 
    2156     return _object;
    2157 }
    2158 
    2159 static void pzDoneExpRowFree(pzDoneExpRow *object)
    2160 {
    2161     psFree(object->exp_name);
    2162     psFree(object->camera);
    2163     psFree(object->telescope);
    2164 }
    2165 
    2166 bool pzDoneExpCreateTable(psDB *dbh)
    2167 {
    2168     psMetadata *md = psMetadataAlloc();
    2169     if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, "Primary Key", "64")) {
    2170         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_name");
    2171         psFree(md);
    2172         return false;
    2173     }
    2174     if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, "Primary Key", "64")) {
    2175         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    2176         psFree(md);
    2177         return false;
    2178     }
    2179     if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, "Primary Key", "64")) {
    2180         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    2181         psFree(md);
    2182         return false;
    2183     }
    2184 
    2185     bool status = psDBCreateTable(dbh, PZDONEEXP_TABLE_NAME, md);
    2186 
    2187     psFree(md);
    2188 
    2189     return status;
    2190 }
    2191 
    2192 bool pzDoneExpDropTable(psDB *dbh)
    2193 {
    2194     return psDBDropTable(dbh, PZDONEEXP_TABLE_NAME);
    2195 }
    2196 
    2197 bool pzDoneExpInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope)
    2198 {
    2199     psMetadata *md = psMetadataAlloc();
    2200     if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, NULL, exp_name)) {
    2201         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_name");
    2202         psFree(md);
    2203         return false;
    2204     }
    2205     if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, NULL, camera)) {
    2206         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    2207         psFree(md);
    2208         return false;
    2209     }
    2210     if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, NULL, telescope)) {
    2211         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    2212         psFree(md);
    2213         return false;
    2214     }
    2215 
    2216     bool status = psDBInsertOneRow(dbh, PZDONEEXP_TABLE_NAME, md);
    2217     psFree(md);
    2218 
    2219     return status;
    2220 }
    2221 
    2222 long long pzDoneExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
    2223 {
    2224     long long       deleted = 0;
    2225 
    2226     long long count = psDBDeleteRows(dbh, PZDONEEXP_TABLE_NAME, where, limit);
    2227     if (count < 0) {
    2228         psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDoneExp");
    2229         return count;
    2230 
    2231         deleted += count;
    2232     }
    2233 
    2234     return deleted;
    2235 }
    2236 bool pzDoneExpInsertObject(psDB *dbh, pzDoneExpRow *object)
    2237 {
    2238     return pzDoneExpInsert(dbh, object->exp_name, object->camera, object->telescope);
    2239 }
    2240 
    2241 bool pzDoneExpInsertObjects(psDB *dbh, psArray *objects)
    2242 {
    2243     for (long i = 0; i < psArrayLength(objects); i++) {
    2244         if (!pzDoneExpInsertObject(dbh, objects->data[i])) {
    2245             return false;
    2246         }
    2247     }
    2248 
    2249     return true;
    2250 }
    2251 
    2252 bool pzDoneExpInsertFits(psDB *dbh, const psFits *fits)
    2253 {
    2254     psArray         *rowSet;
    2255 
    2256     // move to (the first?) extension named  PZDONEEXP_TABLE_NAME
    2257     if (!psFitsMoveExtName(fits, PZDONEEXP_TABLE_NAME)) {
    2258         psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", PZDONEEXP_TABLE_NAME);
    2259         return false;
    2260     }
    2261 
    2262     // check HDU type
    2263     if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE)  {
    2264         psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");
    2265         return false;
    2266     }
    2267 
    2268     // read fits table
    2269     rowSet = psFitsReadTable(fits);
    2270     if (!rowSet) {
    2271         psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");
    2272         psFree(rowSet);
    2273         return false;
    2274     }
    2275 
    2276     if (!psDBInsertRows(dbh, PZDONEEXP_TABLE_NAME, rowSet)) {
    2277         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
    2278         psFree(rowSet);
    2279         return false;
    2280     }
    2281 
    2282     psFree(rowSet);
    2283 
    2284     return true;
    2285 }
    2286 
    2287 bool pzDoneExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
    2288 {
    2289     psArray         *rowSet;
    2290 
    2291     rowSet = psDBSelectRows(dbh, PZDONEEXP_TABLE_NAME, where, limit);
    2292     if (!rowSet) {
    2293         return false;
    2294     }
    2295 
    2296     // output to fits
    2297     if (!psFitsWriteTable(fits, NULL, rowSet, PZDONEEXP_TABLE_NAME)) {
    2298         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
    2299         psFree(rowSet);
    2300         return false;
    2301     }
    2302 
    2303     psFree(rowSet);
    2304 
    2305     return true;
    2306 }
    2307 
    2308 psMetadata *pzDoneExpMetadataFromObject(const pzDoneExpRow *object)
    2309 {
    2310     psMetadata *md = psMetadataAlloc();
    2311     if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, NULL, object->exp_name)) {
    2312         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_name");
    2313         psFree(md);
    2314         return false;
    2315     }
    2316     if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, NULL, object->camera)) {
    2317         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    2318         psFree(md);
    2319         return false;
    2320     }
    2321     if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, NULL, object->telescope)) {
    2322         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    2323         psFree(md);
    2324         return false;
    2325     }
    2326 
    2327 
    2328     return md;
    2329 }
    2330 
    2331 pzDoneExpRow *pzDoneExpObjectFromMetadata(psMetadata *md)
    2332 {
    2333 
    2334 bool status = false;
    2335     char* exp_name = psMetadataLookupPtr(&status, md, "exp_name");
    2336     if (!status) {
    2337         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_name");
    2338         return false;
    2339     }
    2340     char* camera = psMetadataLookupPtr(&status, md, "camera");
    2341     if (!status) {
    2342         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    2343         return false;
    2344     }
    2345     char* telescope = psMetadataLookupPtr(&status, md, "telescope");
    2346     if (!status) {
    2347         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
    2348         return false;
    2349     }
    2350 
    2351     return pzDoneExpRowAlloc(exp_name, camera, telescope);
    2352 }
    2353 psArray *pzDoneExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
    2354 {
    2355     psArray         *rowSet;
    2356     psArray         *returnSet;
    2357     psU64           i;
    2358 
    2359     rowSet = psDBSelectRows(dbh, PZDONEEXP_TABLE_NAME, where, limit);
    2360     if (!rowSet) {
    2361         return NULL;
    2362     }
    2363 
    2364     // convert psMetadata rows to row objects
    2365 
    2366     returnSet = psArrayAllocEmpty(rowSet->n);
    2367 
    2368     for (i = 0; i < rowSet->n; i++) {
    2369         pzDoneExpRow *object = pzDoneExpObjectFromMetadata(rowSet->data[i]);
    2370         if (!object) {
    2371             psFree(object);
    2372             psFree(returnSet);
    2373             psError(PS_ERR_UNKNOWN, false, "database error");
    2374             return NULL;
    2375         }
    2376         psArrayAdd(returnSet, 0, object);
    2377         psFree(object);
    2378     }
    2379 
    2380     psFree(rowSet);
    2381 
    2382     return returnSet;
    2383 }
    2384 bool pzDoneExpDeleteObject(psDB *dbh, const pzDoneExpRow *object)
    2385 {
    2386     psMetadata *where = pzDoneExpMetadataFromObject(object);
    2387     long long count = psDBDeleteRows(dbh, PZDONEEXP_TABLE_NAME, where, 0);
    2388     psFree(where);
    2389     if (count < 0) {
    2390         psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDoneExp");
    2391         return false;
    2392     }
    2393     if (count > 1) {
    2394         // XXX should this be a psAbort() instead?  It is possible that
    2395         // having an object match multiple rows was by design.
    2396         psError(PS_ERR_UNKNOWN, true, "pzDoneExpRow object matched more then one row.  Check your database schema");
    2397         return false;
    2398     }
    2399 
    2400     return true;
    2401 }
    2402 long long pzDoneExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
    2403 {
    2404     long long       deleted = 0;
    2405 
    2406     for (long long i = 0; i < objects->n; i++) {
    2407         pzDoneExpRow *object = objects->data[i];
    2408         psMetadata *where = pzDoneExpMetadataFromObject(object);
    2409         long long count = psDBDeleteRows(dbh, PZDONEEXP_TABLE_NAME, where, limit);
    2410         psFree(where);
    2411         if (count < 0) {
    2412             psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDoneExp");
    2413             return count;
    2414         }
    2415 
    2416         deleted += count;
    2417     }
    2418 
    2419     return deleted;
    2420 }
    2421 bool pzDoneExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
    2422 {
    2423     PS_ASSERT_PTR_NON_NULL(objects, false);
    2424 
    2425     psMetadata *output = psMetadataAlloc();
    2426     for (long i = 0; i < psArrayLength(objects); i++) {
    2427         psMetadata *md = pzDoneExpMetadataFromObject(objects->data[i]);
    2428         if (!psMetadataAddMetadata(
    2429             output,
    2430             PS_LIST_TAIL,
    2431             PZDONEEXP_TABLE_NAME,
    2432             PS_META_DUPLICATE_OK,
    2433             NULL,
    2434             md
    2435         )) {
    2436             psError(PS_ERR_UNKNOWN, false, "failed to add metadata");
    2437             psFree(md);
    2438             psFree(output);
    2439             return false;
    2440         }
    2441         psFree(md);
    2442     }
    2443 
    2444     if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {
    2445         psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
    2446         psFree(output);
    2447     }
    2448     psFree(output);
    2449 
    2450     return true;
    2451 }
    2452 bool pzDoneExpPrintObject(FILE *stream, pzDoneExpRow *object, bool mdcf)
    2453 {
    2454     PS_ASSERT_PTR_NON_NULL(object, false);
    2455 
    2456     psMetadata *md = pzDoneExpMetadataFromObject(object);
    2457 
    2458     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
    2459         psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
    2460         psFree(md);
    2461     }
    2462 
    2463     psFree(md);
    2464 
    2465     return true;
    2466 }
    2467 static void pzDoneImfileRowFree(pzDoneImfileRow *object);
    2468 
    2469 pzDoneImfileRow *pzDoneImfileRowAlloc(const char *exp_name, const char *camera, const char *telescope, const char *class, const char *class_id, const char *uri)
    2470 {
    2471     pzDoneImfileRow *_object;
    2472 
    2473     _object = psAlloc(sizeof(pzDoneImfileRow));
    2474     psMemSetDeallocator(_object, (psFreeFunc)pzDoneImfileRowFree);
    2475 
    2476     _object->exp_name = psStringCopy(exp_name);
    2477     _object->camera = psStringCopy(camera);
    2478     _object->telescope = psStringCopy(telescope);
    2479     _object->class = psStringCopy(class);
    2480     _object->class_id = psStringCopy(class_id);
    2481     _object->uri = psStringCopy(uri);
    2482 
    2483     return _object;
    2484 }
    2485 
    2486 static void pzDoneImfileRowFree(pzDoneImfileRow *object)
    2487 {
    2488     psFree(object->exp_name);
    2489     psFree(object->camera);
    2490     psFree(object->telescope);
    2491     psFree(object->class);
    2492     psFree(object->class_id);
    2493     psFree(object->uri);
    2494 }
    2495 
    2496 bool pzDoneImfileCreateTable(psDB *dbh)
    2497 {
    2498     psMetadata *md = psMetadataAlloc();
    2499     if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, "Primary Key", "64")) {
    2500         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_name");
    2501         psFree(md);
    2502         return false;
    2503     }
    2504     if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, "Primary Key", "64")) {
    2505         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    2506         psFree(md);
    2507         return false;
    2508     }
    2509     if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, "Primary Key", "64")) {
    2510         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    2511         psFree(md);
    2512         return false;
    2513     }
    2514     if (!psMetadataAdd(md, PS_LIST_TAIL, "class", PS_DATA_STRING, "Primary Key", "64")) {
    2515         psError(PS_ERR_UNKNOWN, false, "failed to add item class");
    2516         psFree(md);
    2517         return false;
    2518     }
    2519     if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, "Primary Key", "64")) {
    2520         psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
    2521         psFree(md);
    2522         return false;
    2523     }
    2524     if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, "255")) {
    2525         psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
    2526         psFree(md);
    2527         return false;
    2528     }
    2529 
    2530     bool status = psDBCreateTable(dbh, PZDONEIMFILE_TABLE_NAME, md);
    2531 
    2532     psFree(md);
    2533 
    2534     return status;
    2535 }
    2536 
    2537 bool pzDoneImfileDropTable(psDB *dbh)
    2538 {
    2539     return psDBDropTable(dbh, PZDONEIMFILE_TABLE_NAME);
    2540 }
    2541 
    2542 bool pzDoneImfileInsert(psDB * dbh, const char *exp_name, const char *camera, const char *telescope, const char *class, const char *class_id, const char *uri)
    2543 {
    2544     psMetadata *md = psMetadataAlloc();
    2545     if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, NULL, exp_name)) {
    2546         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_name");
    2547         psFree(md);
    2548         return false;
    2549     }
    2550     if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, NULL, camera)) {
    2551         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    2552         psFree(md);
    2553         return false;
    2554     }
    2555     if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, NULL, telescope)) {
    2556         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    2557         psFree(md);
    2558         return false;
    2559     }
    2560     if (!psMetadataAdd(md, PS_LIST_TAIL, "class", PS_DATA_STRING, NULL, class)) {
    2561         psError(PS_ERR_UNKNOWN, false, "failed to add item class");
    2562         psFree(md);
    2563         return false;
    2564     }
    2565     if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, NULL, class_id)) {
    2566         psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
    2567         psFree(md);
    2568         return false;
    2569     }
    2570     if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
    2571         psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
    2572         psFree(md);
    2573         return false;
    2574     }
    2575 
    2576     bool status = psDBInsertOneRow(dbh, PZDONEIMFILE_TABLE_NAME, md);
    2577     psFree(md);
    2578 
    2579     return status;
    2580 }
    2581 
    2582 long long pzDoneImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
    2583 {
    2584     long long       deleted = 0;
    2585 
    2586     long long count = psDBDeleteRows(dbh, PZDONEIMFILE_TABLE_NAME, where, limit);
    2587     if (count < 0) {
    2588         psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDoneImfile");
    2589         return count;
    2590 
    2591         deleted += count;
    2592     }
    2593 
    2594     return deleted;
    2595 }
    2596 bool pzDoneImfileInsertObject(psDB *dbh, pzDoneImfileRow *object)
    2597 {
    2598     return pzDoneImfileInsert(dbh, object->exp_name, object->camera, object->telescope, object->class, object->class_id, object->uri);
    2599 }
    2600 
    2601 bool pzDoneImfileInsertObjects(psDB *dbh, psArray *objects)
    2602 {
    2603     for (long i = 0; i < psArrayLength(objects); i++) {
    2604         if (!pzDoneImfileInsertObject(dbh, objects->data[i])) {
    2605             return false;
    2606         }
    2607     }
    2608 
    2609     return true;
    2610 }
    2611 
    2612 bool pzDoneImfileInsertFits(psDB *dbh, const psFits *fits)
    2613 {
    2614     psArray         *rowSet;
    2615 
    2616     // move to (the first?) extension named  PZDONEIMFILE_TABLE_NAME
    2617     if (!psFitsMoveExtName(fits, PZDONEIMFILE_TABLE_NAME)) {
    2618         psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", PZDONEIMFILE_TABLE_NAME);
    2619         return false;
    2620     }
    2621 
    2622     // check HDU type
    2623     if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE)  {
    2624         psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");
    2625         return false;
    2626     }
    2627 
    2628     // read fits table
    2629     rowSet = psFitsReadTable(fits);
    2630     if (!rowSet) {
    2631         psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");
    2632         psFree(rowSet);
    2633         return false;
    2634     }
    2635 
    2636     if (!psDBInsertRows(dbh, PZDONEIMFILE_TABLE_NAME, rowSet)) {
    2637         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
    2638         psFree(rowSet);
    2639         return false;
    2640     }
    2641 
    2642     psFree(rowSet);
    2643 
    2644     return true;
    2645 }
    2646 
    2647 bool pzDoneImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
    2648 {
    2649     psArray         *rowSet;
    2650 
    2651     rowSet = psDBSelectRows(dbh, PZDONEIMFILE_TABLE_NAME, where, limit);
    2652     if (!rowSet) {
    2653         return false;
    2654     }
    2655 
    2656     // output to fits
    2657     if (!psFitsWriteTable(fits, NULL, rowSet, PZDONEIMFILE_TABLE_NAME)) {
    2658         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
    2659         psFree(rowSet);
    2660         return false;
    2661     }
    2662 
    2663     psFree(rowSet);
    2664 
    2665     return true;
    2666 }
    2667 
    2668 psMetadata *pzDoneImfileMetadataFromObject(const pzDoneImfileRow *object)
    2669 {
    2670     psMetadata *md = psMetadataAlloc();
    2671     if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_name", PS_DATA_STRING, NULL, object->exp_name)) {
    2672         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_name");
    2673         psFree(md);
    2674         return false;
    2675     }
    2676     if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, NULL, object->camera)) {
    2677         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    2678         psFree(md);
    2679         return false;
    2680     }
    2681     if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, NULL, object->telescope)) {
    2682         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    2683         psFree(md);
    2684         return false;
    2685     }
    2686     if (!psMetadataAdd(md, PS_LIST_TAIL, "class", PS_DATA_STRING, NULL, object->class)) {
    2687         psError(PS_ERR_UNKNOWN, false, "failed to add item class");
    2688         psFree(md);
    2689         return false;
    2690     }
    2691     if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, NULL, object->class_id)) {
    2692         psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
    2693         psFree(md);
    2694         return false;
    2695     }
    2696     if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, object->uri)) {
    2697         psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
    2698         psFree(md);
    2699         return false;
    2700     }
    2701 
    2702 
    2703     return md;
    2704 }
    2705 
    2706 pzDoneImfileRow *pzDoneImfileObjectFromMetadata(psMetadata *md)
    2707 {
    2708 
    2709 bool status = false;
    2710     char* exp_name = psMetadataLookupPtr(&status, md, "exp_name");
    2711     if (!status) {
    2712         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_name");
    2713         return false;
    2714     }
    2715     char* camera = psMetadataLookupPtr(&status, md, "camera");
    2716     if (!status) {
    2717         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    2718         return false;
    2719     }
    2720     char* telescope = psMetadataLookupPtr(&status, md, "telescope");
    2721     if (!status) {
    2722         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
    2723         return false;
    2724     }
    2725     char* class = psMetadataLookupPtr(&status, md, "class");
    2726     if (!status) {
    2727         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item class");
    2728         return false;
    2729     }
    2730     char* class_id = psMetadataLookupPtr(&status, md, "class_id");
    2731     if (!status) {
    2732         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item class_id");
    2733         return false;
    2734     }
    2735     char* uri = psMetadataLookupPtr(&status, md, "uri");
    2736     if (!status) {
    2737         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
    2738         return false;
    2739     }
    2740 
    2741     return pzDoneImfileRowAlloc(exp_name, camera, telescope, class, class_id, uri);
    2742 }
    2743 psArray *pzDoneImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
    2744 {
    2745     psArray         *rowSet;
    2746     psArray         *returnSet;
    2747     psU64           i;
    2748 
    2749     rowSet = psDBSelectRows(dbh, PZDONEIMFILE_TABLE_NAME, where, limit);
    2750     if (!rowSet) {
    2751         return NULL;
    2752     }
    2753 
    2754     // convert psMetadata rows to row objects
    2755 
    2756     returnSet = psArrayAllocEmpty(rowSet->n);
    2757 
    2758     for (i = 0; i < rowSet->n; i++) {
    2759         pzDoneImfileRow *object = pzDoneImfileObjectFromMetadata(rowSet->data[i]);
    2760         if (!object) {
    2761             psFree(object);
    2762             psFree(returnSet);
    2763             psError(PS_ERR_UNKNOWN, false, "database error");
    2764             return NULL;
    2765         }
    2766         psArrayAdd(returnSet, 0, object);
    2767         psFree(object);
    2768     }
    2769 
    2770     psFree(rowSet);
    2771 
    2772     return returnSet;
    2773 }
    2774 bool pzDoneImfileDeleteObject(psDB *dbh, const pzDoneImfileRow *object)
    2775 {
    2776     psMetadata *where = pzDoneImfileMetadataFromObject(object);
    2777     long long count = psDBDeleteRows(dbh, PZDONEIMFILE_TABLE_NAME, where, 0);
    2778     psFree(where);
    2779     if (count < 0) {
    2780         psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDoneImfile");
    2781         return false;
    2782     }
    2783     if (count > 1) {
    2784         // XXX should this be a psAbort() instead?  It is possible that
    2785         // having an object match multiple rows was by design.
    2786         psError(PS_ERR_UNKNOWN, true, "pzDoneImfileRow object matched more then one row.  Check your database schema");
    2787         return false;
    2788     }
    2789 
    2790     return true;
    2791 }
    2792 long long pzDoneImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
    2793 {
    2794     long long       deleted = 0;
    2795 
    2796     for (long long i = 0; i < objects->n; i++) {
    2797         pzDoneImfileRow *object = objects->data[i];
    2798         psMetadata *where = pzDoneImfileMetadataFromObject(object);
    2799         long long count = psDBDeleteRows(dbh, PZDONEIMFILE_TABLE_NAME, where, limit);
    2800         psFree(where);
    2801         if (count < 0) {
    2802             psError(PS_ERR_UNKNOWN, true, "failed to delete row from pzDoneImfile");
    2803             return count;
    2804         }
    2805 
    2806         deleted += count;
    2807     }
    2808 
    2809     return deleted;
    2810 }
    2811 bool pzDoneImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
    2812 {
    2813     PS_ASSERT_PTR_NON_NULL(objects, false);
    2814 
    2815     psMetadata *output = psMetadataAlloc();
    2816     for (long i = 0; i < psArrayLength(objects); i++) {
    2817         psMetadata *md = pzDoneImfileMetadataFromObject(objects->data[i]);
    2818         if (!psMetadataAddMetadata(
    2819             output,
    2820             PS_LIST_TAIL,
    2821             PZDONEIMFILE_TABLE_NAME,
    2822             PS_META_DUPLICATE_OK,
    2823             NULL,
    2824             md
    2825         )) {
    2826             psError(PS_ERR_UNKNOWN, false, "failed to add metadata");
    2827             psFree(md);
    2828             psFree(output);
    2829             return false;
    2830         }
    2831         psFree(md);
    2832     }
    2833 
    2834     if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {
    2835         psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
    2836         psFree(output);
    2837     }
    2838     psFree(output);
    2839 
    2840     return true;
    2841 }
    2842 bool pzDoneImfilePrintObject(FILE *stream, pzDoneImfileRow *object, bool mdcf)
    2843 {
    2844     PS_ASSERT_PTR_NON_NULL(object, false);
    2845 
    2846     psMetadata *md = pzDoneImfileMetadataFromObject(object);
    2847 
    2848     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
    2849         psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
    2850         psFree(md);
    2851     }
    2852 
    2853     psFree(md);
    2854 
    2855     return true;
    2856 }
    28572209static void newExpRowFree(newExpRow *object);
    28582210
    2859 newExpRow *newExpRowAlloc(psS64 exp_id, const char *tmp_exp_name, const char *tmp_camera, const char *tmp_telescope, const char *state, const char *workdir, const char *workdir_state, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage)
     2211newExpRow *newExpRowAlloc(psS64 exp_id, const char *tmp_exp_name, const char *tmp_camera, const char *tmp_telescope, const char *state, const char *workdir, const char *workdir_state, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *label)
    28602212{
    28612213    newExpRow       *_object;
     
    28752227    _object->tess_id = psStringCopy(tess_id);
    28762228    _object->end_stage = psStringCopy(end_stage);
     2229    _object->label = psStringCopy(label);
    28772230
    28782231    return _object;
     
    28912244    psFree(object->tess_id);
    28922245    psFree(object->end_stage);
     2246    psFree(object->label);
    28932247}
    28942248
     
    29512305        return false;
    29522306    }
     2307    if (!psMetadataAdd(md, PS_LIST_TAIL, "label", PS_DATA_STRING, "Key", "64")) {
     2308        psError(PS_ERR_UNKNOWN, false, "failed to add item label");
     2309        psFree(md);
     2310        return false;
     2311    }
    29532312
    29542313    bool status = psDBCreateTable(dbh, NEWEXP_TABLE_NAME, md);
     
    29642323}
    29652324
    2966 bool newExpInsert(psDB * dbh, psS64 exp_id, const char *tmp_exp_name, const char *tmp_camera, const char *tmp_telescope, const char *state, const char *workdir, const char *workdir_state, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage)
     2325bool newExpInsert(psDB * dbh, psS64 exp_id, const char *tmp_exp_name, const char *tmp_camera, const char *tmp_telescope, const char *state, const char *workdir, const char *workdir_state, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *label)
    29672326{
    29682327    psMetadata *md = psMetadataAlloc();
     
    30192378    if (!psMetadataAdd(md, PS_LIST_TAIL, "end_stage", PS_DATA_STRING, NULL, end_stage)) {
    30202379        psError(PS_ERR_UNKNOWN, false, "failed to add item end_stage");
     2380        psFree(md);
     2381        return false;
     2382    }
     2383    if (!psMetadataAdd(md, PS_LIST_TAIL, "label", PS_DATA_STRING, NULL, label)) {
     2384        psError(PS_ERR_UNKNOWN, false, "failed to add item label");
    30212385        psFree(md);
    30222386        return false;
     
    30452409bool newExpInsertObject(psDB *dbh, newExpRow *object)
    30462410{
    3047     return newExpInsert(dbh, object->exp_id, object->tmp_exp_name, object->tmp_camera, object->tmp_telescope, object->state, object->workdir, object->workdir_state, object->reduction, object->dvodb, object->tess_id, object->end_stage);
     2411    return newExpInsert(dbh, object->exp_id, object->tmp_exp_name, object->tmp_camera, object->tmp_telescope, object->state, object->workdir, object->workdir_state, object->reduction, object->dvodb, object->tess_id, object->end_stage, object->label);
    30482412}
    30492413
     
    31732537        return false;
    31742538    }
     2539    if (!psMetadataAdd(md, PS_LIST_TAIL, "label", PS_DATA_STRING, NULL, object->label)) {
     2540        psError(PS_ERR_UNKNOWN, false, "failed to add item label");
     2541        psFree(md);
     2542        return false;
     2543    }
    31752544
    31762545
     
    32372606        return false;
    32382607    }
    3239 
    3240     return newExpRowAlloc(exp_id, tmp_exp_name, tmp_camera, tmp_telescope, state, workdir, workdir_state, reduction, dvodb, tess_id, end_stage);
     2608    char* label = psMetadataLookupPtr(&status, md, "label");
     2609    if (!status) {
     2610        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item label");
     2611        return false;
     2612    }
     2613
     2614    return newExpRowAlloc(exp_id, tmp_exp_name, tmp_camera, tmp_telescope, state, workdir, workdir_state, reduction, dvodb, tess_id, end_stage, label);
    32412615}
    32422616psArray *newExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    73106684static void chipProcessedImfileRowFree(chipProcessedImfileRow *object);
    73116685
    7312 chipProcessedImfileRow *chipProcessedImfileRowAlloc(psS64 chip_id, psS64 exp_id, const char *class_id, const char *uri, psF32 bg, psF32 bg_stdev, psF32 bg_mean_stdev, psF32 bias, psF32 bias_stdev, psF32 fringe_0, psF32 fringe_1, psF32 fringe_2, psF32 sigma_ra, psF32 sigma_dec, psF32 ap_resid, psF32 ap_resid_stdev, psF32 fwhm, psF32 fwhm_range, psS32 n_stars, psS32 n_extended, psS32 n_cr, psS32 n_astrom, const char *path_base, psS16 fault)
     6686chipProcessedImfileRow *chipProcessedImfileRowAlloc(psS64 chip_id, psS64 exp_id, const char *class_id, const char *uri, psF32 bg, psF32 bg_stdev, psF32 bg_mean_stdev, psF32 bias, psF32 bias_stdev, psF32 fringe_0, psF32 fringe_1, psF32 fringe_2, psF32 sigma_ra, psF32 sigma_dec, psF32 ap_resid, psF32 ap_resid_stdev, psF32 zp_mean, psF32 zp_stdev, psF32 fwhm_major, psF32 fwhm_minor, psF32 dtime_detrend, psF32 dtime_photom, psF32 dtime_astrom, const char *hostname, psS32 n_stars, psS32 n_extended, psS32 n_cr, psS32 n_astrom, const char *path_base, psS16 fault)
    73136687{
    73146688    chipProcessedImfileRow *_object;
     
    73336707    _object->ap_resid = ap_resid;
    73346708    _object->ap_resid_stdev = ap_resid_stdev;
    7335     _object->fwhm = fwhm;
    7336     _object->fwhm_range = fwhm_range;
     6709    _object->zp_mean = zp_mean;
     6710    _object->zp_stdev = zp_stdev;
     6711    _object->fwhm_major = fwhm_major;
     6712    _object->fwhm_minor = fwhm_minor;
     6713    _object->dtime_detrend = dtime_detrend;
     6714    _object->dtime_photom = dtime_photom;
     6715    _object->dtime_astrom = dtime_astrom;
     6716    _object->hostname = psStringCopy(hostname);
    73376717    _object->n_stars = n_stars;
    73386718    _object->n_extended = n_extended;
     
    73496729    psFree(object->class_id);
    73506730    psFree(object->uri);
     6731    psFree(object->hostname);
    73516732    psFree(object->path_base);
    73526733}
     
    74356816        return false;
    74366817    }
    7437     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm", PS_DATA_F32, "# replace this with fwhm_major", 0.0)) {
    7438         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm");
    7439         psFree(md);
    7440         return false;
    7441     }
    7442     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_range", PS_DATA_F32, "# replace this with fwhm_minor", 0.0)) {
    7443         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_range");
     6818    if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_mean", PS_DATA_F32, NULL, 0.0)) {
     6819        psError(PS_ERR_UNKNOWN, false, "failed to add item zp_mean");
     6820        psFree(md);
     6821        return false;
     6822    }
     6823    if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_stdev", PS_DATA_F32, NULL, 0.0)) {
     6824        psError(PS_ERR_UNKNOWN, false, "failed to add item zp_stdev");
     6825        psFree(md);
     6826        return false;
     6827    }
     6828    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_major", PS_DATA_F32, NULL, 0.0)) {
     6829        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_major");
     6830        psFree(md);
     6831        return false;
     6832    }
     6833    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_minor", PS_DATA_F32, NULL, 0.0)) {
     6834        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_minor");
     6835        psFree(md);
     6836        return false;
     6837    }
     6838    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, 0.0)) {
     6839        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
     6840        psFree(md);
     6841        return false;
     6842    }
     6843    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_photom", PS_DATA_F32, NULL, 0.0)) {
     6844        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_photom");
     6845        psFree(md);
     6846        return false;
     6847    }
     6848    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_astrom", PS_DATA_F32, NULL, 0.0)) {
     6849        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_astrom");
     6850        psFree(md);
     6851        return false;
     6852    }
     6853    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
     6854        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
    74446855        psFree(md);
    74456856        return false;
     
    74886899}
    74896900
    7490 bool chipProcessedImfileInsert(psDB * dbh, psS64 chip_id, psS64 exp_id, const char *class_id, const char *uri, psF32 bg, psF32 bg_stdev, psF32 bg_mean_stdev, psF32 bias, psF32 bias_stdev, psF32 fringe_0, psF32 fringe_1, psF32 fringe_2, psF32 sigma_ra, psF32 sigma_dec, psF32 ap_resid, psF32 ap_resid_stdev, psF32 fwhm, psF32 fwhm_range, psS32 n_stars, psS32 n_extended, psS32 n_cr, psS32 n_astrom, const char *path_base, psS16 fault)
     6901bool chipProcessedImfileInsert(psDB * dbh, psS64 chip_id, psS64 exp_id, const char *class_id, const char *uri, psF32 bg, psF32 bg_stdev, psF32 bg_mean_stdev, psF32 bias, psF32 bias_stdev, psF32 fringe_0, psF32 fringe_1, psF32 fringe_2, psF32 sigma_ra, psF32 sigma_dec, psF32 ap_resid, psF32 ap_resid_stdev, psF32 zp_mean, psF32 zp_stdev, psF32 fwhm_major, psF32 fwhm_minor, psF32 dtime_detrend, psF32 dtime_photom, psF32 dtime_astrom, const char *hostname, psS32 n_stars, psS32 n_extended, psS32 n_cr, psS32 n_astrom, const char *path_base, psS16 fault)
    74916902{
    74926903    psMetadata *md = psMetadataAlloc();
     
    75716982        return false;
    75726983    }
    7573     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm", PS_DATA_F32, NULL, fwhm)) {
    7574         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm");
    7575         psFree(md);
    7576         return false;
    7577     }
    7578     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_range", PS_DATA_F32, NULL, fwhm_range)) {
    7579         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_range");
     6984    if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_mean", PS_DATA_F32, NULL, zp_mean)) {
     6985        psError(PS_ERR_UNKNOWN, false, "failed to add item zp_mean");
     6986        psFree(md);
     6987        return false;
     6988    }
     6989    if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_stdev", PS_DATA_F32, NULL, zp_stdev)) {
     6990        psError(PS_ERR_UNKNOWN, false, "failed to add item zp_stdev");
     6991        psFree(md);
     6992        return false;
     6993    }
     6994    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_major", PS_DATA_F32, NULL, fwhm_major)) {
     6995        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_major");
     6996        psFree(md);
     6997        return false;
     6998    }
     6999    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_minor", PS_DATA_F32, NULL, fwhm_minor)) {
     7000        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_minor");
     7001        psFree(md);
     7002        return false;
     7003    }
     7004    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, dtime_detrend)) {
     7005        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
     7006        psFree(md);
     7007        return false;
     7008    }
     7009    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_photom", PS_DATA_F32, NULL, dtime_photom)) {
     7010        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_photom");
     7011        psFree(md);
     7012        return false;
     7013    }
     7014    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_astrom", PS_DATA_F32, NULL, dtime_astrom)) {
     7015        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_astrom");
     7016        psFree(md);
     7017        return false;
     7018    }
     7019    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, hostname)) {
     7020        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
    75807021        psFree(md);
    75817022        return false;
     
    76347075bool chipProcessedImfileInsertObject(psDB *dbh, chipProcessedImfileRow *object)
    76357076{
    7636     return chipProcessedImfileInsert(dbh, object->chip_id, object->exp_id, object->class_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bias, object->bias_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->sigma_ra, object->sigma_dec, object->ap_resid, object->ap_resid_stdev, object->fwhm, object->fwhm_range, object->n_stars, object->n_extended, object->n_cr, object->n_astrom, object->path_base, object->fault);
     7077    return chipProcessedImfileInsert(dbh, object->chip_id, object->exp_id, object->class_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bias, object->bias_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->sigma_ra, object->sigma_dec, object->ap_resid, object->ap_resid_stdev, object->zp_mean, object->zp_stdev, object->fwhm_major, object->fwhm_minor, object->dtime_detrend, object->dtime_photom, object->dtime_astrom, object->hostname, object->n_stars, object->n_extended, object->n_cr, object->n_astrom, object->path_base, object->fault);
    76377078}
    76387079
     
    77877228        return false;
    77887229    }
    7789     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm", PS_DATA_F32, NULL, object->fwhm)) {
    7790         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm");
    7791         psFree(md);
    7792         return false;
    7793     }
    7794     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_range", PS_DATA_F32, NULL, object->fwhm_range)) {
    7795         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_range");
     7230    if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_mean", PS_DATA_F32, NULL, object->zp_mean)) {
     7231        psError(PS_ERR_UNKNOWN, false, "failed to add item zp_mean");
     7232        psFree(md);
     7233        return false;
     7234    }
     7235    if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_stdev", PS_DATA_F32, NULL, object->zp_stdev)) {
     7236        psError(PS_ERR_UNKNOWN, false, "failed to add item zp_stdev");
     7237        psFree(md);
     7238        return false;
     7239    }
     7240    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_major", PS_DATA_F32, NULL, object->fwhm_major)) {
     7241        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_major");
     7242        psFree(md);
     7243        return false;
     7244    }
     7245    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_minor", PS_DATA_F32, NULL, object->fwhm_minor)) {
     7246        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_minor");
     7247        psFree(md);
     7248        return false;
     7249    }
     7250    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, object->dtime_detrend)) {
     7251        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
     7252        psFree(md);
     7253        return false;
     7254    }
     7255    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_photom", PS_DATA_F32, NULL, object->dtime_photom)) {
     7256        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_photom");
     7257        psFree(md);
     7258        return false;
     7259    }
     7260    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_astrom", PS_DATA_F32, NULL, object->dtime_astrom)) {
     7261        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_astrom");
     7262        psFree(md);
     7263        return false;
     7264    }
     7265    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
     7266        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
    77967267        psFree(md);
    77977268        return false;
     
    79167387        return false;
    79177388    }
    7918     psF32 fwhm = psMetadataLookupF32(&status, md, "fwhm");
    7919     if (!status) {
    7920         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fwhm");
    7921         return false;
    7922     }
    7923     psF32 fwhm_range = psMetadataLookupF32(&status, md, "fwhm_range");
    7924     if (!status) {
    7925         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fwhm_range");
     7389    psF32 zp_mean = psMetadataLookupF32(&status, md, "zp_mean");
     7390    if (!status) {
     7391        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item zp_mean");
     7392        return false;
     7393    }
     7394    psF32 zp_stdev = psMetadataLookupF32(&status, md, "zp_stdev");
     7395    if (!status) {
     7396        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item zp_stdev");
     7397        return false;
     7398    }
     7399    psF32 fwhm_major = psMetadataLookupF32(&status, md, "fwhm_major");
     7400    if (!status) {
     7401        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fwhm_major");
     7402        return false;
     7403    }
     7404    psF32 fwhm_minor = psMetadataLookupF32(&status, md, "fwhm_minor");
     7405    if (!status) {
     7406        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fwhm_minor");
     7407        return false;
     7408    }
     7409    psF32 dtime_detrend = psMetadataLookupF32(&status, md, "dtime_detrend");
     7410    if (!status) {
     7411        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_detrend");
     7412        return false;
     7413    }
     7414    psF32 dtime_photom = psMetadataLookupF32(&status, md, "dtime_photom");
     7415    if (!status) {
     7416        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_photom");
     7417        return false;
     7418    }
     7419    psF32 dtime_astrom = psMetadataLookupF32(&status, md, "dtime_astrom");
     7420    if (!status) {
     7421        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_astrom");
     7422        return false;
     7423    }
     7424    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
     7425    if (!status) {
     7426        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item hostname");
    79267427        return false;
    79277428    }
     
    79577458    }
    79587459
    7959     return chipProcessedImfileRowAlloc(chip_id, exp_id, class_id, uri, bg, bg_stdev, bg_mean_stdev, bias, bias_stdev, fringe_0, fringe_1, fringe_2, sigma_ra, sigma_dec, ap_resid, ap_resid_stdev, fwhm, fwhm_range, n_stars, n_extended, n_cr, n_astrom, path_base, fault);
     7460    return chipProcessedImfileRowAlloc(chip_id, exp_id, class_id, uri, bg, bg_stdev, bg_mean_stdev, bias, bias_stdev, fringe_0, fringe_1, fringe_2, sigma_ra, sigma_dec, ap_resid, ap_resid_stdev, zp_mean, zp_stdev, fwhm_major, fwhm_minor, dtime_detrend, dtime_photom, dtime_astrom, hostname, n_stars, n_extended, n_cr, n_astrom, path_base, fault);
    79607461}
    79617462psArray *chipProcessedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    88538354static void camProcessedExpRowFree(camProcessedExpRow *object);
    88548355
    8855 camProcessedExpRow *camProcessedExpRowAlloc(psS64 cam_id, psS64 chip_id, const char *uri, psF32 bg, psF32 bg_stdev, psF32 bg_mean_stdev, psF32 sigma_ra, psF32 sigma_dec, psF32 zp_mean, psF32 zp_stdev, psF32 fwhm, psF32 fwhm_range, psS32 n_stars, psS32 n_extended, psS32 n_cr, psS32 n_astrom, const char *path_base, psS16 fault)
     8356camProcessedExpRow *camProcessedExpRowAlloc(psS64 cam_id, psS64 chip_id, const char *uri, psF32 bg, psF32 bg_stdev, psF32 bg_mean_stdev, psF32 bias, psF32 bias_stdev, psF32 fringe_0, psF32 fringe_1, psF32 fringe_2, psF32 sigma_ra, psF32 sigma_dec, psF32 ap_resid, psF32 ap_resid_stdev, psF32 zp_mean, psF32 zp_stdev, psF32 fwhm_major, psF32 fwhm_minor, psF32 dtime_detrend, psF32 dtime_photom, psF32 dtime_astrom, const char *hostname, psS32 n_stars, psS32 n_extended, psS32 n_cr, psS32 n_astrom, const char *path_base, psS16 fault)
    88568357{
    88578358    camProcessedExpRow *_object;
     
    88668367    _object->bg_stdev = bg_stdev;
    88678368    _object->bg_mean_stdev = bg_mean_stdev;
     8369    _object->bias = bias;
     8370    _object->bias_stdev = bias_stdev;
     8371    _object->fringe_0 = fringe_0;
     8372    _object->fringe_1 = fringe_1;
     8373    _object->fringe_2 = fringe_2;
    88688374    _object->sigma_ra = sigma_ra;
    88698375    _object->sigma_dec = sigma_dec;
     8376    _object->ap_resid = ap_resid;
     8377    _object->ap_resid_stdev = ap_resid_stdev;
    88708378    _object->zp_mean = zp_mean;
    88718379    _object->zp_stdev = zp_stdev;
    8872     _object->fwhm = fwhm;
    8873     _object->fwhm_range = fwhm_range;
     8380    _object->fwhm_major = fwhm_major;
     8381    _object->fwhm_minor = fwhm_minor;
     8382    _object->dtime_detrend = dtime_detrend;
     8383    _object->dtime_photom = dtime_photom;
     8384    _object->dtime_astrom = dtime_astrom;
     8385    _object->hostname = psStringCopy(hostname);
    88748386    _object->n_stars = n_stars;
    88758387    _object->n_extended = n_extended;
     
    88858397{
    88868398    psFree(object->uri);
     8399    psFree(object->hostname);
    88878400    psFree(object->path_base);
    88888401}
     
    89218434        return false;
    89228435    }
     8436    if (!psMetadataAdd(md, PS_LIST_TAIL, "bias", PS_DATA_F32, NULL, 0.0)) {
     8437        psError(PS_ERR_UNKNOWN, false, "failed to add item bias");
     8438        psFree(md);
     8439        return false;
     8440    }
     8441    if (!psMetadataAdd(md, PS_LIST_TAIL, "bias_stdev", PS_DATA_F32, NULL, 0.0)) {
     8442        psError(PS_ERR_UNKNOWN, false, "failed to add item bias_stdev");
     8443        psFree(md);
     8444        return false;
     8445    }
     8446    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F32, NULL, 0.0)) {
     8447        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     8448        psFree(md);
     8449        return false;
     8450    }
     8451    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F32, NULL, 0.0)) {
     8452        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     8453        psFree(md);
     8454        return false;
     8455    }
     8456    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F32, NULL, 0.0)) {
     8457        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     8458        psFree(md);
     8459        return false;
     8460    }
    89238461    if (!psMetadataAdd(md, PS_LIST_TAIL, "sigma_ra", PS_DATA_F32, NULL, 0.0)) {
    89248462        psError(PS_ERR_UNKNOWN, false, "failed to add item sigma_ra");
     
    89318469        return false;
    89328470    }
     8471    if (!psMetadataAdd(md, PS_LIST_TAIL, "ap_resid", PS_DATA_F32, NULL, 0.0)) {
     8472        psError(PS_ERR_UNKNOWN, false, "failed to add item ap_resid");
     8473        psFree(md);
     8474        return false;
     8475    }
     8476    if (!psMetadataAdd(md, PS_LIST_TAIL, "ap_resid_stdev", PS_DATA_F32, NULL, 0.0)) {
     8477        psError(PS_ERR_UNKNOWN, false, "failed to add item ap_resid_stdev");
     8478        psFree(md);
     8479        return false;
     8480    }
    89338481    if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_mean", PS_DATA_F32, NULL, 0.0)) {
    89348482        psError(PS_ERR_UNKNOWN, false, "failed to add item zp_mean");
     
    89418489        return false;
    89428490    }
    8943     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm", PS_DATA_F32, NULL, 0.0)) {
    8944         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm");
    8945         psFree(md);
    8946         return false;
    8947     }
    8948     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_range", PS_DATA_F32, NULL, 0.0)) {
    8949         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_range");
     8491    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_major", PS_DATA_F32, NULL, 0.0)) {
     8492        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_major");
     8493        psFree(md);
     8494        return false;
     8495    }
     8496    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_minor", PS_DATA_F32, NULL, 0.0)) {
     8497        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_minor");
     8498        psFree(md);
     8499        return false;
     8500    }
     8501    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, 0.0)) {
     8502        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
     8503        psFree(md);
     8504        return false;
     8505    }
     8506    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_photom", PS_DATA_F32, NULL, 0.0)) {
     8507        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_photom");
     8508        psFree(md);
     8509        return false;
     8510    }
     8511    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_astrom", PS_DATA_F32, NULL, 0.0)) {
     8512        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_astrom");
     8513        psFree(md);
     8514        return false;
     8515    }
     8516    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
     8517        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
    89508518        psFree(md);
    89518519        return false;
     
    89948562}
    89958563
    8996 bool camProcessedExpInsert(psDB * dbh, psS64 cam_id, psS64 chip_id, const char *uri, psF32 bg, psF32 bg_stdev, psF32 bg_mean_stdev, psF32 sigma_ra, psF32 sigma_dec, psF32 zp_mean, psF32 zp_stdev, psF32 fwhm, psF32 fwhm_range, psS32 n_stars, psS32 n_extended, psS32 n_cr, psS32 n_astrom, const char *path_base, psS16 fault)
     8564bool camProcessedExpInsert(psDB * dbh, psS64 cam_id, psS64 chip_id, const char *uri, psF32 bg, psF32 bg_stdev, psF32 bg_mean_stdev, psF32 bias, psF32 bias_stdev, psF32 fringe_0, psF32 fringe_1, psF32 fringe_2, psF32 sigma_ra, psF32 sigma_dec, psF32 ap_resid, psF32 ap_resid_stdev, psF32 zp_mean, psF32 zp_stdev, psF32 fwhm_major, psF32 fwhm_minor, psF32 dtime_detrend, psF32 dtime_photom, psF32 dtime_astrom, const char *hostname, psS32 n_stars, psS32 n_extended, psS32 n_cr, psS32 n_astrom, const char *path_base, psS16 fault)
    89978565{
    89988566    psMetadata *md = psMetadataAlloc();
     
    90278595        return false;
    90288596    }
     8597    if (!psMetadataAdd(md, PS_LIST_TAIL, "bias", PS_DATA_F32, NULL, bias)) {
     8598        psError(PS_ERR_UNKNOWN, false, "failed to add item bias");
     8599        psFree(md);
     8600        return false;
     8601    }
     8602    if (!psMetadataAdd(md, PS_LIST_TAIL, "bias_stdev", PS_DATA_F32, NULL, bias_stdev)) {
     8603        psError(PS_ERR_UNKNOWN, false, "failed to add item bias_stdev");
     8604        psFree(md);
     8605        return false;
     8606    }
     8607    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F32, NULL, fringe_0)) {
     8608        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     8609        psFree(md);
     8610        return false;
     8611    }
     8612    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F32, NULL, fringe_1)) {
     8613        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     8614        psFree(md);
     8615        return false;
     8616    }
     8617    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F32, NULL, fringe_2)) {
     8618        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     8619        psFree(md);
     8620        return false;
     8621    }
    90298622    if (!psMetadataAdd(md, PS_LIST_TAIL, "sigma_ra", PS_DATA_F32, NULL, sigma_ra)) {
    90308623        psError(PS_ERR_UNKNOWN, false, "failed to add item sigma_ra");
     
    90378630        return false;
    90388631    }
     8632    if (!psMetadataAdd(md, PS_LIST_TAIL, "ap_resid", PS_DATA_F32, NULL, ap_resid)) {
     8633        psError(PS_ERR_UNKNOWN, false, "failed to add item ap_resid");
     8634        psFree(md);
     8635        return false;
     8636    }
     8637    if (!psMetadataAdd(md, PS_LIST_TAIL, "ap_resid_stdev", PS_DATA_F32, NULL, ap_resid_stdev)) {
     8638        psError(PS_ERR_UNKNOWN, false, "failed to add item ap_resid_stdev");
     8639        psFree(md);
     8640        return false;
     8641    }
    90398642    if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_mean", PS_DATA_F32, NULL, zp_mean)) {
    90408643        psError(PS_ERR_UNKNOWN, false, "failed to add item zp_mean");
     
    90478650        return false;
    90488651    }
    9049     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm", PS_DATA_F32, NULL, fwhm)) {
    9050         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm");
    9051         psFree(md);
    9052         return false;
    9053     }
    9054     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_range", PS_DATA_F32, NULL, fwhm_range)) {
    9055         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_range");
     8652    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_major", PS_DATA_F32, NULL, fwhm_major)) {
     8653        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_major");
     8654        psFree(md);
     8655        return false;
     8656    }
     8657    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_minor", PS_DATA_F32, NULL, fwhm_minor)) {
     8658        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_minor");
     8659        psFree(md);
     8660        return false;
     8661    }
     8662    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, dtime_detrend)) {
     8663        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
     8664        psFree(md);
     8665        return false;
     8666    }
     8667    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_photom", PS_DATA_F32, NULL, dtime_photom)) {
     8668        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_photom");
     8669        psFree(md);
     8670        return false;
     8671    }
     8672    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_astrom", PS_DATA_F32, NULL, dtime_astrom)) {
     8673        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_astrom");
     8674        psFree(md);
     8675        return false;
     8676    }
     8677    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, hostname)) {
     8678        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
    90568679        psFree(md);
    90578680        return false;
     
    91108733bool camProcessedExpInsertObject(psDB *dbh, camProcessedExpRow *object)
    91118734{
    9112     return camProcessedExpInsert(dbh, object->cam_id, object->chip_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->sigma_ra, object->sigma_dec, object->zp_mean, object->zp_stdev, object->fwhm, object->fwhm_range, object->n_stars, object->n_extended, object->n_cr, object->n_astrom, object->path_base, object->fault);
     8735    return camProcessedExpInsert(dbh, object->cam_id, object->chip_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bias, object->bias_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->sigma_ra, object->sigma_dec, object->ap_resid, object->ap_resid_stdev, object->zp_mean, object->zp_stdev, object->fwhm_major, object->fwhm_minor, object->dtime_detrend, object->dtime_photom, object->dtime_astrom, object->hostname, object->n_stars, object->n_extended, object->n_cr, object->n_astrom, object->path_base, object->fault);
    91138736}
    91148737
     
    92138836        return false;
    92148837    }
     8838    if (!psMetadataAdd(md, PS_LIST_TAIL, "bias", PS_DATA_F32, NULL, object->bias)) {
     8839        psError(PS_ERR_UNKNOWN, false, "failed to add item bias");
     8840        psFree(md);
     8841        return false;
     8842    }
     8843    if (!psMetadataAdd(md, PS_LIST_TAIL, "bias_stdev", PS_DATA_F32, NULL, object->bias_stdev)) {
     8844        psError(PS_ERR_UNKNOWN, false, "failed to add item bias_stdev");
     8845        psFree(md);
     8846        return false;
     8847    }
     8848    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F32, NULL, object->fringe_0)) {
     8849        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     8850        psFree(md);
     8851        return false;
     8852    }
     8853    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F32, NULL, object->fringe_1)) {
     8854        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     8855        psFree(md);
     8856        return false;
     8857    }
     8858    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F32, NULL, object->fringe_2)) {
     8859        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     8860        psFree(md);
     8861        return false;
     8862    }
    92158863    if (!psMetadataAdd(md, PS_LIST_TAIL, "sigma_ra", PS_DATA_F32, NULL, object->sigma_ra)) {
    92168864        psError(PS_ERR_UNKNOWN, false, "failed to add item sigma_ra");
     
    92238871        return false;
    92248872    }
     8873    if (!psMetadataAdd(md, PS_LIST_TAIL, "ap_resid", PS_DATA_F32, NULL, object->ap_resid)) {
     8874        psError(PS_ERR_UNKNOWN, false, "failed to add item ap_resid");
     8875        psFree(md);
     8876        return false;
     8877    }
     8878    if (!psMetadataAdd(md, PS_LIST_TAIL, "ap_resid_stdev", PS_DATA_F32, NULL, object->ap_resid_stdev)) {
     8879        psError(PS_ERR_UNKNOWN, false, "failed to add item ap_resid_stdev");
     8880        psFree(md);
     8881        return false;
     8882    }
    92258883    if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_mean", PS_DATA_F32, NULL, object->zp_mean)) {
    92268884        psError(PS_ERR_UNKNOWN, false, "failed to add item zp_mean");
     
    92338891        return false;
    92348892    }
    9235     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm", PS_DATA_F32, NULL, object->fwhm)) {
    9236         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm");
    9237         psFree(md);
    9238         return false;
    9239     }
    9240     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_range", PS_DATA_F32, NULL, object->fwhm_range)) {
    9241         psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_range");
     8893    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_major", PS_DATA_F32, NULL, object->fwhm_major)) {
     8894        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_major");
     8895        psFree(md);
     8896        return false;
     8897    }
     8898    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_minor", PS_DATA_F32, NULL, object->fwhm_minor)) {
     8899        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_minor");
     8900        psFree(md);
     8901        return false;
     8902    }
     8903    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, object->dtime_detrend)) {
     8904        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
     8905        psFree(md);
     8906        return false;
     8907    }
     8908    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_photom", PS_DATA_F32, NULL, object->dtime_photom)) {
     8909        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_photom");
     8910        psFree(md);
     8911        return false;
     8912    }
     8913    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_astrom", PS_DATA_F32, NULL, object->dtime_astrom)) {
     8914        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_astrom");
     8915        psFree(md);
     8916        return false;
     8917    }
     8918    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
     8919        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
    92428920        psFree(md);
    92438921        return false;
     
    93128990        return false;
    93138991    }
     8992    psF32 bias = psMetadataLookupF32(&status, md, "bias");
     8993    if (!status) {
     8994        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bias");
     8995        return false;
     8996    }
     8997    psF32 bias_stdev = psMetadataLookupF32(&status, md, "bias_stdev");
     8998    if (!status) {
     8999        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bias_stdev");
     9000        return false;
     9001    }
     9002    psF32 fringe_0 = psMetadataLookupF32(&status, md, "fringe_0");
     9003    if (!status) {
     9004        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_0");
     9005        return false;
     9006    }
     9007    psF32 fringe_1 = psMetadataLookupF32(&status, md, "fringe_1");
     9008    if (!status) {
     9009        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_1");
     9010        return false;
     9011    }
     9012    psF32 fringe_2 = psMetadataLookupF32(&status, md, "fringe_2");
     9013    if (!status) {
     9014        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_2");
     9015        return false;
     9016    }
    93149017    psF32 sigma_ra = psMetadataLookupF32(&status, md, "sigma_ra");
    93159018    if (!status) {
     
    93229025        return false;
    93239026    }
     9027    psF32 ap_resid = psMetadataLookupF32(&status, md, "ap_resid");
     9028    if (!status) {
     9029        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ap_resid");
     9030        return false;
     9031    }
     9032    psF32 ap_resid_stdev = psMetadataLookupF32(&status, md, "ap_resid_stdev");
     9033    if (!status) {
     9034        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ap_resid_stdev");
     9035        return false;
     9036    }
    93249037    psF32 zp_mean = psMetadataLookupF32(&status, md, "zp_mean");
    93259038    if (!status) {
     
    93329045        return false;
    93339046    }
    9334     psF32 fwhm = psMetadataLookupF32(&status, md, "fwhm");
    9335     if (!status) {
    9336         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fwhm");
    9337         return false;
    9338     }
    9339     psF32 fwhm_range = psMetadataLookupF32(&status, md, "fwhm_range");
    9340     if (!status) {
    9341         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fwhm_range");
     9047    psF32 fwhm_major = psMetadataLookupF32(&status, md, "fwhm_major");
     9048    if (!status) {
     9049        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fwhm_major");
     9050        return false;
     9051    }
     9052    psF32 fwhm_minor = psMetadataLookupF32(&status, md, "fwhm_minor");
     9053    if (!status) {
     9054        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fwhm_minor");
     9055        return false;
     9056    }
     9057    psF32 dtime_detrend = psMetadataLookupF32(&status, md, "dtime_detrend");
     9058    if (!status) {
     9059        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_detrend");
     9060        return false;
     9061    }
     9062    psF32 dtime_photom = psMetadataLookupF32(&status, md, "dtime_photom");
     9063    if (!status) {
     9064        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_photom");
     9065        return false;
     9066    }
     9067    psF32 dtime_astrom = psMetadataLookupF32(&status, md, "dtime_astrom");
     9068    if (!status) {
     9069        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_astrom");
     9070        return false;
     9071    }
     9072    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
     9073    if (!status) {
     9074        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item hostname");
    93429075        return false;
    93439076    }
     
    93739106    }
    93749107
    9375     return camProcessedExpRowAlloc(cam_id, chip_id, uri, bg, bg_stdev, bg_mean_stdev, sigma_ra, sigma_dec, zp_mean, zp_stdev, fwhm, fwhm_range, n_stars, n_extended, n_cr, n_astrom, path_base, fault);
     9108    return camProcessedExpRowAlloc(cam_id, chip_id, uri, bg, bg_stdev, bg_mean_stdev, bias, bias_stdev, fringe_0, fringe_1, fringe_2, sigma_ra, sigma_dec, ap_resid, ap_resid_stdev, zp_mean, zp_stdev, fwhm_major, fwhm_minor, dtime_detrend, dtime_photom, dtime_astrom, hostname, n_stars, n_extended, n_cr, n_astrom, path_base, fault);
    93769109}
    93779110psArray *camProcessedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1093410667static void warpSkyfileRowFree(warpSkyfileRow *object);
    1093510668
    10936 warpSkyfileRow *warpSkyfileRowAlloc(psS64 warp_id, const char *skycell_id, const char *tess_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF64 good_frac, bool ignored, psS16 fault)
     10669warpSkyfileRow *warpSkyfileRowAlloc(psS64 warp_id, const char *skycell_id, const char *tess_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF32 dtime_warp, const char *hostname, psF32 good_frac, bool ignored, psS16 fault)
    1093710670{
    1093810671    warpSkyfileRow  *_object;
     
    1094810681    _object->bg = bg;
    1094910682    _object->bg_stdev = bg_stdev;
     10683    _object->dtime_warp = dtime_warp;
     10684    _object->hostname = psStringCopy(hostname);
    1095010685    _object->good_frac = good_frac;
    1095110686    _object->ignored = ignored;
     
    1096110696    psFree(object->uri);
    1096210697    psFree(object->path_base);
     10698    psFree(object->hostname);
    1096310699}
    1096410700
     
    1100110737        return false;
    1100210738    }
    11003     if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F64, "Key", 0.0)) {
     10739    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_warp", PS_DATA_F32, NULL, 0.0)) {
     10740        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_warp");
     10741        psFree(md);
     10742        return false;
     10743    }
     10744    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
     10745        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     10746        psFree(md);
     10747        return false;
     10748    }
     10749    if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F32, "Key", 0.0)) {
    1100410750        psError(PS_ERR_UNKNOWN, false, "failed to add item good_frac");
    1100510751        psFree(md);
     
    1102910775}
    1103010776
    11031 bool warpSkyfileInsert(psDB * dbh, psS64 warp_id, const char *skycell_id, const char *tess_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF64 good_frac, bool ignored, psS16 fault)
     10777bool warpSkyfileInsert(psDB * dbh, psS64 warp_id, const char *skycell_id, const char *tess_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF32 dtime_warp, const char *hostname, psF32 good_frac, bool ignored, psS16 fault)
    1103210778{
    1103310779    psMetadata *md = psMetadataAlloc();
     
    1106710813        return false;
    1106810814    }
    11069     if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F64, NULL, good_frac)) {
     10815    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_warp", PS_DATA_F32, NULL, dtime_warp)) {
     10816        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_warp");
     10817        psFree(md);
     10818        return false;
     10819    }
     10820    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, hostname)) {
     10821        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     10822        psFree(md);
     10823        return false;
     10824    }
     10825    if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F32, NULL, good_frac)) {
    1107010826        psError(PS_ERR_UNKNOWN, false, "failed to add item good_frac");
    1107110827        psFree(md);
     
    1110510861bool warpSkyfileInsertObject(psDB *dbh, warpSkyfileRow *object)
    1110610862{
    11107     return warpSkyfileInsert(dbh, object->warp_id, object->skycell_id, object->tess_id, object->uri, object->path_base, object->bg, object->bg_stdev, object->good_frac, object->ignored, object->fault);
     10863    return warpSkyfileInsert(dbh, object->warp_id, object->skycell_id, object->tess_id, object->uri, object->path_base, object->bg, object->bg_stdev, object->dtime_warp, object->hostname, object->good_frac, object->ignored, object->fault);
    1110810864}
    1110910865
     
    1121310969        return false;
    1121410970    }
    11215     if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F64, NULL, object->good_frac)) {
     10971    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_warp", PS_DATA_F32, NULL, object->dtime_warp)) {
     10972        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_warp");
     10973        psFree(md);
     10974        return false;
     10975    }
     10976    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
     10977        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     10978        psFree(md);
     10979        return false;
     10980    }
     10981    if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F32, NULL, object->good_frac)) {
    1121610982        psError(PS_ERR_UNKNOWN, false, "failed to add item good_frac");
    1121710983        psFree(md);
     
    1127211038        return false;
    1127311039    }
    11274     psF64 good_frac = psMetadataLookupF64(&status, md, "good_frac");
     11040    psF32 dtime_warp = psMetadataLookupF32(&status, md, "dtime_warp");
     11041    if (!status) {
     11042        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_warp");
     11043        return false;
     11044    }
     11045    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
     11046    if (!status) {
     11047        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item hostname");
     11048        return false;
     11049    }
     11050    psF32 good_frac = psMetadataLookupF32(&status, md, "good_frac");
    1127511051    if (!status) {
    1127611052        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item good_frac");
     
    1128811064    }
    1128911065
    11290     return warpSkyfileRowAlloc(warp_id, skycell_id, tess_id, uri, path_base, bg, bg_stdev, good_frac, ignored, fault);
     11066    return warpSkyfileRowAlloc(warp_id, skycell_id, tess_id, uri, path_base, bg, bg_stdev, dtime_warp, hostname, good_frac, ignored, fault);
    1129111067}
    1129211068psArray *warpSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1222512001static void diffSkyfileRowFree(diffSkyfileRow *object);
    1222612002
    12227 diffSkyfileRow *diffSkyfileRowAlloc(psS64 diff_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF64 good_frac, psS16 fault)
     12003diffSkyfileRow *diffSkyfileRowAlloc(psS64 diff_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF32 dtime_diff, const char *hostname, psF32 good_frac, psS16 fault)
    1222812004{
    1222912005    diffSkyfileRow  *_object;
     
    1223712013    _object->bg = bg;
    1223812014    _object->bg_stdev = bg_stdev;
     12015    _object->dtime_diff = dtime_diff;
     12016    _object->hostname = psStringCopy(hostname);
    1223912017    _object->good_frac = good_frac;
    1224012018    _object->fault = fault;
     
    1224712025    psFree(object->uri);
    1224812026    psFree(object->path_base);
     12027    psFree(object->hostname);
    1224912028}
    1225012029
     
    1227712056        return false;
    1227812057    }
    12279     if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F64, "Key", 0.0)) {
     12058    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_diff", PS_DATA_F32, NULL, 0.0)) {
     12059        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_diff");
     12060        psFree(md);
     12061        return false;
     12062    }
     12063    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
     12064        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     12065        psFree(md);
     12066        return false;
     12067    }
     12068    if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F32, "Key", 0.0)) {
    1228012069        psError(PS_ERR_UNKNOWN, false, "failed to add item good_frac");
    1228112070        psFree(md);
     
    1230012089}
    1230112090
    12302 bool diffSkyfileInsert(psDB * dbh, psS64 diff_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF64 good_frac, psS16 fault)
     12091bool diffSkyfileInsert(psDB * dbh, psS64 diff_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF32 dtime_diff, const char *hostname, psF32 good_frac, psS16 fault)
    1230312092{
    1230412093    psMetadata *md = psMetadataAlloc();
     
    1232812117        return false;
    1232912118    }
    12330     if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F64, NULL, good_frac)) {
     12119    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_diff", PS_DATA_F32, NULL, dtime_diff)) {
     12120        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_diff");
     12121        psFree(md);
     12122        return false;
     12123    }
     12124    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, hostname)) {
     12125        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     12126        psFree(md);
     12127        return false;
     12128    }
     12129    if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F32, NULL, good_frac)) {
    1233112130        psError(PS_ERR_UNKNOWN, false, "failed to add item good_frac");
    1233212131        psFree(md);
     
    1236112160bool diffSkyfileInsertObject(psDB *dbh, diffSkyfileRow *object)
    1236212161{
    12363     return diffSkyfileInsert(dbh, object->diff_id, object->uri, object->path_base, object->bg, object->bg_stdev, object->good_frac, object->fault);
     12162    return diffSkyfileInsert(dbh, object->diff_id, object->uri, object->path_base, object->bg, object->bg_stdev, object->dtime_diff, object->hostname, object->good_frac, object->fault);
    1236412163}
    1236512164
     
    1245912258        return false;
    1246012259    }
    12461     if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F64, NULL, object->good_frac)) {
     12260    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_diff", PS_DATA_F32, NULL, object->dtime_diff)) {
     12261        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_diff");
     12262        psFree(md);
     12263        return false;
     12264    }
     12265    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
     12266        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     12267        psFree(md);
     12268        return false;
     12269    }
     12270    if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F32, NULL, object->good_frac)) {
    1246212271        psError(PS_ERR_UNKNOWN, false, "failed to add item good_frac");
    1246312272        psFree(md);
     
    1250312312        return false;
    1250412313    }
    12505     psF64 good_frac = psMetadataLookupF64(&status, md, "good_frac");
     12314    psF32 dtime_diff = psMetadataLookupF32(&status, md, "dtime_diff");
     12315    if (!status) {
     12316        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_diff");
     12317        return false;
     12318    }
     12319    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
     12320    if (!status) {
     12321        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item hostname");
     12322        return false;
     12323    }
     12324    psF32 good_frac = psMetadataLookupF32(&status, md, "good_frac");
    1250612325    if (!status) {
    1250712326        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item good_frac");
     
    1251412333    }
    1251512334
    12516     return diffSkyfileRowAlloc(diff_id, uri, path_base, bg, bg_stdev, good_frac, fault);
     12335    return diffSkyfileRowAlloc(diff_id, uri, path_base, bg, bg_stdev, dtime_diff, hostname, good_frac, fault);
    1251712336}
    1251812337psArray *diffSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1334313162static void stackSumSkyfileRowFree(stackSumSkyfileRow *object);
    1334413163
    13345 stackSumSkyfileRow *stackSumSkyfileRowAlloc(psS64 stack_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF64 good_frac, psS16 fault)
     13164stackSumSkyfileRow *stackSumSkyfileRowAlloc(psS64 stack_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF32 dtime_stack, const char *hostname, psF32 good_frac, psS16 fault)
    1334613165{
    1334713166    stackSumSkyfileRow *_object;
     
    1335513174    _object->bg = bg;
    1335613175    _object->bg_stdev = bg_stdev;
     13176    _object->dtime_stack = dtime_stack;
     13177    _object->hostname = psStringCopy(hostname);
    1335713178    _object->good_frac = good_frac;
    1335813179    _object->fault = fault;
     
    1336513186    psFree(object->uri);
    1336613187    psFree(object->path_base);
     13188    psFree(object->hostname);
    1336713189}
    1336813190
     
    1339513217        return false;
    1339613218    }
    13397     if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F64, "Key", 0.0)) {
     13219    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_stack", PS_DATA_F32, "Key", 0.0)) {
     13220        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_stack");
     13221        psFree(md);
     13222        return false;
     13223    }
     13224    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
     13225        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     13226        psFree(md);
     13227        return false;
     13228    }
     13229    if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F32, "Key", 0.0)) {
    1339813230        psError(PS_ERR_UNKNOWN, false, "failed to add item good_frac");
    1339913231        psFree(md);
     
    1341813250}
    1341913251
    13420 bool stackSumSkyfileInsert(psDB * dbh, psS64 stack_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF64 good_frac, psS16 fault)
     13252bool stackSumSkyfileInsert(psDB * dbh, psS64 stack_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF32 dtime_stack, const char *hostname, psF32 good_frac, psS16 fault)
    1342113253{
    1342213254    psMetadata *md = psMetadataAlloc();
     
    1344613278        return false;
    1344713279    }
    13448     if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F64, NULL, good_frac)) {
     13280    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_stack", PS_DATA_F32, NULL, dtime_stack)) {
     13281        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_stack");
     13282        psFree(md);
     13283        return false;
     13284    }
     13285    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, hostname)) {
     13286        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     13287        psFree(md);
     13288        return false;
     13289    }
     13290    if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F32, NULL, good_frac)) {
    1344913291        psError(PS_ERR_UNKNOWN, false, "failed to add item good_frac");
    1345013292        psFree(md);
     
    1347913321bool stackSumSkyfileInsertObject(psDB *dbh, stackSumSkyfileRow *object)
    1348013322{
    13481     return stackSumSkyfileInsert(dbh, object->stack_id, object->uri, object->path_base, object->bg, object->bg_stdev, object->good_frac, object->fault);
     13323    return stackSumSkyfileInsert(dbh, object->stack_id, object->uri, object->path_base, object->bg, object->bg_stdev, object->dtime_stack, object->hostname, object->good_frac, object->fault);
    1348213324}
    1348313325
     
    1357713419        return false;
    1357813420    }
    13579     if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F64, NULL, object->good_frac)) {
     13421    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_stack", PS_DATA_F32, NULL, object->dtime_stack)) {
     13422        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_stack");
     13423        psFree(md);
     13424        return false;
     13425    }
     13426    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
     13427        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     13428        psFree(md);
     13429        return false;
     13430    }
     13431    if (!psMetadataAdd(md, PS_LIST_TAIL, "good_frac", PS_DATA_F32, NULL, object->good_frac)) {
    1358013432        psError(PS_ERR_UNKNOWN, false, "failed to add item good_frac");
    1358113433        psFree(md);
     
    1362113473        return false;
    1362213474    }
    13623     psF64 good_frac = psMetadataLookupF64(&status, md, "good_frac");
     13475    psF32 dtime_stack = psMetadataLookupF32(&status, md, "dtime_stack");
     13476    if (!status) {
     13477        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_stack");
     13478        return false;
     13479    }
     13480    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
     13481    if (!status) {
     13482        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item hostname");
     13483        return false;
     13484    }
     13485    psF32 good_frac = psMetadataLookupF32(&status, md, "good_frac");
    1362413486    if (!status) {
    1362513487        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item good_frac");
     
    1363213494    }
    1363313495
    13634     return stackSumSkyfileRowAlloc(stack_id, uri, path_base, bg, bg_stdev, good_frac, fault);
     13496    return stackSumSkyfileRowAlloc(stack_id, uri, path_base, bg, bg_stdev, dtime_stack, hostname, good_frac, fault);
    1363513497}
    1363613498psArray *stackSumSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    2354823410static void calDBRowFree(calDBRow *object);
    2354923411
    23550 calDBRow *calDBRowAlloc(psS64 cal_id, const char *catdir, const char *state)
     23412calDBRow *calDBRowAlloc(psS64 cal_id, const char *dvodb, const char *state)
    2355123413{
    2355223414    calDBRow        *_object;
     
    2355623418
    2355723419    _object->cal_id = cal_id;
    23558     _object->catdir = psStringCopy(catdir);
     23420    _object->dvodb = psStringCopy(dvodb);
    2355923421    _object->state = psStringCopy(state);
    2356023422
     
    2356423426static void calDBRowFree(calDBRow *object)
    2356523427{
    23566     psFree(object->catdir);
     23428    psFree(object->dvodb);
    2356723429    psFree(object->state);
    2356823430}
     
    2357623438        return false;
    2357723439    }
    23578     if (!psMetadataAdd(md, PS_LIST_TAIL, "catdir", PS_DATA_STRING, NULL, "64")) {
    23579         psError(PS_ERR_UNKNOWN, false, "failed to add item catdir");
     23440    if (!psMetadataAdd(md, PS_LIST_TAIL, "dvodb", PS_DATA_STRING, NULL, "64")) {
     23441        psError(PS_ERR_UNKNOWN, false, "failed to add item dvodb");
    2358023442        psFree(md);
    2358123443        return false;
     
    2359923461}
    2360023462
    23601 bool calDBInsert(psDB * dbh, psS64 cal_id, const char *catdir, const char *state)
     23463bool calDBInsert(psDB * dbh, psS64 cal_id, const char *dvodb, const char *state)
    2360223464{
    2360323465    psMetadata *md = psMetadataAlloc();
     
    2360723469        return false;
    2360823470    }
    23609     if (!psMetadataAdd(md, PS_LIST_TAIL, "catdir", PS_DATA_STRING, NULL, catdir)) {
    23610         psError(PS_ERR_UNKNOWN, false, "failed to add item catdir");
     23471    if (!psMetadataAdd(md, PS_LIST_TAIL, "dvodb", PS_DATA_STRING, NULL, dvodb)) {
     23472        psError(PS_ERR_UNKNOWN, false, "failed to add item dvodb");
    2361123473        psFree(md);
    2361223474        return false;
     
    2364023502bool calDBInsertObject(psDB *dbh, calDBRow *object)
    2364123503{
    23642     return calDBInsert(dbh, object->cal_id, object->catdir, object->state);
     23504    return calDBInsert(dbh, object->cal_id, object->dvodb, object->state);
    2364323505}
    2364423506
     
    2371823580        return false;
    2371923581    }
    23720     if (!psMetadataAdd(md, PS_LIST_TAIL, "catdir", PS_DATA_STRING, NULL, object->catdir)) {
    23721         psError(PS_ERR_UNKNOWN, false, "failed to add item catdir");
     23582    if (!psMetadataAdd(md, PS_LIST_TAIL, "dvodb", PS_DATA_STRING, NULL, object->dvodb)) {
     23583        psError(PS_ERR_UNKNOWN, false, "failed to add item dvodb");
    2372223584        psFree(md);
    2372323585        return false;
     
    2374223604        return false;
    2374323605    }
    23744     char* catdir = psMetadataLookupPtr(&status, md, "catdir");
    23745     if (!status) {
    23746         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item catdir");
     23606    char* dvodb = psMetadataLookupPtr(&status, md, "dvodb");
     23607    if (!status) {
     23608        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dvodb");
    2374723609        return false;
    2374823610    }
     
    2375323615    }
    2375423616
    23755     return calDBRowAlloc(cal_id, catdir, state);
     23617    return calDBRowAlloc(cal_id, dvodb, state);
    2375623618}
    2375723619psArray *calDBSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    2421624078static void flatcorrRunRowFree(flatcorrRunRow *object);
    2421724079
    24218 flatcorrRunRow *flatcorrRunRowAlloc(psS64 corr_id, const char *dvodb, const char *state, const char *workdir, const char *label, const char *stats)
     24080flatcorrRunRow *flatcorrRunRowAlloc(psS64 corr_id, const char *dvodb, const char *filter, const char *state, const char *workdir, const char *label, const char *stats)
    2421924081{
    2422024082    flatcorrRunRow  *_object;
     
    2422524087    _object->corr_id = corr_id;
    2422624088    _object->dvodb = psStringCopy(dvodb);
     24089    _object->filter = psStringCopy(filter);
    2422724090    _object->state = psStringCopy(state);
    2422824091    _object->workdir = psStringCopy(workdir);
     
    2423624099{
    2423724100    psFree(object->dvodb);
     24101    psFree(object->filter);
    2423824102    psFree(object->state);
    2423924103    psFree(object->workdir);
     
    2425524119        return false;
    2425624120    }
     24121    if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, "64")) {
     24122        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
     24123        psFree(md);
     24124        return false;
     24125    }
    2425724126    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, "64")) {
    2425824127        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     
    2428824157}
    2428924158
    24290 bool flatcorrRunInsert(psDB * dbh, psS64 corr_id, const char *dvodb, const char *state, const char *workdir, const char *label, const char *stats)
     24159bool flatcorrRunInsert(psDB * dbh, psS64 corr_id, const char *dvodb, const char *filter, const char *state, const char *workdir, const char *label, const char *stats)
    2429124160{
    2429224161    psMetadata *md = psMetadataAlloc();
     
    2429824167    if (!psMetadataAdd(md, PS_LIST_TAIL, "dvodb", PS_DATA_STRING, NULL, dvodb)) {
    2429924168        psError(PS_ERR_UNKNOWN, false, "failed to add item dvodb");
     24169        psFree(md);
     24170        return false;
     24171    }
     24172    if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, filter)) {
     24173        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    2430024174        psFree(md);
    2430124175        return false;
     
    2434424218bool flatcorrRunInsertObject(psDB *dbh, flatcorrRunRow *object)
    2434524219{
    24346     return flatcorrRunInsert(dbh, object->corr_id, object->dvodb, object->state, object->workdir, object->label, object->stats);
     24220    return flatcorrRunInsert(dbh, object->corr_id, object->dvodb, object->filter, object->state, object->workdir, object->label, object->stats);
    2434724221}
    2434824222
     
    2442724301        return false;
    2442824302    }
     24303    if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, object->filter)) {
     24304        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
     24305        psFree(md);
     24306        return false;
     24307    }
    2442924308    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, object->state)) {
    2443024309        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     
    2446624345        return false;
    2446724346    }
     24347    char* filter = psMetadataLookupPtr(&status, md, "filter");
     24348    if (!status) {
     24349        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
     24350        return false;
     24351    }
    2446824352    char* state = psMetadataLookupPtr(&status, md, "state");
    2446924353    if (!status) {
     
    2448724371    }
    2448824372
    24489     return flatcorrRunRowAlloc(corr_id, dvodb, state, workdir, label, stats);
     24373    return flatcorrRunRowAlloc(corr_id, dvodb, filter, state, workdir, label, stats);
    2449024374}
    2449124375psArray *flatcorrRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    2490324787    return true;
    2490424788}
     24789static void pstampDataStoreRowFree(pstampDataStoreRow *object);
     24790
     24791pstampDataStoreRow *pstampDataStoreRowAlloc(psS64 ds_id, const char *uri, const char *lastFileset, const char *state)
     24792{
     24793    pstampDataStoreRow *_object;
     24794
     24795    _object = psAlloc(sizeof(pstampDataStoreRow));
     24796    psMemSetDeallocator(_object, (psFreeFunc)pstampDataStoreRowFree);
     24797
     24798    _object->ds_id = ds_id;
     24799    _object->uri = psStringCopy(uri);
     24800    _object->lastFileset = psStringCopy(lastFileset);
     24801    _object->state = psStringCopy(state);
     24802
     24803    return _object;
     24804}
     24805
     24806static void pstampDataStoreRowFree(pstampDataStoreRow *object)
     24807{
     24808    psFree(object->uri);
     24809    psFree(object->lastFileset);
     24810    psFree(object->state);
     24811}
     24812
     24813bool pstampDataStoreCreateTable(psDB *dbh)
     24814{
     24815    psMetadata *md = psMetadataAlloc();
     24816    if (!psMetadataAdd(md, PS_LIST_TAIL, "ds_id", PS_DATA_S64, "Primary Key AUTO_INCREMENT", 0)) {
     24817        psError(PS_ERR_UNKNOWN, false, "failed to add item ds_id");
     24818        psFree(md);
     24819        return false;
     24820    }
     24821    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, "255")) {
     24822        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     24823        psFree(md);
     24824        return false;
     24825    }
     24826    if (!psMetadataAdd(md, PS_LIST_TAIL, "lastFileset", PS_DATA_STRING, NULL, "64")) {
     24827        psError(PS_ERR_UNKNOWN, false, "failed to add item lastFileset");
     24828        psFree(md);
     24829        return false;
     24830    }
     24831    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, "64")) {
     24832        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     24833        psFree(md);
     24834        return false;
     24835    }
     24836
     24837    bool status = psDBCreateTable(dbh, PSTAMPDATASTORE_TABLE_NAME, md);
     24838
     24839    psFree(md);
     24840
     24841    return status;
     24842}
     24843
     24844bool pstampDataStoreDropTable(psDB *dbh)
     24845{
     24846    return psDBDropTable(dbh, PSTAMPDATASTORE_TABLE_NAME);
     24847}
     24848
     24849bool pstampDataStoreInsert(psDB * dbh, psS64 ds_id, const char *uri, const char *lastFileset, const char *state)
     24850{
     24851    psMetadata *md = psMetadataAlloc();
     24852    if (!psMetadataAdd(md, PS_LIST_TAIL, "ds_id", PS_DATA_S64, NULL, ds_id)) {
     24853        psError(PS_ERR_UNKNOWN, false, "failed to add item ds_id");
     24854        psFree(md);
     24855        return false;
     24856    }
     24857    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
     24858        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     24859        psFree(md);
     24860        return false;
     24861    }
     24862    if (!psMetadataAdd(md, PS_LIST_TAIL, "lastFileset", PS_DATA_STRING, NULL, lastFileset)) {
     24863        psError(PS_ERR_UNKNOWN, false, "failed to add item lastFileset");
     24864        psFree(md);
     24865        return false;
     24866    }
     24867    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, state)) {
     24868        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     24869        psFree(md);
     24870        return false;
     24871    }
     24872
     24873    bool status = psDBInsertOneRow(dbh, PSTAMPDATASTORE_TABLE_NAME, md);
     24874    psFree(md);
     24875
     24876    return status;
     24877}
     24878
     24879long long pstampDataStoreDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     24880{
     24881    long long       deleted = 0;
     24882
     24883    long long count = psDBDeleteRows(dbh, PSTAMPDATASTORE_TABLE_NAME, where, limit);
     24884    if (count < 0) {
     24885        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampDataStore");
     24886        return count;
     24887
     24888        deleted += count;
     24889    }
     24890
     24891    return deleted;
     24892}
     24893bool pstampDataStoreInsertObject(psDB *dbh, pstampDataStoreRow *object)
     24894{
     24895    return pstampDataStoreInsert(dbh, object->ds_id, object->uri, object->lastFileset, object->state);
     24896}
     24897
     24898bool pstampDataStoreInsertObjects(psDB *dbh, psArray *objects)
     24899{
     24900    for (long i = 0; i < psArrayLength(objects); i++) {
     24901        if (!pstampDataStoreInsertObject(dbh, objects->data[i])) {
     24902            return false;
     24903        }
     24904    }
     24905
     24906    return true;
     24907}
     24908
     24909bool pstampDataStoreInsertFits(psDB *dbh, const psFits *fits)
     24910{
     24911    psArray         *rowSet;
     24912
     24913    // move to (the first?) extension named  PSTAMPDATASTORE_TABLE_NAME
     24914    if (!psFitsMoveExtName(fits, PSTAMPDATASTORE_TABLE_NAME)) {
     24915        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", PSTAMPDATASTORE_TABLE_NAME);
     24916        return false;
     24917    }
     24918
     24919    // check HDU type
     24920    if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE)  {
     24921        psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");
     24922        return false;
     24923    }
     24924
     24925    // read fits table
     24926    rowSet = psFitsReadTable(fits);
     24927    if (!rowSet) {
     24928        psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");
     24929        psFree(rowSet);
     24930        return false;
     24931    }
     24932
     24933    if (!psDBInsertRows(dbh, PSTAMPDATASTORE_TABLE_NAME, rowSet)) {
     24934        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
     24935        psFree(rowSet);
     24936        return false;
     24937    }
     24938
     24939    psFree(rowSet);
     24940
     24941    return true;
     24942}
     24943
     24944bool pstampDataStoreSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     24945{
     24946    psArray         *rowSet;
     24947
     24948    rowSet = psDBSelectRows(dbh, PSTAMPDATASTORE_TABLE_NAME, where, limit);
     24949    if (!rowSet) {
     24950        return false;
     24951    }
     24952
     24953    // output to fits
     24954    if (!psFitsWriteTable(fits, NULL, rowSet, PSTAMPDATASTORE_TABLE_NAME)) {
     24955        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
     24956        psFree(rowSet);
     24957        return false;
     24958    }
     24959
     24960    psFree(rowSet);
     24961
     24962    return true;
     24963}
     24964
     24965psMetadata *pstampDataStoreMetadataFromObject(const pstampDataStoreRow *object)
     24966{
     24967    psMetadata *md = psMetadataAlloc();
     24968    if (!psMetadataAdd(md, PS_LIST_TAIL, "ds_id", PS_DATA_S64, NULL, object->ds_id)) {
     24969        psError(PS_ERR_UNKNOWN, false, "failed to add item ds_id");
     24970        psFree(md);
     24971        return false;
     24972    }
     24973    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, object->uri)) {
     24974        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     24975        psFree(md);
     24976        return false;
     24977    }
     24978    if (!psMetadataAdd(md, PS_LIST_TAIL, "lastFileset", PS_DATA_STRING, NULL, object->lastFileset)) {
     24979        psError(PS_ERR_UNKNOWN, false, "failed to add item lastFileset");
     24980        psFree(md);
     24981        return false;
     24982    }
     24983    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, object->state)) {
     24984        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     24985        psFree(md);
     24986        return false;
     24987    }
     24988
     24989
     24990    return md;
     24991}
     24992
     24993pstampDataStoreRow *pstampDataStoreObjectFromMetadata(psMetadata *md)
     24994{
     24995
     24996bool status = false;
     24997    psS64 ds_id = psMetadataLookupS64(&status, md, "ds_id");
     24998    if (!status) {
     24999        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ds_id");
     25000        return false;
     25001    }
     25002    char* uri = psMetadataLookupPtr(&status, md, "uri");
     25003    if (!status) {
     25004        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
     25005        return false;
     25006    }
     25007    char* lastFileset = psMetadataLookupPtr(&status, md, "lastFileset");
     25008    if (!status) {
     25009        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item lastFileset");
     25010        return false;
     25011    }
     25012    char* state = psMetadataLookupPtr(&status, md, "state");
     25013    if (!status) {
     25014        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item state");
     25015        return false;
     25016    }
     25017
     25018    return pstampDataStoreRowAlloc(ds_id, uri, lastFileset, state);
     25019}
     25020psArray *pstampDataStoreSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     25021{
     25022    psArray         *rowSet;
     25023    psArray         *returnSet;
     25024    psU64           i;
     25025
     25026    rowSet = psDBSelectRows(dbh, PSTAMPDATASTORE_TABLE_NAME, where, limit);
     25027    if (!rowSet) {
     25028        return NULL;
     25029    }
     25030
     25031    // convert psMetadata rows to row objects
     25032
     25033    returnSet = psArrayAllocEmpty(rowSet->n);
     25034
     25035    for (i = 0; i < rowSet->n; i++) {
     25036        pstampDataStoreRow *object = pstampDataStoreObjectFromMetadata(rowSet->data[i]);
     25037        if (!object) {
     25038            psFree(object);
     25039            psFree(returnSet);
     25040            psError(PS_ERR_UNKNOWN, false, "database error");
     25041            return NULL;
     25042        }
     25043        psArrayAdd(returnSet, 0, object);
     25044        psFree(object);
     25045    }
     25046
     25047    psFree(rowSet);
     25048
     25049    return returnSet;
     25050}
     25051bool pstampDataStoreDeleteObject(psDB *dbh, const pstampDataStoreRow *object)
     25052{
     25053    psMetadata *where = pstampDataStoreMetadataFromObject(object);
     25054    long long count = psDBDeleteRows(dbh, PSTAMPDATASTORE_TABLE_NAME, where, 0);
     25055    psFree(where);
     25056    if (count < 0) {
     25057        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampDataStore");
     25058        return false;
     25059    }
     25060    if (count > 1) {
     25061        // XXX should this be a psAbort() instead?  It is possible that
     25062        // having an object match multiple rows was by design.
     25063        psError(PS_ERR_UNKNOWN, true, "pstampDataStoreRow object matched more then one row.  Check your database schema");
     25064        return false;
     25065    }
     25066
     25067    return true;
     25068}
     25069long long pstampDataStoreDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     25070{
     25071    long long       deleted = 0;
     25072
     25073    for (long long i = 0; i < objects->n; i++) {
     25074        pstampDataStoreRow *object = objects->data[i];
     25075        psMetadata *where = pstampDataStoreMetadataFromObject(object);
     25076        long long count = psDBDeleteRows(dbh, PSTAMPDATASTORE_TABLE_NAME, where, limit);
     25077        psFree(where);
     25078        if (count < 0) {
     25079            psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampDataStore");
     25080            return count;
     25081        }
     25082
     25083        deleted += count;
     25084    }
     25085
     25086    return deleted;
     25087}
     25088bool pstampDataStorePrintObjects(FILE *stream, psArray *objects, bool mdcf)
     25089{
     25090    PS_ASSERT_PTR_NON_NULL(objects, false);
     25091
     25092    psMetadata *output = psMetadataAlloc();
     25093    for (long i = 0; i < psArrayLength(objects); i++) {
     25094        psMetadata *md = pstampDataStoreMetadataFromObject(objects->data[i]);
     25095        if (!psMetadataAddMetadata(
     25096            output,
     25097            PS_LIST_TAIL,
     25098            PSTAMPDATASTORE_TABLE_NAME,
     25099            PS_META_DUPLICATE_OK,
     25100            NULL,
     25101            md
     25102        )) {
     25103            psError(PS_ERR_UNKNOWN, false, "failed to add metadata");
     25104            psFree(md);
     25105            psFree(output);
     25106            return false;
     25107        }
     25108        psFree(md);
     25109    }
     25110
     25111    if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {
     25112        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     25113        psFree(output);
     25114    }
     25115    psFree(output);
     25116
     25117    return true;
     25118}
     25119bool pstampDataStorePrintObject(FILE *stream, pstampDataStoreRow *object, bool mdcf)
     25120{
     25121    PS_ASSERT_PTR_NON_NULL(object, false);
     25122
     25123    psMetadata *md = pstampDataStoreMetadataFromObject(object);
     25124
     25125    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
     25126        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     25127        psFree(md);
     25128    }
     25129
     25130    psFree(md);
     25131
     25132    return true;
     25133}
     25134static void pstampRequestRowFree(pstampRequestRow *object);
     25135
     25136pstampRequestRow *pstampRequestRowAlloc(psS64 req_id, psS64 ds_id, const char *state, const char *uri)
     25137{
     25138    pstampRequestRow *_object;
     25139
     25140    _object = psAlloc(sizeof(pstampRequestRow));
     25141    psMemSetDeallocator(_object, (psFreeFunc)pstampRequestRowFree);
     25142
     25143    _object->req_id = req_id;
     25144    _object->ds_id = ds_id;
     25145    _object->state = psStringCopy(state);
     25146    _object->uri = psStringCopy(uri);
     25147
     25148    return _object;
     25149}
     25150
     25151static void pstampRequestRowFree(pstampRequestRow *object)
     25152{
     25153    psFree(object->state);
     25154    psFree(object->uri);
     25155}
     25156
     25157bool pstampRequestCreateTable(psDB *dbh)
     25158{
     25159    psMetadata *md = psMetadataAlloc();
     25160    if (!psMetadataAdd(md, PS_LIST_TAIL, "req_id", PS_DATA_S64, "Primary Key AUTO_INCREMENT", 0)) {
     25161        psError(PS_ERR_UNKNOWN, false, "failed to add item req_id");
     25162        psFree(md);
     25163        return false;
     25164    }
     25165    if (!psMetadataAdd(md, PS_LIST_TAIL, "ds_id", PS_DATA_S64, NULL, 0)) {
     25166        psError(PS_ERR_UNKNOWN, false, "failed to add item ds_id");
     25167        psFree(md);
     25168        return false;
     25169    }
     25170    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, "64")) {
     25171        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     25172        psFree(md);
     25173        return false;
     25174    }
     25175    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, "255")) {
     25176        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     25177        psFree(md);
     25178        return false;
     25179    }
     25180
     25181    bool status = psDBCreateTable(dbh, PSTAMPREQUEST_TABLE_NAME, md);
     25182
     25183    psFree(md);
     25184
     25185    return status;
     25186}
     25187
     25188bool pstampRequestDropTable(psDB *dbh)
     25189{
     25190    return psDBDropTable(dbh, PSTAMPREQUEST_TABLE_NAME);
     25191}
     25192
     25193bool pstampRequestInsert(psDB * dbh, psS64 req_id, psS64 ds_id, const char *state, const char *uri)
     25194{
     25195    psMetadata *md = psMetadataAlloc();
     25196    if (!psMetadataAdd(md, PS_LIST_TAIL, "req_id", PS_DATA_S64, NULL, req_id)) {
     25197        psError(PS_ERR_UNKNOWN, false, "failed to add item req_id");
     25198        psFree(md);
     25199        return false;
     25200    }
     25201    if (!psMetadataAdd(md, PS_LIST_TAIL, "ds_id", PS_DATA_S64, NULL, ds_id)) {
     25202        psError(PS_ERR_UNKNOWN, false, "failed to add item ds_id");
     25203        psFree(md);
     25204        return false;
     25205    }
     25206    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, state)) {
     25207        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     25208        psFree(md);
     25209        return false;
     25210    }
     25211    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
     25212        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     25213        psFree(md);
     25214        return false;
     25215    }
     25216
     25217    bool status = psDBInsertOneRow(dbh, PSTAMPREQUEST_TABLE_NAME, md);
     25218    psFree(md);
     25219
     25220    return status;
     25221}
     25222
     25223long long pstampRequestDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     25224{
     25225    long long       deleted = 0;
     25226
     25227    long long count = psDBDeleteRows(dbh, PSTAMPREQUEST_TABLE_NAME, where, limit);
     25228    if (count < 0) {
     25229        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampRequest");
     25230        return count;
     25231
     25232        deleted += count;
     25233    }
     25234
     25235    return deleted;
     25236}
     25237bool pstampRequestInsertObject(psDB *dbh, pstampRequestRow *object)
     25238{
     25239    return pstampRequestInsert(dbh, object->req_id, object->ds_id, object->state, object->uri);
     25240}
     25241
     25242bool pstampRequestInsertObjects(psDB *dbh, psArray *objects)
     25243{
     25244    for (long i = 0; i < psArrayLength(objects); i++) {
     25245        if (!pstampRequestInsertObject(dbh, objects->data[i])) {
     25246            return false;
     25247        }
     25248    }
     25249
     25250    return true;
     25251}
     25252
     25253bool pstampRequestInsertFits(psDB *dbh, const psFits *fits)
     25254{
     25255    psArray         *rowSet;
     25256
     25257    // move to (the first?) extension named  PSTAMPREQUEST_TABLE_NAME
     25258    if (!psFitsMoveExtName(fits, PSTAMPREQUEST_TABLE_NAME)) {
     25259        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", PSTAMPREQUEST_TABLE_NAME);
     25260        return false;
     25261    }
     25262
     25263    // check HDU type
     25264    if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE)  {
     25265        psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");
     25266        return false;
     25267    }
     25268
     25269    // read fits table
     25270    rowSet = psFitsReadTable(fits);
     25271    if (!rowSet) {
     25272        psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");
     25273        psFree(rowSet);
     25274        return false;
     25275    }
     25276
     25277    if (!psDBInsertRows(dbh, PSTAMPREQUEST_TABLE_NAME, rowSet)) {
     25278        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
     25279        psFree(rowSet);
     25280        return false;
     25281    }
     25282
     25283    psFree(rowSet);
     25284
     25285    return true;
     25286}
     25287
     25288bool pstampRequestSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     25289{
     25290    psArray         *rowSet;
     25291
     25292    rowSet = psDBSelectRows(dbh, PSTAMPREQUEST_TABLE_NAME, where, limit);
     25293    if (!rowSet) {
     25294        return false;
     25295    }
     25296
     25297    // output to fits
     25298    if (!psFitsWriteTable(fits, NULL, rowSet, PSTAMPREQUEST_TABLE_NAME)) {
     25299        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
     25300        psFree(rowSet);
     25301        return false;
     25302    }
     25303
     25304    psFree(rowSet);
     25305
     25306    return true;
     25307}
     25308
     25309psMetadata *pstampRequestMetadataFromObject(const pstampRequestRow *object)
     25310{
     25311    psMetadata *md = psMetadataAlloc();
     25312    if (!psMetadataAdd(md, PS_LIST_TAIL, "req_id", PS_DATA_S64, NULL, object->req_id)) {
     25313        psError(PS_ERR_UNKNOWN, false, "failed to add item req_id");
     25314        psFree(md);
     25315        return false;
     25316    }
     25317    if (!psMetadataAdd(md, PS_LIST_TAIL, "ds_id", PS_DATA_S64, NULL, object->ds_id)) {
     25318        psError(PS_ERR_UNKNOWN, false, "failed to add item ds_id");
     25319        psFree(md);
     25320        return false;
     25321    }
     25322    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, object->state)) {
     25323        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     25324        psFree(md);
     25325        return false;
     25326    }
     25327    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, object->uri)) {
     25328        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     25329        psFree(md);
     25330        return false;
     25331    }
     25332
     25333
     25334    return md;
     25335}
     25336
     25337pstampRequestRow *pstampRequestObjectFromMetadata(psMetadata *md)
     25338{
     25339
     25340bool status = false;
     25341    psS64 req_id = psMetadataLookupS64(&status, md, "req_id");
     25342    if (!status) {
     25343        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item req_id");
     25344        return false;
     25345    }
     25346    psS64 ds_id = psMetadataLookupS64(&status, md, "ds_id");
     25347    if (!status) {
     25348        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ds_id");
     25349        return false;
     25350    }
     25351    char* state = psMetadataLookupPtr(&status, md, "state");
     25352    if (!status) {
     25353        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item state");
     25354        return false;
     25355    }
     25356    char* uri = psMetadataLookupPtr(&status, md, "uri");
     25357    if (!status) {
     25358        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
     25359        return false;
     25360    }
     25361
     25362    return pstampRequestRowAlloc(req_id, ds_id, state, uri);
     25363}
     25364psArray *pstampRequestSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     25365{
     25366    psArray         *rowSet;
     25367    psArray         *returnSet;
     25368    psU64           i;
     25369
     25370    rowSet = psDBSelectRows(dbh, PSTAMPREQUEST_TABLE_NAME, where, limit);
     25371    if (!rowSet) {
     25372        return NULL;
     25373    }
     25374
     25375    // convert psMetadata rows to row objects
     25376
     25377    returnSet = psArrayAllocEmpty(rowSet->n);
     25378
     25379    for (i = 0; i < rowSet->n; i++) {
     25380        pstampRequestRow *object = pstampRequestObjectFromMetadata(rowSet->data[i]);
     25381        if (!object) {
     25382            psFree(object);
     25383            psFree(returnSet);
     25384            psError(PS_ERR_UNKNOWN, false, "database error");
     25385            return NULL;
     25386        }
     25387        psArrayAdd(returnSet, 0, object);
     25388        psFree(object);
     25389    }
     25390
     25391    psFree(rowSet);
     25392
     25393    return returnSet;
     25394}
     25395bool pstampRequestDeleteObject(psDB *dbh, const pstampRequestRow *object)
     25396{
     25397    psMetadata *where = pstampRequestMetadataFromObject(object);
     25398    long long count = psDBDeleteRows(dbh, PSTAMPREQUEST_TABLE_NAME, where, 0);
     25399    psFree(where);
     25400    if (count < 0) {
     25401        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampRequest");
     25402        return false;
     25403    }
     25404    if (count > 1) {
     25405        // XXX should this be a psAbort() instead?  It is possible that
     25406        // having an object match multiple rows was by design.
     25407        psError(PS_ERR_UNKNOWN, true, "pstampRequestRow object matched more then one row.  Check your database schema");
     25408        return false;
     25409    }
     25410
     25411    return true;
     25412}
     25413long long pstampRequestDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     25414{
     25415    long long       deleted = 0;
     25416
     25417    for (long long i = 0; i < objects->n; i++) {
     25418        pstampRequestRow *object = objects->data[i];
     25419        psMetadata *where = pstampRequestMetadataFromObject(object);
     25420        long long count = psDBDeleteRows(dbh, PSTAMPREQUEST_TABLE_NAME, where, limit);
     25421        psFree(where);
     25422        if (count < 0) {
     25423            psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampRequest");
     25424            return count;
     25425        }
     25426
     25427        deleted += count;
     25428    }
     25429
     25430    return deleted;
     25431}
     25432bool pstampRequestPrintObjects(FILE *stream, psArray *objects, bool mdcf)
     25433{
     25434    PS_ASSERT_PTR_NON_NULL(objects, false);
     25435
     25436    psMetadata *output = psMetadataAlloc();
     25437    for (long i = 0; i < psArrayLength(objects); i++) {
     25438        psMetadata *md = pstampRequestMetadataFromObject(objects->data[i]);
     25439        if (!psMetadataAddMetadata(
     25440            output,
     25441            PS_LIST_TAIL,
     25442            PSTAMPREQUEST_TABLE_NAME,
     25443            PS_META_DUPLICATE_OK,
     25444            NULL,
     25445            md
     25446        )) {
     25447            psError(PS_ERR_UNKNOWN, false, "failed to add metadata");
     25448            psFree(md);
     25449            psFree(output);
     25450            return false;
     25451        }
     25452        psFree(md);
     25453    }
     25454
     25455    if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {
     25456        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     25457        psFree(output);
     25458    }
     25459    psFree(output);
     25460
     25461    return true;
     25462}
     25463bool pstampRequestPrintObject(FILE *stream, pstampRequestRow *object, bool mdcf)
     25464{
     25465    PS_ASSERT_PTR_NON_NULL(object, false);
     25466
     25467    psMetadata *md = pstampRequestMetadataFromObject(object);
     25468
     25469    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
     25470        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     25471        psFree(md);
     25472    }
     25473
     25474    psFree(md);
     25475
     25476    return true;
     25477}
     25478static void pstampJobRowFree(pstampJobRow *object);
     25479
     25480pstampJobRow *pstampJobRowAlloc(psS64 job_id, psS64 req_id, const char *state, psS32 result, const char *uri, const char *outputBase, const char *args)
     25481{
     25482    pstampJobRow    *_object;
     25483
     25484    _object = psAlloc(sizeof(pstampJobRow));
     25485    psMemSetDeallocator(_object, (psFreeFunc)pstampJobRowFree);
     25486
     25487    _object->job_id = job_id;
     25488    _object->req_id = req_id;
     25489    _object->state = psStringCopy(state);
     25490    _object->result = result;
     25491    _object->uri = psStringCopy(uri);
     25492    _object->outputBase = psStringCopy(outputBase);
     25493    _object->args = psStringCopy(args);
     25494
     25495    return _object;
     25496}
     25497
     25498static void pstampJobRowFree(pstampJobRow *object)
     25499{
     25500    psFree(object->state);
     25501    psFree(object->uri);
     25502    psFree(object->outputBase);
     25503    psFree(object->args);
     25504}
     25505
     25506bool pstampJobCreateTable(psDB *dbh)
     25507{
     25508    psMetadata *md = psMetadataAlloc();
     25509    if (!psMetadataAdd(md, PS_LIST_TAIL, "job_id", PS_DATA_S64, "Primary Key AUTO_INCREMENT", 0)) {
     25510        psError(PS_ERR_UNKNOWN, false, "failed to add item job_id");
     25511        psFree(md);
     25512        return false;
     25513    }
     25514    if (!psMetadataAdd(md, PS_LIST_TAIL, "req_id", PS_DATA_S64, "Primary Key fkey(req_id) ref pstampRequest(req_id)", 0)) {
     25515        psError(PS_ERR_UNKNOWN, false, "failed to add item req_id");
     25516        psFree(md);
     25517        return false;
     25518    }
     25519    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, "64")) {
     25520        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     25521        psFree(md);
     25522        return false;
     25523    }
     25524    if (!psMetadataAdd(md, PS_LIST_TAIL, "result", PS_DATA_S32, NULL, 0)) {
     25525        psError(PS_ERR_UNKNOWN, false, "failed to add item result");
     25526        psFree(md);
     25527        return false;
     25528    }
     25529    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, "255")) {
     25530        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     25531        psFree(md);
     25532        return false;
     25533    }
     25534    if (!psMetadataAdd(md, PS_LIST_TAIL, "outputBase", PS_DATA_STRING, NULL, "255")) {
     25535        psError(PS_ERR_UNKNOWN, false, "failed to add item outputBase");
     25536        psFree(md);
     25537        return false;
     25538    }
     25539    if (!psMetadataAdd(md, PS_LIST_TAIL, "args", PS_DATA_STRING, NULL, "511")) {
     25540        psError(PS_ERR_UNKNOWN, false, "failed to add item args");
     25541        psFree(md);
     25542        return false;
     25543    }
     25544
     25545    bool status = psDBCreateTable(dbh, PSTAMPJOB_TABLE_NAME, md);
     25546
     25547    psFree(md);
     25548
     25549    return status;
     25550}
     25551
     25552bool pstampJobDropTable(psDB *dbh)
     25553{
     25554    return psDBDropTable(dbh, PSTAMPJOB_TABLE_NAME);
     25555}
     25556
     25557bool pstampJobInsert(psDB * dbh, psS64 job_id, psS64 req_id, const char *state, psS32 result, const char *uri, const char *outputBase, const char *args)
     25558{
     25559    psMetadata *md = psMetadataAlloc();
     25560    if (!psMetadataAdd(md, PS_LIST_TAIL, "job_id", PS_DATA_S64, NULL, job_id)) {
     25561        psError(PS_ERR_UNKNOWN, false, "failed to add item job_id");
     25562        psFree(md);
     25563        return false;
     25564    }
     25565    if (!psMetadataAdd(md, PS_LIST_TAIL, "req_id", PS_DATA_S64, NULL, req_id)) {
     25566        psError(PS_ERR_UNKNOWN, false, "failed to add item req_id");
     25567        psFree(md);
     25568        return false;
     25569    }
     25570    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, state)) {
     25571        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     25572        psFree(md);
     25573        return false;
     25574    }
     25575    if (!psMetadataAdd(md, PS_LIST_TAIL, "result", PS_DATA_S32, NULL, result)) {
     25576        psError(PS_ERR_UNKNOWN, false, "failed to add item result");
     25577        psFree(md);
     25578        return false;
     25579    }
     25580    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
     25581        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     25582        psFree(md);
     25583        return false;
     25584    }
     25585    if (!psMetadataAdd(md, PS_LIST_TAIL, "outputBase", PS_DATA_STRING, NULL, outputBase)) {
     25586        psError(PS_ERR_UNKNOWN, false, "failed to add item outputBase");
     25587        psFree(md);
     25588        return false;
     25589    }
     25590    if (!psMetadataAdd(md, PS_LIST_TAIL, "args", PS_DATA_STRING, NULL, args)) {
     25591        psError(PS_ERR_UNKNOWN, false, "failed to add item args");
     25592        psFree(md);
     25593        return false;
     25594    }
     25595
     25596    bool status = psDBInsertOneRow(dbh, PSTAMPJOB_TABLE_NAME, md);
     25597    psFree(md);
     25598
     25599    return status;
     25600}
     25601
     25602long long pstampJobDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     25603{
     25604    long long       deleted = 0;
     25605
     25606    long long count = psDBDeleteRows(dbh, PSTAMPJOB_TABLE_NAME, where, limit);
     25607    if (count < 0) {
     25608        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampJob");
     25609        return count;
     25610
     25611        deleted += count;
     25612    }
     25613
     25614    return deleted;
     25615}
     25616bool pstampJobInsertObject(psDB *dbh, pstampJobRow *object)
     25617{
     25618    return pstampJobInsert(dbh, object->job_id, object->req_id, object->state, object->result, object->uri, object->outputBase, object->args);
     25619}
     25620
     25621bool pstampJobInsertObjects(psDB *dbh, psArray *objects)
     25622{
     25623    for (long i = 0; i < psArrayLength(objects); i++) {
     25624        if (!pstampJobInsertObject(dbh, objects->data[i])) {
     25625            return false;
     25626        }
     25627    }
     25628
     25629    return true;
     25630}
     25631
     25632bool pstampJobInsertFits(psDB *dbh, const psFits *fits)
     25633{
     25634    psArray         *rowSet;
     25635
     25636    // move to (the first?) extension named  PSTAMPJOB_TABLE_NAME
     25637    if (!psFitsMoveExtName(fits, PSTAMPJOB_TABLE_NAME)) {
     25638        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", PSTAMPJOB_TABLE_NAME);
     25639        return false;
     25640    }
     25641
     25642    // check HDU type
     25643    if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE)  {
     25644        psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");
     25645        return false;
     25646    }
     25647
     25648    // read fits table
     25649    rowSet = psFitsReadTable(fits);
     25650    if (!rowSet) {
     25651        psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");
     25652        psFree(rowSet);
     25653        return false;
     25654    }
     25655
     25656    if (!psDBInsertRows(dbh, PSTAMPJOB_TABLE_NAME, rowSet)) {
     25657        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
     25658        psFree(rowSet);
     25659        return false;
     25660    }
     25661
     25662    psFree(rowSet);
     25663
     25664    return true;
     25665}
     25666
     25667bool pstampJobSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     25668{
     25669    psArray         *rowSet;
     25670
     25671    rowSet = psDBSelectRows(dbh, PSTAMPJOB_TABLE_NAME, where, limit);
     25672    if (!rowSet) {
     25673        return false;
     25674    }
     25675
     25676    // output to fits
     25677    if (!psFitsWriteTable(fits, NULL, rowSet, PSTAMPJOB_TABLE_NAME)) {
     25678        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
     25679        psFree(rowSet);
     25680        return false;
     25681    }
     25682
     25683    psFree(rowSet);
     25684
     25685    return true;
     25686}
     25687
     25688psMetadata *pstampJobMetadataFromObject(const pstampJobRow *object)
     25689{
     25690    psMetadata *md = psMetadataAlloc();
     25691    if (!psMetadataAdd(md, PS_LIST_TAIL, "job_id", PS_DATA_S64, NULL, object->job_id)) {
     25692        psError(PS_ERR_UNKNOWN, false, "failed to add item job_id");
     25693        psFree(md);
     25694        return false;
     25695    }
     25696    if (!psMetadataAdd(md, PS_LIST_TAIL, "req_id", PS_DATA_S64, NULL, object->req_id)) {
     25697        psError(PS_ERR_UNKNOWN, false, "failed to add item req_id");
     25698        psFree(md);
     25699        return false;
     25700    }
     25701    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, object->state)) {
     25702        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     25703        psFree(md);
     25704        return false;
     25705    }
     25706    if (!psMetadataAdd(md, PS_LIST_TAIL, "result", PS_DATA_S32, NULL, object->result)) {
     25707        psError(PS_ERR_UNKNOWN, false, "failed to add item result");
     25708        psFree(md);
     25709        return false;
     25710    }
     25711    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, object->uri)) {
     25712        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     25713        psFree(md);
     25714        return false;
     25715    }
     25716    if (!psMetadataAdd(md, PS_LIST_TAIL, "outputBase", PS_DATA_STRING, NULL, object->outputBase)) {
     25717        psError(PS_ERR_UNKNOWN, false, "failed to add item outputBase");
     25718        psFree(md);
     25719        return false;
     25720    }
     25721    if (!psMetadataAdd(md, PS_LIST_TAIL, "args", PS_DATA_STRING, NULL, object->args)) {
     25722        psError(PS_ERR_UNKNOWN, false, "failed to add item args");
     25723        psFree(md);
     25724        return false;
     25725    }
     25726
     25727
     25728    return md;
     25729}
     25730
     25731pstampJobRow *pstampJobObjectFromMetadata(psMetadata *md)
     25732{
     25733
     25734bool status = false;
     25735    psS64 job_id = psMetadataLookupS64(&status, md, "job_id");
     25736    if (!status) {
     25737        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item job_id");
     25738        return false;
     25739    }
     25740    psS64 req_id = psMetadataLookupS64(&status, md, "req_id");
     25741    if (!status) {
     25742        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item req_id");
     25743        return false;
     25744    }
     25745    char* state = psMetadataLookupPtr(&status, md, "state");
     25746    if (!status) {
     25747        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item state");
     25748        return false;
     25749    }
     25750    psS32 result = psMetadataLookupS32(&status, md, "result");
     25751    if (!status) {
     25752        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item result");
     25753        return false;
     25754    }
     25755    char* uri = psMetadataLookupPtr(&status, md, "uri");
     25756    if (!status) {
     25757        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
     25758        return false;
     25759    }
     25760    char* outputBase = psMetadataLookupPtr(&status, md, "outputBase");
     25761    if (!status) {
     25762        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item outputBase");
     25763        return false;
     25764    }
     25765    char* args = psMetadataLookupPtr(&status, md, "args");
     25766    if (!status) {
     25767        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item args");
     25768        return false;
     25769    }
     25770
     25771    return pstampJobRowAlloc(job_id, req_id, state, result, uri, outputBase, args);
     25772}
     25773psArray *pstampJobSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     25774{
     25775    psArray         *rowSet;
     25776    psArray         *returnSet;
     25777    psU64           i;
     25778
     25779    rowSet = psDBSelectRows(dbh, PSTAMPJOB_TABLE_NAME, where, limit);
     25780    if (!rowSet) {
     25781        return NULL;
     25782    }
     25783
     25784    // convert psMetadata rows to row objects
     25785
     25786    returnSet = psArrayAllocEmpty(rowSet->n);
     25787
     25788    for (i = 0; i < rowSet->n; i++) {
     25789        pstampJobRow *object = pstampJobObjectFromMetadata(rowSet->data[i]);
     25790        if (!object) {
     25791            psFree(object);
     25792            psFree(returnSet);
     25793            psError(PS_ERR_UNKNOWN, false, "database error");
     25794            return NULL;
     25795        }
     25796        psArrayAdd(returnSet, 0, object);
     25797        psFree(object);
     25798    }
     25799
     25800    psFree(rowSet);
     25801
     25802    return returnSet;
     25803}
     25804bool pstampJobDeleteObject(psDB *dbh, const pstampJobRow *object)
     25805{
     25806    psMetadata *where = pstampJobMetadataFromObject(object);
     25807    long long count = psDBDeleteRows(dbh, PSTAMPJOB_TABLE_NAME, where, 0);
     25808    psFree(where);
     25809    if (count < 0) {
     25810        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampJob");
     25811        return false;
     25812    }
     25813    if (count > 1) {
     25814        // XXX should this be a psAbort() instead?  It is possible that
     25815        // having an object match multiple rows was by design.
     25816        psError(PS_ERR_UNKNOWN, true, "pstampJobRow object matched more then one row.  Check your database schema");
     25817        return false;
     25818    }
     25819
     25820    return true;
     25821}
     25822long long pstampJobDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     25823{
     25824    long long       deleted = 0;
     25825
     25826    for (long long i = 0; i < objects->n; i++) {
     25827        pstampJobRow *object = objects->data[i];
     25828        psMetadata *where = pstampJobMetadataFromObject(object);
     25829        long long count = psDBDeleteRows(dbh, PSTAMPJOB_TABLE_NAME, where, limit);
     25830        psFree(where);
     25831        if (count < 0) {
     25832            psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampJob");
     25833            return count;
     25834        }
     25835
     25836        deleted += count;
     25837    }
     25838
     25839    return deleted;
     25840}
     25841bool pstampJobPrintObjects(FILE *stream, psArray *objects, bool mdcf)
     25842{
     25843    PS_ASSERT_PTR_NON_NULL(objects, false);
     25844
     25845    psMetadata *output = psMetadataAlloc();
     25846    for (long i = 0; i < psArrayLength(objects); i++) {
     25847        psMetadata *md = pstampJobMetadataFromObject(objects->data[i]);
     25848        if (!psMetadataAddMetadata(
     25849            output,
     25850            PS_LIST_TAIL,
     25851            PSTAMPJOB_TABLE_NAME,
     25852            PS_META_DUPLICATE_OK,
     25853            NULL,
     25854            md
     25855        )) {
     25856            psError(PS_ERR_UNKNOWN, false, "failed to add metadata");
     25857            psFree(md);
     25858            psFree(output);
     25859            return false;
     25860        }
     25861        psFree(md);
     25862    }
     25863
     25864    if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {
     25865        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     25866        psFree(output);
     25867    }
     25868    psFree(output);
     25869
     25870    return true;
     25871}
     25872bool pstampJobPrintObject(FILE *stream, pstampJobRow *object, bool mdcf)
     25873{
     25874    PS_ASSERT_PTR_NON_NULL(object, false);
     25875
     25876    psMetadata *md = pstampJobMetadataFromObject(object);
     25877
     25878    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
     25879        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     25880        psFree(md);
     25881    }
     25882
     25883    psFree(md);
     25884
     25885    return true;
     25886}
  • trunk/ippdb/src/ippdb.h

    r16177 r16587  
    758758    bool            mdcf                ///< format as mdconfig or simple
    759759);
    760 /** pzPendingExpRow data structure
    761  *
    762  * Structure for representing a single row of pzPendingExp table data.
     760/** pzDownloadExpRow data structure
     761 *
     762 * Structure for representing a single row of pzDownloadExp table data.
    763763 */
    764764
     
    767767    char            *camera;
    768768    char            *telescope;
    769 } pzPendingExpRow;
    770 
    771 /** Creates a new pzPendingExpRow object
    772  *
    773  *  @return A new pzPendingExpRow object or NULL on failure.
    774  */
    775 
    776 pzPendingExpRow *pzPendingExpRowAlloc(
     769    char            *state;
     770} pzDownloadExpRow;
     771
     772/** Creates a new pzDownloadExpRow object
     773 *
     774 *  @return A new pzDownloadExpRow object or NULL on failure.
     775 */
     776
     777pzDownloadExpRow *pzDownloadExpRowAlloc(
    777778    const char      *exp_name,
    778779    const char      *camera,
    779     const char      *telescope
    780 );
    781 
    782 /** Creates a new pzPendingExp table
    783  *
    784  * @return true on success
    785  */
    786 
    787 bool pzPendingExpCreateTable(
     780    const char      *telescope,
     781    const char      *state
     782);
     783
     784/** Creates a new pzDownloadExp table
     785 *
     786 * @return true on success
     787 */
     788
     789bool pzDownloadExpCreateTable(
    788790    psDB            *dbh                ///< Database handle
    789791);
    790792
    791 /** Deletes a pzPendingExp table
    792  *
    793  * @return true on success
    794  */
    795 
    796 bool pzPendingExpDropTable(
     793/** Deletes a pzDownloadExp table
     794 *
     795 * @return true on success
     796 */
     797
     798bool pzDownloadExpDropTable(
    797799    psDB            *dbh                ///< Database handle
    798800);
     
    805807 */
    806808
    807 bool pzPendingExpInsert(
     809bool pzDownloadExpInsert(
    808810    psDB            *dbh,               ///< Database handle
    809811    const char      *exp_name,
    810812    const char      *camera,
    811     const char      *telescope
     813    const char      *telescope,
     814    const char      *state
    812815);
    813816
     
    817820 */
    818821
    819 long long pzPendingExpDelete(
     822long long pzDownloadExpDelete(
    820823    psDB            *dbh,               ///< Database handle
    821824    const psMetadata *where,            ///< Row match criteria
     
    823826);
    824827
    825 /** Insert a single pzPendingExpRow object into a table
     828/** Insert a single pzDownloadExpRow object into a table
    826829 *
    827830 * This function constructs and inserts a single row based on it's parameters.
     
    830833 */
    831834
    832 bool pzPendingExpInsertObject(
    833     psDB            *dbh,               ///< Database handle
    834     pzPendingExpRow *object             ///< pzPendingExpRow object
    835 );
    836 
    837 /** Insert an array of pzPendingExpRow object into a table
     835bool pzDownloadExpInsertObject(
     836    psDB            *dbh,               ///< Database handle
     837    pzDownloadExpRow *object             ///< pzDownloadExpRow object
     838);
     839
     840/** Insert an array of pzDownloadExpRow object into a table
    838841 *
    839842 * This function constructs and inserts multiple rows based on it's parameters.
     
    842845 */
    843846
    844 bool pzPendingExpInsertObjects(
    845     psDB            *dbh,               ///< Database handle
    846     psArray         *objects            ///< array of pzPendingExpRow objects
    847 );
    848 
    849 /** Insert data from a binary FITS table pzPendingExpRow into the database
     847bool pzDownloadExpInsertObjects(
     848    psDB            *dbh,               ///< Database handle
     849    psArray         *objects            ///< array of pzDownloadExpRow objects
     850);
     851
     852/** Insert data from a binary FITS table pzDownloadExpRow into the database
    850853 *
    851854 * This function expects a psFits object with a FITS table as the first
     
    857860 */
    858861
    859 bool pzPendingExpInsertFits(
     862bool pzDownloadExpInsertFits(
    860863    psDB            *dbh,               ///< Database handle
    861864    const psFits    *fits               ///< psFits object
     
    872875 */
    873876
    874 bool pzPendingExpSelectRowsFits(
     877bool pzDownloadExpSelectRowsFits(
    875878    psDB            *dbh,               ///< Database handle
    876879    psFits          *fits,              ///< psFits object
     
    879882);
    880883
    881 /** Convert a pzPendingExpRow into an equivalent psMetadata
     884/** Convert a pzDownloadExpRow into an equivalent psMetadata
    882885 *
    883886 * @return A psMetadata pointer or NULL on error
    884887 */
    885888
    886 psMetadata *pzPendingExpMetadataFromObject(
    887     const pzPendingExpRow *object             ///< fooRow to convert into a psMetadata
     889psMetadata *pzDownloadExpMetadataFromObject(
     890    const pzDownloadExpRow *object             ///< fooRow to convert into a psMetadata
    888891);
    889892
    890893/** Convert a psMetadata into an equivalent fooRow
    891894 *
    892  * @return A pzPendingExpRow pointer or NULL on error
    893  */
    894 
    895 pzPendingExpRow *pzPendingExpObjectFromMetadata(
     895 * @return A pzDownloadExpRow pointer or NULL on error
     896 */
     897
     898pzDownloadExpRow *pzDownloadExpObjectFromMetadata(
    896899    psMetadata      *md                 ///< psMetadata to convert into a fooRow
    897900);
    898 /** Selects up to limit rows from the database and returns as pzPendingExpRow objects in a psArray
     901/** Selects up to limit rows from the database and returns as pzDownloadExpRow objects in a psArray
    899902 *
    900903 *  See psDBSelectRows() for documentation on the format of where.
     
    903906 */
    904907
    905 psArray *pzPendingExpSelectRowObjects(
     908psArray *pzDownloadExpSelectRowObjects(
    906909    psDB            *dbh,               ///< Database handle
    907910    const psMetadata *where,            ///< Row match criteria
    908911    unsigned long long limit            ///< Maximum number of elements to return
    909912);
    910 /** Deletes a row from the database coresponding to an pzPendingExp
     913/** Deletes a row from the database coresponding to an pzDownloadExp
    911914 *
    912915 *  Note that a 'where' search psMetadata is constructed from each object and
     
    916919 */
    917920
    918 bool pzPendingExpDeleteObject(
    919     psDB            *dbh,               ///< Database handle
    920     const pzPendingExpRow *object    ///< Object to delete
     921bool pzDownloadExpDeleteObject(
     922    psDB            *dbh,               ///< Database handle
     923    const pzDownloadExpRow *object    ///< Object to delete
    921924);
    922925/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     
    928931 */
    929932
    930 long long pzPendingExpDeleteRowObjects(
     933long long pzDownloadExpDeleteRowObjects(
    931934    psDB            *dbh,               ///< Database handle
    932935    const psArray   *objects,           ///< Array of objects to delete
    933936    unsigned long long limit            ///< Maximum number of elements to delete
    934937);
    935 /** Formats and prints an array of pzPendingExpRow objects
     938/** Formats and prints an array of pzDownloadExpRow objects
    936939 *
    937940 * When mdcf is set the formated output is in psMetadataConfig
     
    941944 */
    942945
    943 bool pzPendingExpPrintObjects(
     946bool pzDownloadExpPrintObjects(
    944947    FILE            *stream,            ///< a stream
    945     psArray         *objects,           ///< An array of pzPendingExpRow objects
     948    psArray         *objects,           ///< An array of pzDownloadExpRow objects
    946949    bool            mdcf                ///< format as mdconfig or simple
    947950);
    948 /** Formats and prints an pzPendingExpRow object
     951/** Formats and prints an pzDownloadExpRow object
    949952 *
    950953 * When mdcf is set the formated output is in psMetadataConfig
     
    954957 */
    955958
    956 bool pzPendingExpPrintObject(
     959bool pzDownloadExpPrintObject(
    957960    FILE            *stream,            ///< a stream
    958     pzPendingExpRow *object,    ///< an pzPendingExpRow object
     961    pzDownloadExpRow *object,    ///< an pzDownloadExpRow object
    959962    bool            mdcf                ///< format as mdconfig or simple
    960963);
    961 /** pzPendingImfileRow data structure
    962  *
    963  * Structure for representing a single row of pzPendingImfile table data.
    964  */
    965 
    966 typedef struct {
    967     char            *exp_name;
    968     char            *camera;
    969     char            *telescope;
    970     char            *class;
    971     char            *class_id;
    972 } pzPendingImfileRow;
    973 
    974 /** Creates a new pzPendingImfileRow object
    975  *
    976  *  @return A new pzPendingImfileRow object or NULL on failure.
    977  */
    978 
    979 pzPendingImfileRow *pzPendingImfileRowAlloc(
    980     const char      *exp_name,
    981     const char      *camera,
    982     const char      *telescope,
    983     const char      *class,
    984     const char      *class_id
    985 );
    986 
    987 /** Creates a new pzPendingImfile table
    988  *
    989  * @return true on success
    990  */
    991 
    992 bool pzPendingImfileCreateTable(
    993     psDB            *dbh                ///< Database handle
    994 );
    995 
    996 /** Deletes a pzPendingImfile table
    997  *
    998  * @return true on success
    999  */
    1000 
    1001 bool pzPendingImfileDropTable(
    1002     psDB            *dbh                ///< Database handle
    1003 );
    1004 
    1005 /** Insert a single row into a table
    1006  *
    1007  * This function constructs and inserts a single row based on it's parameters.
    1008  *
    1009  * @return true on success
    1010  */
    1011 
    1012 bool pzPendingImfileInsert(
    1013     psDB            *dbh,               ///< Database handle
    1014     const char      *exp_name,
    1015     const char      *camera,
    1016     const char      *telescope,
    1017     const char      *class,
    1018     const char      *class_id
    1019 );
    1020 
    1021 /** Deletes up to limit rows from the database and returns the number of rows actually deleted.
    1022  *
    1023  * @return A The number of rows removed or a negative value on error
    1024  */
    1025 
    1026 long long pzPendingImfileDelete(
    1027     psDB            *dbh,               ///< Database handle
    1028     const psMetadata *where,            ///< Row match criteria
    1029     unsigned long long limit            ///< Maximum number of elements to delete
    1030 );
    1031 
    1032 /** Insert a single pzPendingImfileRow object into a table
    1033  *
    1034  * This function constructs and inserts a single row based on it's parameters.
    1035  *
    1036  * @return true on success
    1037  */
    1038 
    1039 bool pzPendingImfileInsertObject(
    1040     psDB            *dbh,               ///< Database handle
    1041     pzPendingImfileRow *object             ///< pzPendingImfileRow object
    1042 );
    1043 
    1044 /** Insert an array of pzPendingImfileRow object into a table
    1045  *
    1046  * This function constructs and inserts multiple rows based on it's parameters.
    1047  *
    1048  * @return true on success
    1049  */
    1050 
    1051 bool pzPendingImfileInsertObjects(
    1052     psDB            *dbh,               ///< Database handle
    1053     psArray         *objects            ///< array of pzPendingImfileRow objects
    1054 );
    1055 
    1056 /** Insert data from a binary FITS table pzPendingImfileRow into the database
    1057  *
    1058  * This function expects a psFits object with a FITS table as the first
    1059  * extension.  The table must have at least one row of data in it, that is of
    1060  * the appropriate format (number of columns and their type).  All other
    1061  * extensions are ignored.
    1062  *
    1063  * @return true on success
    1064  */
    1065 
    1066 bool pzPendingImfileInsertFits(
    1067     psDB            *dbh,               ///< Database handle
    1068     const psFits    *fits               ///< psFits object
    1069 );
    1070 
    1071 /** Selects up to limit from the database and returns them in a binary FITS table
    1072  *
    1073  * This function assumes an empty psFits object and will create a FITS table
    1074  * as the first extension.
    1075  *
    1076  *  See psDBSelectRows() for documentation on the format of where.
    1077  *
    1078  * @return true on success
    1079  */
    1080 
    1081 bool pzPendingImfileSelectRowsFits(
    1082     psDB            *dbh,               ///< Database handle
    1083     psFits          *fits,              ///< psFits object
    1084     const psMetadata *where,            ///< Row match criteria
    1085     unsigned long long limit            ///< Maximum number of elements to return
    1086 );
    1087 
    1088 /** Convert a pzPendingImfileRow into an equivalent psMetadata
    1089  *
    1090  * @return A psMetadata pointer or NULL on error
    1091  */
    1092 
    1093 psMetadata *pzPendingImfileMetadataFromObject(
    1094     const pzPendingImfileRow *object             ///< fooRow to convert into a psMetadata
    1095 );
    1096 
    1097 /** Convert a psMetadata into an equivalent fooRow
    1098  *
    1099  * @return A pzPendingImfileRow pointer or NULL on error
    1100  */
    1101 
    1102 pzPendingImfileRow *pzPendingImfileObjectFromMetadata(
    1103     psMetadata      *md                 ///< psMetadata to convert into a fooRow
    1104 );
    1105 /** Selects up to limit rows from the database and returns as pzPendingImfileRow objects in a psArray
    1106  *
    1107  *  See psDBSelectRows() for documentation on the format of where.
    1108  *
    1109  * @return A psArray pointer or NULL on error
    1110  */
    1111 
    1112 psArray *pzPendingImfileSelectRowObjects(
    1113     psDB            *dbh,               ///< Database handle
    1114     const psMetadata *where,            ///< Row match criteria
    1115     unsigned long long limit            ///< Maximum number of elements to return
    1116 );
    1117 /** Deletes a row from the database coresponding to an pzPendingImfile
    1118  *
    1119  *  Note that a 'where' search psMetadata is constructed from each object and
    1120  *  used to find rows to delete.
    1121  *
    1122  * @return A The number of rows removed or a negative value on error
    1123  */
    1124 
    1125 bool pzPendingImfileDeleteObject(
    1126     psDB            *dbh,               ///< Database handle
    1127     const pzPendingImfileRow *object    ///< Object to delete
    1128 );
    1129 /** Deletes up to limit rows from the database and returns the number of rows actually deleted.
    1130  *
    1131  *  Note that a 'where' search psMetadata is constructed from each object and
    1132  *  used to find rows to delete.
    1133  *
    1134  * @return A The number of rows removed or a negative value on error
    1135  */
    1136 
    1137 long long pzPendingImfileDeleteRowObjects(
    1138     psDB            *dbh,               ///< Database handle
    1139     const psArray   *objects,           ///< Array of objects to delete
    1140     unsigned long long limit            ///< Maximum number of elements to delete
    1141 );
    1142 /** Formats and prints an array of pzPendingImfileRow objects
    1143  *
    1144  * When mdcf is set the formated output is in psMetadataConfig
    1145  * format, otherwise it is in a simple tabular format.
    1146  *
    1147  * @return true on success
    1148  */
    1149 
    1150 bool pzPendingImfilePrintObjects(
    1151     FILE            *stream,            ///< a stream
    1152     psArray         *objects,           ///< An array of pzPendingImfileRow objects
    1153     bool            mdcf                ///< format as mdconfig or simple
    1154 );
    1155 /** Formats and prints an pzPendingImfileRow object
    1156  *
    1157  * When mdcf is set the formated output is in psMetadataConfig
    1158  * format, otherwise it is in a simple tabular format.
    1159  *
    1160  * @return true on success
    1161  */
    1162 
    1163 bool pzPendingImfilePrintObject(
    1164     FILE            *stream,            ///< a stream
    1165     pzPendingImfileRow *object,    ///< an pzPendingImfileRow object
    1166     bool            mdcf                ///< format as mdconfig or simple
    1167 );
    1168 /** pzDoneExpRow data structure
    1169  *
    1170  * Structure for representing a single row of pzDoneExp table data.
    1171  */
    1172 
    1173 typedef struct {
    1174     char            *exp_name;
    1175     char            *camera;
    1176     char            *telescope;
    1177 } pzDoneExpRow;
    1178 
    1179 /** Creates a new pzDoneExpRow object
    1180  *
    1181  *  @return A new pzDoneExpRow object or NULL on failure.
    1182  */
    1183 
    1184 pzDoneExpRow *pzDoneExpRowAlloc(
    1185     const char      *exp_name,
    1186     const char      *camera,
    1187     const char      *telescope
    1188 );
    1189 
    1190 /** Creates a new pzDoneExp table
    1191  *
    1192  * @return true on success
    1193  */
    1194 
    1195 bool pzDoneExpCreateTable(
    1196     psDB            *dbh                ///< Database handle
    1197 );
    1198 
    1199 /** Deletes a pzDoneExp table
    1200  *
    1201  * @return true on success
    1202  */
    1203 
    1204 bool pzDoneExpDropTable(
    1205     psDB            *dbh                ///< Database handle
    1206 );
    1207 
    1208 /** Insert a single row into a table
    1209  *
    1210  * This function constructs and inserts a single row based on it's parameters.
    1211  *
    1212  * @return true on success
    1213  */
    1214 
    1215 bool pzDoneExpInsert(
    1216     psDB            *dbh,               ///< Database handle
    1217     const char      *exp_name,
    1218     const char      *camera,
    1219     const char      *telescope
    1220 );
    1221 
    1222 /** Deletes up to limit rows from the database and returns the number of rows actually deleted.
    1223  *
    1224  * @return A The number of rows removed or a negative value on error
    1225  */
    1226 
    1227 long long pzDoneExpDelete(
    1228     psDB            *dbh,               ///< Database handle
    1229     const psMetadata *where,            ///< Row match criteria
    1230     unsigned long long limit            ///< Maximum number of elements to delete
    1231 );
    1232 
    1233 /** Insert a single pzDoneExpRow object into a table
    1234  *
    1235  * This function constructs and inserts a single row based on it's parameters.
    1236  *
    1237  * @return true on success
    1238  */
    1239 
    1240 bool pzDoneExpInsertObject(
    1241     psDB            *dbh,               ///< Database handle
    1242     pzDoneExpRow    *object             ///< pzDoneExpRow object
    1243 );
    1244 
    1245 /** Insert an array of pzDoneExpRow object into a table
    1246  *
    1247  * This function constructs and inserts multiple rows based on it's parameters.
    1248  *
    1249  * @return true on success
    1250  */
    1251 
    1252 bool pzDoneExpInsertObjects(
    1253     psDB            *dbh,               ///< Database handle
    1254     psArray         *objects            ///< array of pzDoneExpRow objects
    1255 );
    1256 
    1257 /** Insert data from a binary FITS table pzDoneExpRow into the database
    1258  *
    1259  * This function expects a psFits object with a FITS table as the first
    1260  * extension.  The table must have at least one row of data in it, that is of
    1261  * the appropriate format (number of columns and their type).  All other
    1262  * extensions are ignored.
    1263  *
    1264  * @return true on success
    1265  */
    1266 
    1267 bool pzDoneExpInsertFits(
    1268     psDB            *dbh,               ///< Database handle
    1269     const psFits    *fits               ///< psFits object
    1270 );
    1271 
    1272 /** Selects up to limit from the database and returns them in a binary FITS table
    1273  *
    1274  * This function assumes an empty psFits object and will create a FITS table
    1275  * as the first extension.
    1276  *
    1277  *  See psDBSelectRows() for documentation on the format of where.
    1278  *
    1279  * @return true on success
    1280  */
    1281 
    1282 bool pzDoneExpSelectRowsFits(
    1283     psDB            *dbh,               ///< Database handle
    1284     psFits          *fits,              ///< psFits object
    1285     const psMetadata *where,            ///< Row match criteria
    1286     unsigned long long limit            ///< Maximum number of elements to return
    1287 );
    1288 
    1289 /** Convert a pzDoneExpRow into an equivalent psMetadata
    1290  *
    1291  * @return A psMetadata pointer or NULL on error
    1292  */
    1293 
    1294 psMetadata *pzDoneExpMetadataFromObject(
    1295     const pzDoneExpRow *object             ///< fooRow to convert into a psMetadata
    1296 );
    1297 
    1298 /** Convert a psMetadata into an equivalent fooRow
    1299  *
    1300  * @return A pzDoneExpRow pointer or NULL on error
    1301  */
    1302 
    1303 pzDoneExpRow *pzDoneExpObjectFromMetadata(
    1304     psMetadata      *md                 ///< psMetadata to convert into a fooRow
    1305 );
    1306 /** Selects up to limit rows from the database and returns as pzDoneExpRow objects in a psArray
    1307  *
    1308  *  See psDBSelectRows() for documentation on the format of where.
    1309  *
    1310  * @return A psArray pointer or NULL on error
    1311  */
    1312 
    1313 psArray *pzDoneExpSelectRowObjects(
    1314     psDB            *dbh,               ///< Database handle
    1315     const psMetadata *where,            ///< Row match criteria
    1316     unsigned long long limit            ///< Maximum number of elements to return
    1317 );
    1318 /** Deletes a row from the database coresponding to an pzDoneExp
    1319  *
    1320  *  Note that a 'where' search psMetadata is constructed from each object and
    1321  *  used to find rows to delete.
    1322  *
    1323  * @return A The number of rows removed or a negative value on error
    1324  */
    1325 
    1326 bool pzDoneExpDeleteObject(
    1327     psDB            *dbh,               ///< Database handle
    1328     const pzDoneExpRow *object    ///< Object to delete
    1329 );
    1330 /** Deletes up to limit rows from the database and returns the number of rows actually deleted.
    1331  *
    1332  *  Note that a 'where' search psMetadata is constructed from each object and
    1333  *  used to find rows to delete.
    1334  *
    1335  * @return A The number of rows removed or a negative value on error
    1336  */
    1337 
    1338 long long pzDoneExpDeleteRowObjects(
    1339     psDB            *dbh,               ///< Database handle
    1340     const psArray   *objects,           ///< Array of objects to delete
    1341     unsigned long long limit            ///< Maximum number of elements to delete
    1342 );
    1343 /** Formats and prints an array of pzDoneExpRow objects
    1344  *
    1345  * When mdcf is set the formated output is in psMetadataConfig
    1346  * format, otherwise it is in a simple tabular format.
    1347  *
    1348  * @return true on success
    1349  */
    1350 
    1351 bool pzDoneExpPrintObjects(
    1352     FILE            *stream,            ///< a stream
    1353     psArray         *objects,           ///< An array of pzDoneExpRow objects
    1354     bool            mdcf                ///< format as mdconfig or simple
    1355 );
    1356 /** Formats and prints an pzDoneExpRow object
    1357  *
    1358  * When mdcf is set the formated output is in psMetadataConfig
    1359  * format, otherwise it is in a simple tabular format.
    1360  *
    1361  * @return true on success
    1362  */
    1363 
    1364 bool pzDoneExpPrintObject(
    1365     FILE            *stream,            ///< a stream
    1366     pzDoneExpRow *object,    ///< an pzDoneExpRow object
    1367     bool            mdcf                ///< format as mdconfig or simple
    1368 );
    1369 /** pzDoneImfileRow data structure
    1370  *
    1371  * Structure for representing a single row of pzDoneImfile table data.
     964/** pzDownloadImfileRow data structure
     965 *
     966 * Structure for representing a single row of pzDownloadImfile table data.
    1372967 */
    1373968
     
    1379974    char            *class_id;
    1380975    char            *uri;
    1381 } pzDoneImfileRow;
    1382 
    1383 /** Creates a new pzDoneImfileRow object
    1384  *
    1385  *  @return A new pzDoneImfileRow object or NULL on failure.
    1386  */
    1387 
    1388 pzDoneImfileRow *pzDoneImfileRowAlloc(
     976    psS16           fault;
     977} pzDownloadImfileRow;
     978
     979/** Creates a new pzDownloadImfileRow object
     980 *
     981 *  @return A new pzDownloadImfileRow object or NULL on failure.
     982 */
     983
     984pzDownloadImfileRow *pzDownloadImfileRowAlloc(
    1389985    const char      *exp_name,
    1390986    const char      *camera,
     
    1392988    const char      *class,
    1393989    const char      *class_id,
    1394     const char      *uri
    1395 );
    1396 
    1397 /** Creates a new pzDoneImfile table
    1398  *
    1399  * @return true on success
    1400  */
    1401 
    1402 bool pzDoneImfileCreateTable(
     990    const char      *uri,
     991    psS16           fault
     992);
     993
     994/** Creates a new pzDownloadImfile table
     995 *
     996 * @return true on success
     997 */
     998
     999bool pzDownloadImfileCreateTable(
    14031000    psDB            *dbh                ///< Database handle
    14041001);
    14051002
    1406 /** Deletes a pzDoneImfile table
    1407  *
    1408  * @return true on success
    1409  */
    1410 
    1411 bool pzDoneImfileDropTable(
     1003/** Deletes a pzDownloadImfile table
     1004 *
     1005 * @return true on success
     1006 */
     1007
     1008bool pzDownloadImfileDropTable(
    14121009    psDB            *dbh                ///< Database handle
    14131010);
     
    14201017 */
    14211018
    1422 bool pzDoneImfileInsert(
     1019bool pzDownloadImfileInsert(
    14231020    psDB            *dbh,               ///< Database handle
    14241021    const char      *exp_name,
     
    14271024    const char      *class,
    14281025    const char      *class_id,
    1429     const char      *uri
     1026    const char      *uri,
     1027    psS16           fault
    14301028);
    14311029
     
    14351033 */
    14361034
    1437 long long pzDoneImfileDelete(
     1035long long pzDownloadImfileDelete(
    14381036    psDB            *dbh,               ///< Database handle
    14391037    const psMetadata *where,            ///< Row match criteria
     
    14411039);
    14421040
    1443 /** Insert a single pzDoneImfileRow object into a table
     1041/** Insert a single pzDownloadImfileRow object into a table
    14441042 *
    14451043 * This function constructs and inserts a single row based on it's parameters.
     
    14481046 */
    14491047
    1450 bool pzDoneImfileInsertObject(
    1451     psDB            *dbh,               ///< Database handle
    1452     pzDoneImfileRow *object             ///< pzDoneImfileRow object
    1453 );
    1454 
    1455 /** Insert an array of pzDoneImfileRow object into a table
     1048bool pzDownloadImfileInsertObject(
     1049    psDB            *dbh,               ///< Database handle
     1050    pzDownloadImfileRow *object             ///< pzDownloadImfileRow object
     1051);
     1052
     1053/** Insert an array of pzDownloadImfileRow object into a table
    14561054 *
    14571055 * This function constructs and inserts multiple rows based on it's parameters.
     
    14601058 */
    14611059
    1462 bool pzDoneImfileInsertObjects(
    1463     psDB            *dbh,               ///< Database handle
    1464     psArray         *objects            ///< array of pzDoneImfileRow objects
    1465 );
    1466 
    1467 /** Insert data from a binary FITS table pzDoneImfileRow into the database
     1060bool pzDownloadImfileInsertObjects(
     1061    psDB            *dbh,               ///< Database handle
     1062    psArray         *objects            ///< array of pzDownloadImfileRow objects
     1063);
     1064
     1065/** Insert data from a binary FITS table pzDownloadImfileRow into the database
    14681066 *
    14691067 * This function expects a psFits object with a FITS table as the first
     
    14751073 */
    14761074
    1477 bool pzDoneImfileInsertFits(
     1075bool pzDownloadImfileInsertFits(
    14781076    psDB            *dbh,               ///< Database handle
    14791077    const psFits    *fits               ///< psFits object
     
    14901088 */
    14911089
    1492 bool pzDoneImfileSelectRowsFits(
     1090bool pzDownloadImfileSelectRowsFits(
    14931091    psDB            *dbh,               ///< Database handle
    14941092    psFits          *fits,              ///< psFits object
     
    14971095);
    14981096
    1499 /** Convert a pzDoneImfileRow into an equivalent psMetadata
     1097/** Convert a pzDownloadImfileRow into an equivalent psMetadata
    15001098 *
    15011099 * @return A psMetadata pointer or NULL on error
    15021100 */
    15031101
    1504 psMetadata *pzDoneImfileMetadataFromObject(
    1505     const pzDoneImfileRow *object             ///< fooRow to convert into a psMetadata
     1102psMetadata *pzDownloadImfileMetadataFromObject(
     1103    const pzDownloadImfileRow *object             ///< fooRow to convert into a psMetadata
    15061104);
    15071105
    15081106/** Convert a psMetadata into an equivalent fooRow
    15091107 *
    1510  * @return A pzDoneImfileRow pointer or NULL on error
    1511  */
    1512 
    1513 pzDoneImfileRow *pzDoneImfileObjectFromMetadata(
     1108 * @return A pzDownloadImfileRow pointer or NULL on error
     1109 */
     1110
     1111pzDownloadImfileRow *pzDownloadImfileObjectFromMetadata(
    15141112    psMetadata      *md                 ///< psMetadata to convert into a fooRow
    15151113);
    1516 /** Selects up to limit rows from the database and returns as pzDoneImfileRow objects in a psArray
     1114/** Selects up to limit rows from the database and returns as pzDownloadImfileRow objects in a psArray
    15171115 *
    15181116 *  See psDBSelectRows() for documentation on the format of where.
     
    15211119 */
    15221120
    1523 psArray *pzDoneImfileSelectRowObjects(
     1121psArray *pzDownloadImfileSelectRowObjects(
    15241122    psDB            *dbh,               ///< Database handle
    15251123    const psMetadata *where,            ///< Row match criteria
    15261124    unsigned long long limit            ///< Maximum number of elements to return
    15271125);
    1528 /** Deletes a row from the database coresponding to an pzDoneImfile
     1126/** Deletes a row from the database coresponding to an pzDownloadImfile
    15291127 *
    15301128 *  Note that a 'where' search psMetadata is constructed from each object and
     
    15341132 */
    15351133
    1536 bool pzDoneImfileDeleteObject(
    1537     psDB            *dbh,               ///< Database handle
    1538     const pzDoneImfileRow *object    ///< Object to delete
     1134bool pzDownloadImfileDeleteObject(
     1135    psDB            *dbh,               ///< Database handle
     1136    const pzDownloadImfileRow *object    ///< Object to delete
    15391137);
    15401138/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     
    15461144 */
    15471145
    1548 long long pzDoneImfileDeleteRowObjects(
     1146long long pzDownloadImfileDeleteRowObjects(
    15491147    psDB            *dbh,               ///< Database handle
    15501148    const psArray   *objects,           ///< Array of objects to delete
    15511149    unsigned long long limit            ///< Maximum number of elements to delete
    15521150);
    1553 /** Formats and prints an array of pzDoneImfileRow objects
     1151/** Formats and prints an array of pzDownloadImfileRow objects
    15541152 *
    15551153 * When mdcf is set the formated output is in psMetadataConfig
     
    15591157 */
    15601158
    1561 bool pzDoneImfilePrintObjects(
     1159bool pzDownloadImfilePrintObjects(
    15621160    FILE            *stream,            ///< a stream
    1563     psArray         *objects,           ///< An array of pzDoneImfileRow objects
     1161    psArray         *objects,           ///< An array of pzDownloadImfileRow objects
    15641162    bool            mdcf                ///< format as mdconfig or simple
    15651163);
    1566 /** Formats and prints an pzDoneImfileRow object
     1164/** Formats and prints an pzDownloadImfileRow object
    15671165 *
    15681166 * When mdcf is set the formated output is in psMetadataConfig
     
    15721170 */
    15731171
    1574 bool pzDoneImfilePrintObject(
     1172bool pzDownloadImfilePrintObject(
    15751173    FILE            *stream,            ///< a stream
    1576     pzDoneImfileRow *object,    ///< an pzDoneImfileRow object
     1174    pzDownloadImfileRow *object,    ///< an pzDownloadImfileRow object
    15771175    bool            mdcf                ///< format as mdconfig or simple
    15781176);
     
    15941192    char            *tess_id;
    15951193    char            *end_stage;
     1194    char            *label;
    15961195} newExpRow;
    15971196
     
    16121211    const char      *dvodb,
    16131212    const char      *tess_id,
    1614     const char      *end_stage
     1213    const char      *end_stage,
     1214    const char      *label
    16151215);
    16161216
     
    16521252    const char      *dvodb,
    16531253    const char      *tess_id,
    1654     const char      *end_stage
     1254    const char      *end_stage,
     1255    const char      *label
    16551256);
    16561257
     
    31592760    psF32           ap_resid;
    31602761    psF32           ap_resid_stdev;
    3161     psF32           fwhm;
    3162     psF32           fwhm_range;
     2762    psF32           zp_mean;
     2763    psF32           zp_stdev;
     2764    psF32           fwhm_major;
     2765    psF32           fwhm_minor;
     2766    psF32           dtime_detrend;
     2767    psF32           dtime_photom;
     2768    psF32           dtime_astrom;
     2769    char            *hostname;
    31632770    psS32           n_stars;
    31642771    psS32           n_extended;
     
    31912798    psF32           ap_resid,
    31922799    psF32           ap_resid_stdev,
    3193     psF32           fwhm,
    3194     psF32           fwhm_range,
     2800    psF32           zp_mean,
     2801    psF32           zp_stdev,
     2802    psF32           fwhm_major,
     2803    psF32           fwhm_minor,
     2804    psF32           dtime_detrend,
     2805    psF32           dtime_photom,
     2806    psF32           dtime_astrom,
     2807    const char      *hostname,
    31952808    psS32           n_stars,
    31962809    psS32           n_extended,
     
    32442857    psF32           ap_resid,
    32452858    psF32           ap_resid_stdev,
    3246     psF32           fwhm,
    3247     psF32           fwhm_range,
     2859    psF32           zp_mean,
     2860    psF32           zp_stdev,
     2861    psF32           fwhm_major,
     2862    psF32           fwhm_minor,
     2863    psF32           dtime_detrend,
     2864    psF32           dtime_photom,
     2865    psF32           dtime_astrom,
     2866    const char      *hostname,
    32482867    psS32           n_stars,
    32492868    psS32           n_extended,
     
    38333452    psF32           bg_stdev;
    38343453    psF32           bg_mean_stdev;
     3454    psF32           bias;
     3455    psF32           bias_stdev;
     3456    psF32           fringe_0;
     3457    psF32           fringe_1;
     3458    psF32           fringe_2;
    38353459    psF32           sigma_ra;
    38363460    psF32           sigma_dec;
     3461    psF32           ap_resid;
     3462    psF32           ap_resid_stdev;
    38373463    psF32           zp_mean;
    38383464    psF32           zp_stdev;
    3839     psF32           fwhm;
    3840     psF32           fwhm_range;
     3465    psF32           fwhm_major;
     3466    psF32           fwhm_minor;
     3467    psF32           dtime_detrend;
     3468    psF32           dtime_photom;
     3469    psF32           dtime_astrom;
     3470    char            *hostname;
    38413471    psS32           n_stars;
    38423472    psS32           n_extended;
     
    38593489    psF32           bg_stdev,
    38603490    psF32           bg_mean_stdev,
     3491    psF32           bias,
     3492    psF32           bias_stdev,
     3493    psF32           fringe_0,
     3494    psF32           fringe_1,
     3495    psF32           fringe_2,
    38613496    psF32           sigma_ra,
    38623497    psF32           sigma_dec,
     3498    psF32           ap_resid,
     3499    psF32           ap_resid_stdev,
    38633500    psF32           zp_mean,
    38643501    psF32           zp_stdev,
    3865     psF32           fwhm,
    3866     psF32           fwhm_range,
     3502    psF32           fwhm_major,
     3503    psF32           fwhm_minor,
     3504    psF32           dtime_detrend,
     3505    psF32           dtime_photom,
     3506    psF32           dtime_astrom,
     3507    const char      *hostname,
    38673508    psS32           n_stars,
    38683509    psS32           n_extended,
     
    39063547    psF32           bg_stdev,
    39073548    psF32           bg_mean_stdev,
     3549    psF32           bias,
     3550    psF32           bias_stdev,
     3551    psF32           fringe_0,
     3552    psF32           fringe_1,
     3553    psF32           fringe_2,
    39083554    psF32           sigma_ra,
    39093555    psF32           sigma_dec,
     3556    psF32           ap_resid,
     3557    psF32           ap_resid_stdev,
    39103558    psF32           zp_mean,
    39113559    psF32           zp_stdev,
    3912     psF32           fwhm,
    3913     psF32           fwhm_range,
     3560    psF32           fwhm_major,
     3561    psF32           fwhm_minor,
     3562    psF32           dtime_detrend,
     3563    psF32           dtime_photom,
     3564    psF32           dtime_astrom,
     3565    const char      *hostname,
    39143566    psS32           n_stars,
    39153567    psS32           n_extended,
     
    49054557    psF64           bg;
    49064558    psF64           bg_stdev;
    4907     psF64           good_frac;
     4559    psF32           dtime_warp;
     4560    char            *hostname;
     4561    psF32           good_frac;
    49084562    bool            ignored;
    49094563    psS16           fault;
     
    49234577    psF64           bg,
    49244578    psF64           bg_stdev,
    4925     psF64           good_frac,
     4579    psF32           dtime_warp,
     4580    const char      *hostname,
     4581    psF32           good_frac,
    49264582    bool            ignored,
    49274583    psS16           fault
     
    49624618    psF64           bg,
    49634619    psF64           bg_stdev,
    4964     psF64           good_frac,
     4620    psF32           dtime_warp,
     4621    const char      *hostname,
     4622    psF32           good_frac,
    49654623    bool            ignored,
    49664624    psS16           fault
     
    55515209    psF64           bg;
    55525210    psF64           bg_stdev;
    5553     psF64           good_frac;
     5211    psF32           dtime_diff;
     5212    char            *hostname;
     5213    psF32           good_frac;
    55545214    psS16           fault;
    55555215} diffSkyfileRow;
     
    55665226    psF64           bg,
    55675227    psF64           bg_stdev,
    5568     psF64           good_frac,
     5228    psF32           dtime_diff,
     5229    const char      *hostname,
     5230    psF32           good_frac,
    55695231    psS16           fault
    55705232);
     
    56025264    psF64           bg,
    56035265    psF64           bg_stdev,
    5604     psF64           good_frac,
     5266    psF32           dtime_diff,
     5267    const char      *hostname,
     5268    psF32           good_frac,
    56055269    psS16           fault
    56065270);
     
    61755839    psF64           bg;
    61765840    psF64           bg_stdev;
    6177     psF64           good_frac;
     5841    psF32           dtime_stack;
     5842    char            *hostname;
     5843    psF32           good_frac;
    61785844    psS16           fault;
    61795845} stackSumSkyfileRow;
     
    61905856    psF64           bg,
    61915857    psF64           bg_stdev,
    6192     psF64           good_frac,
     5858    psF32           dtime_stack,
     5859    const char      *hostname,
     5860    psF32           good_frac,
    61935861    psS16           fault
    61945862);
     
    62265894    psF64           bg,
    62275895    psF64           bg_stdev,
    6228     psF64           good_frac,
     5896    psF32           dtime_stack,
     5897    const char      *hostname,
     5898    psF32           good_frac,
    62295899    psS16           fault
    62305900);
     
    1087810548typedef struct {
    1087910549    psS64           cal_id;
    10880     char            *catdir;
     10550    char            *dvodb;
    1088110551    char            *state;
    1088210552} calDBRow;
     
    1088910559calDBRow *calDBRowAlloc(
    1089010560    psS64           cal_id,
    10891     const char      *catdir,
     10561    const char      *dvodb,
    1089210562    const char      *state
    1089310563);
     
    1092110591    psDB            *dbh,               ///< Database handle
    1092210592    psS64           cal_id,
    10923     const char      *catdir,
     10593    const char      *dvodb,
    1092410594    const char      *state
    1092510595);
     
    1128410954    psS64           corr_id;
    1128510955    char            *dvodb;
     10956    char            *filter;
    1128610957    char            *state;
    1128710958    char            *workdir;
     
    1129810969    psS64           corr_id,
    1129910970    const char      *dvodb,
     10971    const char      *filter,
    1130010972    const char      *state,
    1130110973    const char      *workdir,
     
    1133311005    psS64           corr_id,
    1133411006    const char      *dvodb,
     11007    const char      *filter,
    1133511008    const char      *state,
    1133611009    const char      *workdir,
     
    1168411357    bool            mdcf                ///< format as mdconfig or simple
    1168511358);
     11359/** pstampDataStoreRow data structure
     11360 *
     11361 * Structure for representing a single row of pstampDataStore table data.
     11362 */
     11363
     11364typedef struct {
     11365    psS64           ds_id;
     11366    char            *uri;
     11367    char            *lastFileset;
     11368    char            *state;
     11369} pstampDataStoreRow;
     11370
     11371/** Creates a new pstampDataStoreRow object
     11372 *
     11373 *  @return A new pstampDataStoreRow object or NULL on failure.
     11374 */
     11375
     11376pstampDataStoreRow *pstampDataStoreRowAlloc(
     11377    psS64           ds_id,
     11378    const char      *uri,
     11379    const char      *lastFileset,
     11380    const char      *state
     11381);
     11382
     11383/** Creates a new pstampDataStore table
     11384 *
     11385 * @return true on success
     11386 */
     11387
     11388bool pstampDataStoreCreateTable(
     11389    psDB            *dbh                ///< Database handle
     11390);
     11391
     11392/** Deletes a pstampDataStore table
     11393 *
     11394 * @return true on success
     11395 */
     11396
     11397bool pstampDataStoreDropTable(
     11398    psDB            *dbh                ///< Database handle
     11399);
     11400
     11401/** Insert a single row into a table
     11402 *
     11403 * This function constructs and inserts a single row based on it's parameters.
     11404 *
     11405 * @return true on success
     11406 */
     11407
     11408bool pstampDataStoreInsert(
     11409    psDB            *dbh,               ///< Database handle
     11410    psS64           ds_id,
     11411    const char      *uri,
     11412    const char      *lastFileset,
     11413    const char      *state
     11414);
     11415
     11416/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     11417 *
     11418 * @return A The number of rows removed or a negative value on error
     11419 */
     11420
     11421long long pstampDataStoreDelete(
     11422    psDB            *dbh,               ///< Database handle
     11423    const psMetadata *where,            ///< Row match criteria
     11424    unsigned long long limit            ///< Maximum number of elements to delete
     11425);
     11426
     11427/** Insert a single pstampDataStoreRow object into a table
     11428 *
     11429 * This function constructs and inserts a single row based on it's parameters.
     11430 *
     11431 * @return true on success
     11432 */
     11433
     11434bool pstampDataStoreInsertObject(
     11435    psDB            *dbh,               ///< Database handle
     11436    pstampDataStoreRow *object             ///< pstampDataStoreRow object
     11437);
     11438
     11439/** Insert an array of pstampDataStoreRow object into a table
     11440 *
     11441 * This function constructs and inserts multiple rows based on it's parameters.
     11442 *
     11443 * @return true on success
     11444 */
     11445
     11446bool pstampDataStoreInsertObjects(
     11447    psDB            *dbh,               ///< Database handle
     11448    psArray         *objects            ///< array of pstampDataStoreRow objects
     11449);
     11450
     11451/** Insert data from a binary FITS table pstampDataStoreRow into the database
     11452 *
     11453 * This function expects a psFits object with a FITS table as the first
     11454 * extension.  The table must have at least one row of data in it, that is of
     11455 * the appropriate format (number of columns and their type).  All other
     11456 * extensions are ignored.
     11457 *
     11458 * @return true on success
     11459 */
     11460
     11461bool pstampDataStoreInsertFits(
     11462    psDB            *dbh,               ///< Database handle
     11463    const psFits    *fits               ///< psFits object
     11464);
     11465
     11466/** Selects up to limit from the database and returns them in a binary FITS table
     11467 *
     11468 * This function assumes an empty psFits object and will create a FITS table
     11469 * as the first extension.
     11470 *
     11471 *  See psDBSelectRows() for documentation on the format of where.
     11472 *
     11473 * @return true on success
     11474 */
     11475
     11476bool pstampDataStoreSelectRowsFits(
     11477    psDB            *dbh,               ///< Database handle
     11478    psFits          *fits,              ///< psFits object
     11479    const psMetadata *where,            ///< Row match criteria
     11480    unsigned long long limit            ///< Maximum number of elements to return
     11481);
     11482
     11483/** Convert a pstampDataStoreRow into an equivalent psMetadata
     11484 *
     11485 * @return A psMetadata pointer or NULL on error
     11486 */
     11487
     11488psMetadata *pstampDataStoreMetadataFromObject(
     11489    const pstampDataStoreRow *object             ///< fooRow to convert into a psMetadata
     11490);
     11491
     11492/** Convert a psMetadata into an equivalent fooRow
     11493 *
     11494 * @return A pstampDataStoreRow pointer or NULL on error
     11495 */
     11496
     11497pstampDataStoreRow *pstampDataStoreObjectFromMetadata(
     11498    psMetadata      *md                 ///< psMetadata to convert into a fooRow
     11499);
     11500/** Selects up to limit rows from the database and returns as pstampDataStoreRow objects in a psArray
     11501 *
     11502 *  See psDBSelectRows() for documentation on the format of where.
     11503 *
     11504 * @return A psArray pointer or NULL on error
     11505 */
     11506
     11507psArray *pstampDataStoreSelectRowObjects(
     11508    psDB            *dbh,               ///< Database handle
     11509    const psMetadata *where,            ///< Row match criteria
     11510    unsigned long long limit            ///< Maximum number of elements to return
     11511);
     11512/** Deletes a row from the database coresponding to an pstampDataStore
     11513 *
     11514 *  Note that a 'where' search psMetadata is constructed from each object and
     11515 *  used to find rows to delete.
     11516 *
     11517 * @return A The number of rows removed or a negative value on error
     11518 */
     11519
     11520bool pstampDataStoreDeleteObject(
     11521    psDB            *dbh,               ///< Database handle
     11522    const pstampDataStoreRow *object    ///< Object to delete
     11523);
     11524/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     11525 *
     11526 *  Note that a 'where' search psMetadata is constructed from each object and
     11527 *  used to find rows to delete.
     11528 *
     11529 * @return A The number of rows removed or a negative value on error
     11530 */
     11531
     11532long long pstampDataStoreDeleteRowObjects(
     11533    psDB            *dbh,               ///< Database handle
     11534    const psArray   *objects,           ///< Array of objects to delete
     11535    unsigned long long limit            ///< Maximum number of elements to delete
     11536);
     11537/** Formats and prints an array of pstampDataStoreRow objects
     11538 *
     11539 * When mdcf is set the formated output is in psMetadataConfig
     11540 * format, otherwise it is in a simple tabular format.
     11541 *
     11542 * @return true on success
     11543 */
     11544
     11545bool pstampDataStorePrintObjects(
     11546    FILE            *stream,            ///< a stream
     11547    psArray         *objects,           ///< An array of pstampDataStoreRow objects
     11548    bool            mdcf                ///< format as mdconfig or simple
     11549);
     11550/** Formats and prints an pstampDataStoreRow object
     11551 *
     11552 * When mdcf is set the formated output is in psMetadataConfig
     11553 * format, otherwise it is in a simple tabular format.
     11554 *
     11555 * @return true on success
     11556 */
     11557
     11558bool pstampDataStorePrintObject(
     11559    FILE            *stream,            ///< a stream
     11560    pstampDataStoreRow *object,    ///< an pstampDataStoreRow object
     11561    bool            mdcf                ///< format as mdconfig or simple
     11562);
     11563/** pstampRequestRow data structure
     11564 *
     11565 * Structure for representing a single row of pstampRequest table data.
     11566 */
     11567
     11568typedef struct {
     11569    psS64           req_id;
     11570    psS64           ds_id;
     11571    char            *state;
     11572    char            *uri;
     11573} pstampRequestRow;
     11574
     11575/** Creates a new pstampRequestRow object
     11576 *
     11577 *  @return A new pstampRequestRow object or NULL on failure.
     11578 */
     11579
     11580pstampRequestRow *pstampRequestRowAlloc(
     11581    psS64           req_id,
     11582    psS64           ds_id,
     11583    const char      *state,
     11584    const char      *uri
     11585);
     11586
     11587/** Creates a new pstampRequest table
     11588 *
     11589 * @return true on success
     11590 */
     11591
     11592bool pstampRequestCreateTable(
     11593    psDB            *dbh                ///< Database handle
     11594);
     11595
     11596/** Deletes a pstampRequest table
     11597 *
     11598 * @return true on success
     11599 */
     11600
     11601bool pstampRequestDropTable(
     11602    psDB            *dbh                ///< Database handle
     11603);
     11604
     11605/** Insert a single row into a table
     11606 *
     11607 * This function constructs and inserts a single row based on it's parameters.
     11608 *
     11609 * @return true on success
     11610 */
     11611
     11612bool pstampRequestInsert(
     11613    psDB            *dbh,               ///< Database handle
     11614    psS64           req_id,
     11615    psS64           ds_id,
     11616    const char      *state,
     11617    const char      *uri
     11618);
     11619
     11620/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     11621 *
     11622 * @return A The number of rows removed or a negative value on error
     11623 */
     11624
     11625long long pstampRequestDelete(
     11626    psDB            *dbh,               ///< Database handle
     11627    const psMetadata *where,            ///< Row match criteria
     11628    unsigned long long limit            ///< Maximum number of elements to delete
     11629);
     11630
     11631/** Insert a single pstampRequestRow object into a table
     11632 *
     11633 * This function constructs and inserts a single row based on it's parameters.
     11634 *
     11635 * @return true on success
     11636 */
     11637
     11638bool pstampRequestInsertObject(
     11639    psDB            *dbh,               ///< Database handle
     11640    pstampRequestRow *object             ///< pstampRequestRow object
     11641);
     11642
     11643/** Insert an array of pstampRequestRow object into a table
     11644 *
     11645 * This function constructs and inserts multiple rows based on it's parameters.
     11646 *
     11647 * @return true on success
     11648 */
     11649
     11650bool pstampRequestInsertObjects(
     11651    psDB            *dbh,               ///< Database handle
     11652    psArray         *objects            ///< array of pstampRequestRow objects
     11653);
     11654
     11655/** Insert data from a binary FITS table pstampRequestRow into the database
     11656 *
     11657 * This function expects a psFits object with a FITS table as the first
     11658 * extension.  The table must have at least one row of data in it, that is of
     11659 * the appropriate format (number of columns and their type).  All other
     11660 * extensions are ignored.
     11661 *
     11662 * @return true on success
     11663 */
     11664
     11665bool pstampRequestInsertFits(
     11666    psDB            *dbh,               ///< Database handle
     11667    const psFits    *fits               ///< psFits object
     11668);
     11669
     11670/** Selects up to limit from the database and returns them in a binary FITS table
     11671 *
     11672 * This function assumes an empty psFits object and will create a FITS table
     11673 * as the first extension.
     11674 *
     11675 *  See psDBSelectRows() for documentation on the format of where.
     11676 *
     11677 * @return true on success
     11678 */
     11679
     11680bool pstampRequestSelectRowsFits(
     11681    psDB            *dbh,               ///< Database handle
     11682    psFits          *fits,              ///< psFits object
     11683    const psMetadata *where,            ///< Row match criteria
     11684    unsigned long long limit            ///< Maximum number of elements to return
     11685);
     11686
     11687/** Convert a pstampRequestRow into an equivalent psMetadata
     11688 *
     11689 * @return A psMetadata pointer or NULL on error
     11690 */
     11691
     11692psMetadata *pstampRequestMetadataFromObject(
     11693    const pstampRequestRow *object             ///< fooRow to convert into a psMetadata
     11694);
     11695
     11696/** Convert a psMetadata into an equivalent fooRow
     11697 *
     11698 * @return A pstampRequestRow pointer or NULL on error
     11699 */
     11700
     11701pstampRequestRow *pstampRequestObjectFromMetadata(
     11702    psMetadata      *md                 ///< psMetadata to convert into a fooRow
     11703);
     11704/** Selects up to limit rows from the database and returns as pstampRequestRow objects in a psArray
     11705 *
     11706 *  See psDBSelectRows() for documentation on the format of where.
     11707 *
     11708 * @return A psArray pointer or NULL on error
     11709 */
     11710
     11711psArray *pstampRequestSelectRowObjects(
     11712    psDB            *dbh,               ///< Database handle
     11713    const psMetadata *where,            ///< Row match criteria
     11714    unsigned long long limit            ///< Maximum number of elements to return
     11715);
     11716/** Deletes a row from the database coresponding to an pstampRequest
     11717 *
     11718 *  Note that a 'where' search psMetadata is constructed from each object and
     11719 *  used to find rows to delete.
     11720 *
     11721 * @return A The number of rows removed or a negative value on error
     11722 */
     11723
     11724bool pstampRequestDeleteObject(
     11725    psDB            *dbh,               ///< Database handle
     11726    const pstampRequestRow *object    ///< Object to delete
     11727);
     11728/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     11729 *
     11730 *  Note that a 'where' search psMetadata is constructed from each object and
     11731 *  used to find rows to delete.
     11732 *
     11733 * @return A The number of rows removed or a negative value on error
     11734 */
     11735
     11736long long pstampRequestDeleteRowObjects(
     11737    psDB            *dbh,               ///< Database handle
     11738    const psArray   *objects,           ///< Array of objects to delete
     11739    unsigned long long limit            ///< Maximum number of elements to delete
     11740);
     11741/** Formats and prints an array of pstampRequestRow objects
     11742 *
     11743 * When mdcf is set the formated output is in psMetadataConfig
     11744 * format, otherwise it is in a simple tabular format.
     11745 *
     11746 * @return true on success
     11747 */
     11748
     11749bool pstampRequestPrintObjects(
     11750    FILE            *stream,            ///< a stream
     11751    psArray         *objects,           ///< An array of pstampRequestRow objects
     11752    bool            mdcf                ///< format as mdconfig or simple
     11753);
     11754/** Formats and prints an pstampRequestRow object
     11755 *
     11756 * When mdcf is set the formated output is in psMetadataConfig
     11757 * format, otherwise it is in a simple tabular format.
     11758 *
     11759 * @return true on success
     11760 */
     11761
     11762bool pstampRequestPrintObject(
     11763    FILE            *stream,            ///< a stream
     11764    pstampRequestRow *object,    ///< an pstampRequestRow object
     11765    bool            mdcf                ///< format as mdconfig or simple
     11766);
     11767/** pstampJobRow data structure
     11768 *
     11769 * Structure for representing a single row of pstampJob table data.
     11770 */
     11771
     11772typedef struct {
     11773    psS64           job_id;
     11774    psS64           req_id;
     11775    char            *state;
     11776    psS32           result;
     11777    char            *uri;
     11778    char            *outputBase;
     11779    char            *args;
     11780} pstampJobRow;
     11781
     11782/** Creates a new pstampJobRow object
     11783 *
     11784 *  @return A new pstampJobRow object or NULL on failure.
     11785 */
     11786
     11787pstampJobRow *pstampJobRowAlloc(
     11788    psS64           job_id,
     11789    psS64           req_id,
     11790    const char      *state,
     11791    psS32           result,
     11792    const char      *uri,
     11793    const char      *outputBase,
     11794    const char      *args
     11795);
     11796
     11797/** Creates a new pstampJob table
     11798 *
     11799 * @return true on success
     11800 */
     11801
     11802bool pstampJobCreateTable(
     11803    psDB            *dbh                ///< Database handle
     11804);
     11805
     11806/** Deletes a pstampJob table
     11807 *
     11808 * @return true on success
     11809 */
     11810
     11811bool pstampJobDropTable(
     11812    psDB            *dbh                ///< Database handle
     11813);
     11814
     11815/** Insert a single row into a table
     11816 *
     11817 * This function constructs and inserts a single row based on it's parameters.
     11818 *
     11819 * @return true on success
     11820 */
     11821
     11822bool pstampJobInsert(
     11823    psDB            *dbh,               ///< Database handle
     11824    psS64           job_id,
     11825    psS64           req_id,
     11826    const char      *state,
     11827    psS32           result,
     11828    const char      *uri,
     11829    const char      *outputBase,
     11830    const char      *args
     11831);
     11832
     11833/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     11834 *
     11835 * @return A The number of rows removed or a negative value on error
     11836 */
     11837
     11838long long pstampJobDelete(
     11839    psDB            *dbh,               ///< Database handle
     11840    const psMetadata *where,            ///< Row match criteria
     11841    unsigned long long limit            ///< Maximum number of elements to delete
     11842);
     11843
     11844/** Insert a single pstampJobRow object into a table
     11845 *
     11846 * This function constructs and inserts a single row based on it's parameters.
     11847 *
     11848 * @return true on success
     11849 */
     11850
     11851bool pstampJobInsertObject(
     11852    psDB            *dbh,               ///< Database handle
     11853    pstampJobRow    *object             ///< pstampJobRow object
     11854);
     11855
     11856/** Insert an array of pstampJobRow object into a table
     11857 *
     11858 * This function constructs and inserts multiple rows based on it's parameters.
     11859 *
     11860 * @return true on success
     11861 */
     11862
     11863bool pstampJobInsertObjects(
     11864    psDB            *dbh,               ///< Database handle
     11865    psArray         *objects            ///< array of pstampJobRow objects
     11866);
     11867
     11868/** Insert data from a binary FITS table pstampJobRow into the database
     11869 *
     11870 * This function expects a psFits object with a FITS table as the first
     11871 * extension.  The table must have at least one row of data in it, that is of
     11872 * the appropriate format (number of columns and their type).  All other
     11873 * extensions are ignored.
     11874 *
     11875 * @return true on success
     11876 */
     11877
     11878bool pstampJobInsertFits(
     11879    psDB            *dbh,               ///< Database handle
     11880    const psFits    *fits               ///< psFits object
     11881);
     11882
     11883/** Selects up to limit from the database and returns them in a binary FITS table
     11884 *
     11885 * This function assumes an empty psFits object and will create a FITS table
     11886 * as the first extension.
     11887 *
     11888 *  See psDBSelectRows() for documentation on the format of where.
     11889 *
     11890 * @return true on success
     11891 */
     11892
     11893bool pstampJobSelectRowsFits(
     11894    psDB            *dbh,               ///< Database handle
     11895    psFits          *fits,              ///< psFits object
     11896    const psMetadata *where,            ///< Row match criteria
     11897    unsigned long long limit            ///< Maximum number of elements to return
     11898);
     11899
     11900/** Convert a pstampJobRow into an equivalent psMetadata
     11901 *
     11902 * @return A psMetadata pointer or NULL on error
     11903 */
     11904
     11905psMetadata *pstampJobMetadataFromObject(
     11906    const pstampJobRow *object             ///< fooRow to convert into a psMetadata
     11907);
     11908
     11909/** Convert a psMetadata into an equivalent fooRow
     11910 *
     11911 * @return A pstampJobRow pointer or NULL on error
     11912 */
     11913
     11914pstampJobRow *pstampJobObjectFromMetadata(
     11915    psMetadata      *md                 ///< psMetadata to convert into a fooRow
     11916);
     11917/** Selects up to limit rows from the database and returns as pstampJobRow objects in a psArray
     11918 *
     11919 *  See psDBSelectRows() for documentation on the format of where.
     11920 *
     11921 * @return A psArray pointer or NULL on error
     11922 */
     11923
     11924psArray *pstampJobSelectRowObjects(
     11925    psDB            *dbh,               ///< Database handle
     11926    const psMetadata *where,            ///< Row match criteria
     11927    unsigned long long limit            ///< Maximum number of elements to return
     11928);
     11929/** Deletes a row from the database coresponding to an pstampJob
     11930 *
     11931 *  Note that a 'where' search psMetadata is constructed from each object and
     11932 *  used to find rows to delete.
     11933 *
     11934 * @return A The number of rows removed or a negative value on error
     11935 */
     11936
     11937bool pstampJobDeleteObject(
     11938    psDB            *dbh,               ///< Database handle
     11939    const pstampJobRow *object    ///< Object to delete
     11940);
     11941/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     11942 *
     11943 *  Note that a 'where' search psMetadata is constructed from each object and
     11944 *  used to find rows to delete.
     11945 *
     11946 * @return A The number of rows removed or a negative value on error
     11947 */
     11948
     11949long long pstampJobDeleteRowObjects(
     11950    psDB            *dbh,               ///< Database handle
     11951    const psArray   *objects,           ///< Array of objects to delete
     11952    unsigned long long limit            ///< Maximum number of elements to delete
     11953);
     11954/** Formats and prints an array of pstampJobRow objects
     11955 *
     11956 * When mdcf is set the formated output is in psMetadataConfig
     11957 * format, otherwise it is in a simple tabular format.
     11958 *
     11959 * @return true on success
     11960 */
     11961
     11962bool pstampJobPrintObjects(
     11963    FILE            *stream,            ///< a stream
     11964    psArray         *objects,           ///< An array of pstampJobRow objects
     11965    bool            mdcf                ///< format as mdconfig or simple
     11966);
     11967/** Formats and prints an pstampJobRow object
     11968 *
     11969 * When mdcf is set the formated output is in psMetadataConfig
     11970 * format, otherwise it is in a simple tabular format.
     11971 *
     11972 * @return true on success
     11973 */
     11974
     11975bool pstampJobPrintObject(
     11976    FILE            *stream,            ///< a stream
     11977    pstampJobRow *object,    ///< an pstampJobRow object
     11978    bool            mdcf                ///< format as mdconfig or simple
     11979);
    1168611980
    1168711981/// @}
     
    1169111985#endif
    1169211986
    11693 #endif // FLATCORREXP_DB_H
     11987#endif // PSTAMPJOB_DB_H
  • trunk/ippdb/tests/alloc.c

    r16177 r16587  
    123123
    124124    {
    125         pzPendingExpRow *object;
    126 
    127         object = pzPendingExpRowAlloc("a string", "a string", "a string"    );
     125        pzDownloadExpRow *object;
     126
     127        object = pzDownloadExpRowAlloc("a string", "a string", "a string", "a string"    );
    128128
    129129        if (!object) {
     
    143143            exit(EXIT_FAILURE);
    144144        }
    145 
    146         psFree(object);
    147     }
    148 
    149     {
    150         pzPendingImfileRow *object;
    151 
    152         object = pzPendingImfileRowAlloc("a string", "a string", "a string", "a string", "a string"    );
     145        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     146            psFree(object);
     147            exit(EXIT_FAILURE);
     148        }
     149
     150        psFree(object);
     151    }
     152
     153    {
     154        pzDownloadImfileRow *object;
     155
     156        object = pzDownloadImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", -16    );
    153157
    154158        if (!object) {
     
    176180            exit(EXIT_FAILURE);
    177181        }
    178 
    179         psFree(object);
    180     }
    181 
    182     {
    183         pzDoneExpRow    *object;
    184 
    185         object = pzDoneExpRowAlloc("a string", "a string", "a string"    );
    186 
    187         if (!object) {
    188             exit(EXIT_FAILURE);
    189         }
    190 
     182        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     183            psFree(object);
     184            exit(EXIT_FAILURE);
     185        }
     186        if (!object->fault == -16) {
     187            psFree(object);
     188            exit(EXIT_FAILURE);
     189        }
     190
     191        psFree(object);
     192    }
     193
     194    {
     195        newExpRow       *object;
     196
     197        object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string"    );
     198
     199        if (!object) {
     200            exit(EXIT_FAILURE);
     201        }
     202
     203        if (!object->exp_id == -64) {
     204            psFree(object);
     205            exit(EXIT_FAILURE);
     206        }
     207        if (strncmp(object->tmp_exp_name, "a string", MAX_STRING_LENGTH)) {
     208            psFree(object);
     209            exit(EXIT_FAILURE);
     210        }
     211        if (strncmp(object->tmp_camera, "a string", MAX_STRING_LENGTH)) {
     212            psFree(object);
     213            exit(EXIT_FAILURE);
     214        }
     215        if (strncmp(object->tmp_telescope, "a string", MAX_STRING_LENGTH)) {
     216            psFree(object);
     217            exit(EXIT_FAILURE);
     218        }
     219        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     220            psFree(object);
     221            exit(EXIT_FAILURE);
     222        }
     223        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     224            psFree(object);
     225            exit(EXIT_FAILURE);
     226        }
     227        if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
     228            psFree(object);
     229            exit(EXIT_FAILURE);
     230        }
     231        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     232            psFree(object);
     233            exit(EXIT_FAILURE);
     234        }
     235        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     236            psFree(object);
     237            exit(EXIT_FAILURE);
     238        }
     239        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     240            psFree(object);
     241            exit(EXIT_FAILURE);
     242        }
     243        if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
     244            psFree(object);
     245            exit(EXIT_FAILURE);
     246        }
     247        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     248            psFree(object);
     249            exit(EXIT_FAILURE);
     250        }
     251
     252        psFree(object);
     253    }
     254
     255    {
     256        newImfileRow    *object;
     257
     258        object = newImfileRowAlloc(-64, "a string", "a string"    );
     259
     260        if (!object) {
     261            exit(EXIT_FAILURE);
     262        }
     263
     264        if (!object->exp_id == -64) {
     265            psFree(object);
     266            exit(EXIT_FAILURE);
     267        }
     268        if (strncmp(object->tmp_class_id, "a string", MAX_STRING_LENGTH)) {
     269            psFree(object);
     270            exit(EXIT_FAILURE);
     271        }
     272        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     273            psFree(object);
     274            exit(EXIT_FAILURE);
     275        }
     276
     277        psFree(object);
     278    }
     279
     280    {
     281        rawExpRow       *object;
     282
     283        object = rawExpRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, -16    );
     284
     285        if (!object) {
     286            exit(EXIT_FAILURE);
     287        }
     288
     289        if (!object->exp_id == -64) {
     290            psFree(object);
     291            exit(EXIT_FAILURE);
     292        }
    191293        if (strncmp(object->exp_name, "a string", MAX_STRING_LENGTH)) {
    192294            psFree(object);
     
    201303            exit(EXIT_FAILURE);
    202304        }
    203 
    204         psFree(object);
    205     }
    206 
    207     {
    208         pzDoneImfileRow *object;
    209 
    210         object = pzDoneImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string"    );
    211 
    212         if (!object) {
    213             exit(EXIT_FAILURE);
    214         }
    215 
     305            psFree(object);
     306            exit(EXIT_FAILURE);
     307        }
     308        if (strncmp(object->exp_tag, "a string", MAX_STRING_LENGTH)) {
     309            psFree(object);
     310            exit(EXIT_FAILURE);
     311        }
     312        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
     313            psFree(object);
     314            exit(EXIT_FAILURE);
     315        }
     316        if (strncmp(object->filelevel, "a string", MAX_STRING_LENGTH)) {
     317            psFree(object);
     318            exit(EXIT_FAILURE);
     319        }
     320        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     321            psFree(object);
     322            exit(EXIT_FAILURE);
     323        }
     324        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     325            psFree(object);
     326            exit(EXIT_FAILURE);
     327        }
     328        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     329            psFree(object);
     330            exit(EXIT_FAILURE);
     331        }
     332        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     333            psFree(object);
     334            exit(EXIT_FAILURE);
     335        }
     336        if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
     337            psFree(object);
     338            exit(EXIT_FAILURE);
     339        }
     340        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
     341            psFree(object);
     342            exit(EXIT_FAILURE);
     343        }
     344        if (strncmp(object->comment, "a string", MAX_STRING_LENGTH)) {
     345            psFree(object);
     346            exit(EXIT_FAILURE);
     347        }
     348        if (!object->airmass == 32.32) {
     349            psFree(object);
     350            exit(EXIT_FAILURE);
     351        }
     352        if (!object->ra == 64.64) {
     353            psFree(object);
     354            exit(EXIT_FAILURE);
     355        }
     356        if (!object->decl == 64.64) {
     357            psFree(object);
     358            exit(EXIT_FAILURE);
     359        }
     360        if (!object->exp_time == 32.32) {
     361            psFree(object);
     362            exit(EXIT_FAILURE);
     363        }
     364        if (!object->sat_pixel_frac == 32.32) {
     365            psFree(object);
     366            exit(EXIT_FAILURE);
     367        }
     368        if (!object->bg == 64.64) {
     369            psFree(object);
     370            exit(EXIT_FAILURE);
     371        }
     372        if (!object->bg_stdev == 64.64) {
     373            psFree(object);
     374            exit(EXIT_FAILURE);
     375        }
     376        if (!object->bg_mean_stdev == 64.64) {
     377            psFree(object);
     378            exit(EXIT_FAILURE);
     379        }
     380        if (!object->alt == 64.64) {
     381            psFree(object);
     382            exit(EXIT_FAILURE);
     383        }
     384        if (!object->az == 64.64) {
     385            psFree(object);
     386            exit(EXIT_FAILURE);
     387        }
     388        if (!object->ccd_temp == 32.32) {
     389            psFree(object);
     390            exit(EXIT_FAILURE);
     391        }
     392        if (!object->posang == 64.64) {
     393            psFree(object);
     394            exit(EXIT_FAILURE);
     395        }
     396        if (!object->m1_x == 32.32) {
     397            psFree(object);
     398            exit(EXIT_FAILURE);
     399        }
     400        if (!object->m1_y == 32.32) {
     401            psFree(object);
     402            exit(EXIT_FAILURE);
     403        }
     404        if (!object->m1_z == 32.32) {
     405            psFree(object);
     406            exit(EXIT_FAILURE);
     407        }
     408        if (!object->m1_tip == 32.32) {
     409            psFree(object);
     410            exit(EXIT_FAILURE);
     411        }
     412        if (!object->m1_tilt == 32.32) {
     413            psFree(object);
     414            exit(EXIT_FAILURE);
     415        }
     416        if (!object->m2_x == 32.32) {
     417            psFree(object);
     418            exit(EXIT_FAILURE);
     419        }
     420        if (!object->m2_y == 32.32) {
     421            psFree(object);
     422            exit(EXIT_FAILURE);
     423        }
     424        if (!object->m2_z == 32.32) {
     425            psFree(object);
     426            exit(EXIT_FAILURE);
     427        }
     428        if (!object->m2_tip == 32.32) {
     429            psFree(object);
     430            exit(EXIT_FAILURE);
     431        }
     432        if (!object->m2_tilt == 32.32) {
     433            psFree(object);
     434            exit(EXIT_FAILURE);
     435        }
     436        if (!object->env_temperature == 32.32) {
     437            psFree(object);
     438            exit(EXIT_FAILURE);
     439        }
     440        if (!object->env_humidity == 32.32) {
     441            psFree(object);
     442            exit(EXIT_FAILURE);
     443        }
     444        if (!object->env_wind_speed == 32.32) {
     445            psFree(object);
     446            exit(EXIT_FAILURE);
     447        }
     448        if (!object->env_wind_dir == 32.32) {
     449            psFree(object);
     450            exit(EXIT_FAILURE);
     451        }
     452        if (!object->teltemp_m1 == 32.32) {
     453            psFree(object);
     454            exit(EXIT_FAILURE);
     455        }
     456        if (!object->teltemp_m1cell == 32.32) {
     457            psFree(object);
     458            exit(EXIT_FAILURE);
     459        }
     460        if (!object->teltemp_m2 == 32.32) {
     461            psFree(object);
     462            exit(EXIT_FAILURE);
     463        }
     464        if (!object->teltemp_spider == 32.32) {
     465            psFree(object);
     466            exit(EXIT_FAILURE);
     467        }
     468        if (!object->teltemp_truss == 32.32) {
     469            psFree(object);
     470            exit(EXIT_FAILURE);
     471        }
     472        if (!object->teltemp_extra == 32.32) {
     473            psFree(object);
     474            exit(EXIT_FAILURE);
     475        }
     476        if (!object->pon_time == 32.32) {
     477            psFree(object);
     478            exit(EXIT_FAILURE);
     479        }
     480        if (!object->user_1 == 64.64) {
     481            psFree(object);
     482            exit(EXIT_FAILURE);
     483        }
     484        if (!object->user_2 == 64.64) {
     485            psFree(object);
     486            exit(EXIT_FAILURE);
     487        }
     488        if (!object->user_3 == 64.64) {
     489            psFree(object);
     490            exit(EXIT_FAILURE);
     491        }
     492        if (!object->user_4 == 64.64) {
     493            psFree(object);
     494            exit(EXIT_FAILURE);
     495        }
     496        if (!object->user_5 == 64.64) {
     497            psFree(object);
     498            exit(EXIT_FAILURE);
     499        }
     500        if (strncmp(object->object, "a string", MAX_STRING_LENGTH)) {
     501            psFree(object);
     502            exit(EXIT_FAILURE);
     503        }
     504        if (!object->solang == 32.32) {
     505            psFree(object);
     506            exit(EXIT_FAILURE);
     507        }
     508        if (!object->fault == -16) {
     509            psFree(object);
     510            exit(EXIT_FAILURE);
     511        }
     512
     513        psFree(object);
     514    }
     515
     516    {
     517        rawImfileRow    *object;
     518
     519        object = rawImfileRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
     520
     521        if (!object) {
     522            exit(EXIT_FAILURE);
     523        }
     524
     525        if (!object->exp_id == -64) {
     526            psFree(object);
     527            exit(EXIT_FAILURE);
     528        }
    216529        if (strncmp(object->exp_name, "a string", MAX_STRING_LENGTH)) {
    217530            psFree(object);
     
    226539            exit(EXIT_FAILURE);
    227540        }
    228         if (strncmp(object->class, "a string", MAX_STRING_LENGTH)) {
     541            psFree(object);
     542            exit(EXIT_FAILURE);
     543        }
     544        if (strncmp(object->tmp_class_id, "a string", MAX_STRING_LENGTH)) {
    229545            psFree(object);
    230546            exit(EXIT_FAILURE);
     
    238554            exit(EXIT_FAILURE);
    239555        }
    240 
    241         psFree(object);
    242     }
    243 
    244     {
    245         newExpRow       *object;
    246 
    247         object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string"    );
    248 
    249         if (!object) {
    250             exit(EXIT_FAILURE);
    251         }
    252 
     556        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
     557            psFree(object);
     558            exit(EXIT_FAILURE);
     559        }
     560        if (strncmp(object->filelevel, "a string", MAX_STRING_LENGTH)) {
     561            psFree(object);
     562            exit(EXIT_FAILURE);
     563        }
     564        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
     565            psFree(object);
     566            exit(EXIT_FAILURE);
     567        }
     568        if (strncmp(object->comment, "a string", MAX_STRING_LENGTH)) {
     569            psFree(object);
     570            exit(EXIT_FAILURE);
     571        }
     572        if (!object->airmass == 32.32) {
     573            psFree(object);
     574            exit(EXIT_FAILURE);
     575        }
     576        if (!object->ra == 64.64) {
     577            psFree(object);
     578            exit(EXIT_FAILURE);
     579        }
     580        if (!object->decl == 64.64) {
     581            psFree(object);
     582            exit(EXIT_FAILURE);
     583        }
     584        if (!object->exp_time == 32.32) {
     585            psFree(object);
     586            exit(EXIT_FAILURE);
     587        }
     588        if (!object->sat_pixel_frac == 32.32) {
     589            psFree(object);
     590            exit(EXIT_FAILURE);
     591        }
     592        if (!object->bg == 64.64) {
     593            psFree(object);
     594            exit(EXIT_FAILURE);
     595        }
     596        if (!object->bg_stdev == 64.64) {
     597            psFree(object);
     598            exit(EXIT_FAILURE);
     599        }
     600        if (!object->bg_mean_stdev == 64.64) {
     601            psFree(object);
     602            exit(EXIT_FAILURE);
     603        }
     604        if (!object->alt == 64.64) {
     605            psFree(object);
     606            exit(EXIT_FAILURE);
     607        }
     608        if (!object->az == 64.64) {
     609            psFree(object);
     610            exit(EXIT_FAILURE);
     611        }
     612        if (!object->ccd_temp == 32.32) {
     613            psFree(object);
     614            exit(EXIT_FAILURE);
     615        }
     616        if (!object->posang == 64.64) {
     617            psFree(object);
     618            exit(EXIT_FAILURE);
     619        }
     620        if (!object->m1_x == 32.32) {
     621            psFree(object);
     622            exit(EXIT_FAILURE);
     623        }
     624        if (!object->m1_y == 32.32) {
     625            psFree(object);
     626            exit(EXIT_FAILURE);
     627        }
     628        if (!object->m1_z == 32.32) {
     629            psFree(object);
     630            exit(EXIT_FAILURE);
     631        }
     632        if (!object->m1_tip == 32.32) {
     633            psFree(object);
     634            exit(EXIT_FAILURE);
     635        }
     636        if (!object->m1_tilt == 32.32) {
     637            psFree(object);
     638            exit(EXIT_FAILURE);
     639        }
     640        if (!object->m2_x == 32.32) {
     641            psFree(object);
     642            exit(EXIT_FAILURE);
     643        }
     644        if (!object->m2_y == 32.32) {
     645            psFree(object);
     646            exit(EXIT_FAILURE);
     647        }
     648        if (!object->m2_z == 32.32) {
     649            psFree(object);
     650            exit(EXIT_FAILURE);
     651        }
     652        if (!object->m2_tip == 32.32) {
     653            psFree(object);
     654            exit(EXIT_FAILURE);
     655        }
     656        if (!object->m2_tilt == 32.32) {
     657            psFree(object);
     658            exit(EXIT_FAILURE);
     659        }
     660        if (!object->env_temperature == 32.32) {
     661            psFree(object);
     662            exit(EXIT_FAILURE);
     663        }
     664        if (!object->env_humidity == 32.32) {
     665            psFree(object);
     666            exit(EXIT_FAILURE);
     667        }
     668        if (!object->env_wind_speed == 32.32) {
     669            psFree(object);
     670            exit(EXIT_FAILURE);
     671        }
     672        if (!object->env_wind_dir == 32.32) {
     673            psFree(object);
     674            exit(EXIT_FAILURE);
     675        }
     676        if (!object->teltemp_m1 == 32.32) {
     677            psFree(object);
     678            exit(EXIT_FAILURE);
     679        }
     680        if (!object->teltemp_m1cell == 32.32) {
     681            psFree(object);
     682            exit(EXIT_FAILURE);
     683        }
     684        if (!object->teltemp_m2 == 32.32) {
     685            psFree(object);
     686            exit(EXIT_FAILURE);
     687        }
     688        if (!object->teltemp_spider == 32.32) {
     689            psFree(object);
     690            exit(EXIT_FAILURE);
     691        }
     692        if (!object->teltemp_truss == 32.32) {
     693            psFree(object);
     694            exit(EXIT_FAILURE);
     695        }
     696        if (!object->teltemp_extra == 32.32) {
     697            psFree(object);
     698            exit(EXIT_FAILURE);
     699        }
     700        if (!object->pon_time == 32.32) {
     701            psFree(object);
     702            exit(EXIT_FAILURE);
     703        }
     704        if (!object->user_1 == 64.64) {
     705            psFree(object);
     706            exit(EXIT_FAILURE);
     707        }
     708        if (!object->user_2 == 64.64) {
     709            psFree(object);
     710            exit(EXIT_FAILURE);
     711        }
     712        if (!object->user_3 == 64.64) {
     713            psFree(object);
     714            exit(EXIT_FAILURE);
     715        }
     716        if (!object->user_4 == 64.64) {
     717            psFree(object);
     718            exit(EXIT_FAILURE);
     719        }
     720        if (!object->user_5 == 64.64) {
     721            psFree(object);
     722            exit(EXIT_FAILURE);
     723        }
     724        if (strncmp(object->object, "a string", MAX_STRING_LENGTH)) {
     725            psFree(object);
     726            exit(EXIT_FAILURE);
     727        }
     728        if (!object->fault == -16) {
     729            psFree(object);
     730            exit(EXIT_FAILURE);
     731        }
     732
     733        psFree(object);
     734    }
     735
     736    {
     737        guidePendingExpRow *object;
     738
     739        object = guidePendingExpRowAlloc(-64, -64, "a string"    );
     740
     741        if (!object) {
     742            exit(EXIT_FAILURE);
     743        }
     744
     745        if (!object->guide_id == -64) {
     746            psFree(object);
     747            exit(EXIT_FAILURE);
     748        }
    253749        if (!object->exp_id == -64) {
    254750            psFree(object);
    255751            exit(EXIT_FAILURE);
    256752        }
    257         if (strncmp(object->tmp_exp_name, "a string", MAX_STRING_LENGTH)) {
    258             psFree(object);
    259             exit(EXIT_FAILURE);
    260         }
    261         if (strncmp(object->tmp_camera, "a string", MAX_STRING_LENGTH)) {
    262             psFree(object);
    263             exit(EXIT_FAILURE);
    264         }
    265         if (strncmp(object->tmp_telescope, "a string", MAX_STRING_LENGTH)) {
     753        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     754            psFree(object);
     755            exit(EXIT_FAILURE);
     756        }
     757
     758        psFree(object);
     759    }
     760
     761    {
     762        chipRunRow      *object;
     763
     764        object = chipRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string"    );
     765
     766        if (!object) {
     767            exit(EXIT_FAILURE);
     768        }
     769
     770        if (!object->chip_id == -64) {
     771            psFree(object);
     772            exit(EXIT_FAILURE);
     773        }
     774        if (!object->exp_id == -64) {
    266775            psFree(object);
    267776            exit(EXIT_FAILURE);
     
    279788            exit(EXIT_FAILURE);
    280789        }
     790        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     791            psFree(object);
     792            exit(EXIT_FAILURE);
     793        }
    281794        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
    282795            psFree(object);
    283796            exit(EXIT_FAILURE);
    284797        }
     798        if (strncmp(object->expgroup, "a string", MAX_STRING_LENGTH)) {
     799            psFree(object);
     800            exit(EXIT_FAILURE);
     801        }
    285802        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    286803            psFree(object);
     
    300817
    301818    {
    302         newImfileRow    *object;
    303 
    304         object = newImfileRowAlloc(-64, "a string", "a string"    );
    305 
    306         if (!object) {
    307             exit(EXIT_FAILURE);
    308         }
    309 
     819        chipProcessedImfileRow *object;
     820
     821        object = chipProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, "a string", -32, -32, -32, -32, "a string", -16    );
     822
     823        if (!object) {
     824            exit(EXIT_FAILURE);
     825        }
     826
     827        if (!object->chip_id == -64) {
     828            psFree(object);
     829            exit(EXIT_FAILURE);
     830        }
    310831        if (!object->exp_id == -64) {
    311832            psFree(object);
    312833            exit(EXIT_FAILURE);
    313834        }
    314         if (strncmp(object->tmp_class_id, "a string", MAX_STRING_LENGTH)) {
     835        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    315836            psFree(object);
    316837            exit(EXIT_FAILURE);
     
    320841            exit(EXIT_FAILURE);
    321842        }
    322 
    323         psFree(object);
    324     }
    325 
    326     {
    327         rawExpRow       *object;
    328 
    329         object = rawExpRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, -16    );
    330 
    331         if (!object) {
    332             exit(EXIT_FAILURE);
    333         }
    334 
     843        if (!object->bg == 32.32) {
     844            psFree(object);
     845            exit(EXIT_FAILURE);
     846        }
     847        if (!object->bg_stdev == 32.32) {
     848            psFree(object);
     849            exit(EXIT_FAILURE);
     850        }
     851        if (!object->bg_mean_stdev == 32.32) {
     852            psFree(object);
     853            exit(EXIT_FAILURE);
     854        }
     855        if (!object->bias == 32.32) {
     856            psFree(object);
     857            exit(EXIT_FAILURE);
     858        }
     859        if (!object->bias_stdev == 32.32) {
     860            psFree(object);
     861            exit(EXIT_FAILURE);
     862        }
     863        if (!object->fringe_0 == 32.32) {
     864            psFree(object);
     865            exit(EXIT_FAILURE);
     866        }
     867        if (!object->fringe_1 == 32.32) {
     868            psFree(object);
     869            exit(EXIT_FAILURE);
     870        }
     871        if (!object->fringe_2 == 32.32) {
     872            psFree(object);
     873            exit(EXIT_FAILURE);
     874        }
     875        if (!object->sigma_ra == 32.32) {
     876            psFree(object);
     877            exit(EXIT_FAILURE);
     878        }
     879        if (!object->sigma_dec == 32.32) {
     880            psFree(object);
     881            exit(EXIT_FAILURE);
     882        }
     883        if (!object->ap_resid == 32.32) {
     884            psFree(object);
     885            exit(EXIT_FAILURE);
     886        }
     887        if (!object->ap_resid_stdev == 32.32) {
     888            psFree(object);
     889            exit(EXIT_FAILURE);
     890        }
     891        if (!object->zp_mean == 32.32) {
     892            psFree(object);
     893            exit(EXIT_FAILURE);
     894        }
     895        if (!object->zp_stdev == 32.32) {
     896            psFree(object);
     897            exit(EXIT_FAILURE);
     898        }
     899        if (!object->fwhm_major == 32.32) {
     900            psFree(object);
     901            exit(EXIT_FAILURE);
     902        }
     903        if (!object->fwhm_minor == 32.32) {
     904            psFree(object);
     905            exit(EXIT_FAILURE);
     906        }
     907        if (!object->dtime_detrend == 32.32) {
     908            psFree(object);
     909            exit(EXIT_FAILURE);
     910        }
     911        if (!object->dtime_photom == 32.32) {
     912            psFree(object);
     913            exit(EXIT_FAILURE);
     914        }
     915        if (!object->dtime_astrom == 32.32) {
     916            psFree(object);
     917            exit(EXIT_FAILURE);
     918        }
     919        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     920            psFree(object);
     921            exit(EXIT_FAILURE);
     922        }
     923        if (!object->n_stars == -32) {
     924            psFree(object);
     925            exit(EXIT_FAILURE);
     926        }
     927        if (!object->n_extended == -32) {
     928            psFree(object);
     929            exit(EXIT_FAILURE);
     930        }
     931        if (!object->n_cr == -32) {
     932            psFree(object);
     933            exit(EXIT_FAILURE);
     934        }
     935        if (!object->n_astrom == -32) {
     936            psFree(object);
     937            exit(EXIT_FAILURE);
     938        }
     939        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     940            psFree(object);
     941            exit(EXIT_FAILURE);
     942        }
     943        if (!object->fault == -16) {
     944            psFree(object);
     945            exit(EXIT_FAILURE);
     946        }
     947
     948        psFree(object);
     949    }
     950
     951    {
     952        chipMaskRow     *object;
     953
     954        object = chipMaskRowAlloc("a string"    );
     955
     956        if (!object) {
     957            exit(EXIT_FAILURE);
     958        }
     959
     960        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     961            psFree(object);
     962            exit(EXIT_FAILURE);
     963        }
     964
     965        psFree(object);
     966    }
     967
     968    {
     969        camRunRow       *object;
     970
     971        object = camRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string"    );
     972
     973        if (!object) {
     974            exit(EXIT_FAILURE);
     975        }
     976
     977        if (!object->cam_id == -64) {
     978            psFree(object);
     979            exit(EXIT_FAILURE);
     980        }
     981        if (!object->chip_id == -64) {
     982            psFree(object);
     983            exit(EXIT_FAILURE);
     984        }
     985        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     986            psFree(object);
     987            exit(EXIT_FAILURE);
     988        }
     989        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     990            psFree(object);
     991            exit(EXIT_FAILURE);
     992        }
     993        if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
     994            psFree(object);
     995            exit(EXIT_FAILURE);
     996        }
     997        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     998            psFree(object);
     999            exit(EXIT_FAILURE);
     1000        }
     1001        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     1002            psFree(object);
     1003            exit(EXIT_FAILURE);
     1004        }
     1005        if (strncmp(object->expgroup, "a string", MAX_STRING_LENGTH)) {
     1006            psFree(object);
     1007            exit(EXIT_FAILURE);
     1008        }
     1009        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     1010            psFree(object);
     1011            exit(EXIT_FAILURE);
     1012        }
     1013        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1014            psFree(object);
     1015            exit(EXIT_FAILURE);
     1016        }
     1017        if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
     1018            psFree(object);
     1019            exit(EXIT_FAILURE);
     1020        }
     1021
     1022        psFree(object);
     1023    }
     1024
     1025    {
     1026        camProcessedExpRow *object;
     1027
     1028        object = camProcessedExpRowAlloc(-64, -64, "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, "a string", -32, -32, -32, -32, "a string", -16    );
     1029
     1030        if (!object) {
     1031            exit(EXIT_FAILURE);
     1032        }
     1033
     1034        if (!object->cam_id == -64) {
     1035            psFree(object);
     1036            exit(EXIT_FAILURE);
     1037        }
     1038        if (!object->chip_id == -64) {
     1039            psFree(object);
     1040            exit(EXIT_FAILURE);
     1041        }
     1042        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1043            psFree(object);
     1044            exit(EXIT_FAILURE);
     1045        }
     1046        if (!object->bg == 32.32) {
     1047            psFree(object);
     1048            exit(EXIT_FAILURE);
     1049        }
     1050        if (!object->bg_stdev == 32.32) {
     1051            psFree(object);
     1052            exit(EXIT_FAILURE);
     1053        }
     1054        if (!object->bg_mean_stdev == 32.32) {
     1055            psFree(object);
     1056            exit(EXIT_FAILURE);
     1057        }
     1058        if (!object->bias == 32.32) {
     1059            psFree(object);
     1060            exit(EXIT_FAILURE);
     1061        }
     1062        if (!object->bias_stdev == 32.32) {
     1063            psFree(object);
     1064            exit(EXIT_FAILURE);
     1065        }
     1066        if (!object->fringe_0 == 32.32) {
     1067            psFree(object);
     1068            exit(EXIT_FAILURE);
     1069        }
     1070        if (!object->fringe_1 == 32.32) {
     1071            psFree(object);
     1072            exit(EXIT_FAILURE);
     1073        }
     1074        if (!object->fringe_2 == 32.32) {
     1075            psFree(object);
     1076            exit(EXIT_FAILURE);
     1077        }
     1078        if (!object->sigma_ra == 32.32) {
     1079            psFree(object);
     1080            exit(EXIT_FAILURE);
     1081        }
     1082        if (!object->sigma_dec == 32.32) {
     1083            psFree(object);
     1084            exit(EXIT_FAILURE);
     1085        }
     1086        if (!object->ap_resid == 32.32) {
     1087            psFree(object);
     1088            exit(EXIT_FAILURE);
     1089        }
     1090        if (!object->ap_resid_stdev == 32.32) {
     1091            psFree(object);
     1092            exit(EXIT_FAILURE);
     1093        }
     1094        if (!object->zp_mean == 32.32) {
     1095            psFree(object);
     1096            exit(EXIT_FAILURE);
     1097        }
     1098        if (!object->zp_stdev == 32.32) {
     1099            psFree(object);
     1100            exit(EXIT_FAILURE);
     1101        }
     1102        if (!object->fwhm_major == 32.32) {
     1103            psFree(object);
     1104            exit(EXIT_FAILURE);
     1105        }
     1106        if (!object->fwhm_minor == 32.32) {
     1107            psFree(object);
     1108            exit(EXIT_FAILURE);
     1109        }
     1110        if (!object->dtime_detrend == 32.32) {
     1111            psFree(object);
     1112            exit(EXIT_FAILURE);
     1113        }
     1114        if (!object->dtime_photom == 32.32) {
     1115            psFree(object);
     1116            exit(EXIT_FAILURE);
     1117        }
     1118        if (!object->dtime_astrom == 32.32) {
     1119            psFree(object);
     1120            exit(EXIT_FAILURE);
     1121        }
     1122        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     1123            psFree(object);
     1124            exit(EXIT_FAILURE);
     1125        }
     1126        if (!object->n_stars == -32) {
     1127            psFree(object);
     1128            exit(EXIT_FAILURE);
     1129        }
     1130        if (!object->n_extended == -32) {
     1131            psFree(object);
     1132            exit(EXIT_FAILURE);
     1133        }
     1134        if (!object->n_cr == -32) {
     1135            psFree(object);
     1136            exit(EXIT_FAILURE);
     1137        }
     1138        if (!object->n_astrom == -32) {
     1139            psFree(object);
     1140            exit(EXIT_FAILURE);
     1141        }
     1142        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     1143            psFree(object);
     1144            exit(EXIT_FAILURE);
     1145        }
     1146        if (!object->fault == -16) {
     1147            psFree(object);
     1148            exit(EXIT_FAILURE);
     1149        }
     1150
     1151        psFree(object);
     1152    }
     1153
     1154    {
     1155        camMaskRow      *object;
     1156
     1157        object = camMaskRowAlloc("a string"    );
     1158
     1159        if (!object) {
     1160            exit(EXIT_FAILURE);
     1161        }
     1162
     1163        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     1164            psFree(object);
     1165            exit(EXIT_FAILURE);
     1166        }
     1167
     1168        psFree(object);
     1169    }
     1170
     1171    {
     1172        warpRunRow      *object;
     1173
     1174        object = warpRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z"    );
     1175
     1176        if (!object) {
     1177            exit(EXIT_FAILURE);
     1178        }
     1179
     1180        if (!object->warp_id == -64) {
     1181            psFree(object);
     1182            exit(EXIT_FAILURE);
     1183        }
     1184        if (strncmp(object->mode, "a string", MAX_STRING_LENGTH)) {
     1185            psFree(object);
     1186            exit(EXIT_FAILURE);
     1187        }
     1188        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     1189            psFree(object);
     1190            exit(EXIT_FAILURE);
     1191        }
     1192        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     1193            psFree(object);
     1194            exit(EXIT_FAILURE);
     1195        }
     1196        if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
     1197            psFree(object);
     1198            exit(EXIT_FAILURE);
     1199        }
     1200        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     1201            psFree(object);
     1202            exit(EXIT_FAILURE);
     1203        }
     1204        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1205            psFree(object);
     1206            exit(EXIT_FAILURE);
     1207        }
     1208        if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
     1209            psFree(object);
     1210            exit(EXIT_FAILURE);
     1211        }
     1212            psFree(object);
     1213            exit(EXIT_FAILURE);
     1214        }
     1215
     1216        psFree(object);
     1217    }
     1218
     1219    {
     1220        warpInputExpRow *object;
     1221
     1222        object = warpInputExpRowAlloc(-64, -64, true    );
     1223
     1224        if (!object) {
     1225            exit(EXIT_FAILURE);
     1226        }
     1227
     1228        if (!object->warp_id == -64) {
     1229            psFree(object);
     1230            exit(EXIT_FAILURE);
     1231        }
     1232        if (!object->cam_id == -64) {
     1233            psFree(object);
     1234            exit(EXIT_FAILURE);
     1235        }
     1236        if (!object->magiced == true) {
     1237            psFree(object);
     1238            exit(EXIT_FAILURE);
     1239        }
     1240
     1241        psFree(object);
     1242    }
     1243
     1244    {
     1245        warpSkyCellMapRow *object;
     1246
     1247        object = warpSkyCellMapRowAlloc(-64, "a string", "a string", -64, "a string", -16    );
     1248
     1249        if (!object) {
     1250            exit(EXIT_FAILURE);
     1251        }
     1252
     1253        if (!object->warp_id == -64) {
     1254            psFree(object);
     1255            exit(EXIT_FAILURE);
     1256        }
     1257        if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
     1258            psFree(object);
     1259            exit(EXIT_FAILURE);
     1260        }
     1261        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1262            psFree(object);
     1263            exit(EXIT_FAILURE);
     1264        }
     1265        if (!object->cam_id == -64) {
     1266            psFree(object);
     1267            exit(EXIT_FAILURE);
     1268        }
     1269        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1270            psFree(object);
     1271            exit(EXIT_FAILURE);
     1272        }
     1273        if (!object->fault == -16) {
     1274            psFree(object);
     1275            exit(EXIT_FAILURE);
     1276        }
     1277
     1278        psFree(object);
     1279    }
     1280
     1281    {
     1282        warpSkyfileRow  *object;
     1283
     1284        object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, true, -16    );
     1285
     1286        if (!object) {
     1287            exit(EXIT_FAILURE);
     1288        }
     1289
     1290        if (!object->warp_id == -64) {
     1291            psFree(object);
     1292            exit(EXIT_FAILURE);
     1293        }
     1294        if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
     1295            psFree(object);
     1296            exit(EXIT_FAILURE);
     1297        }
     1298        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1299            psFree(object);
     1300            exit(EXIT_FAILURE);
     1301        }
     1302        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1303            psFree(object);
     1304            exit(EXIT_FAILURE);
     1305        }
     1306        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     1307            psFree(object);
     1308            exit(EXIT_FAILURE);
     1309        }
     1310        if (!object->bg == 64.64) {
     1311            psFree(object);
     1312            exit(EXIT_FAILURE);
     1313        }
     1314        if (!object->bg_stdev == 64.64) {
     1315            psFree(object);
     1316            exit(EXIT_FAILURE);
     1317        }
     1318        if (!object->dtime_warp == 32.32) {
     1319            psFree(object);
     1320            exit(EXIT_FAILURE);
     1321        }
     1322        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     1323            psFree(object);
     1324            exit(EXIT_FAILURE);
     1325        }
     1326        if (!object->good_frac == 32.32) {
     1327            psFree(object);
     1328            exit(EXIT_FAILURE);
     1329        }
     1330        if (!object->ignored == true) {
     1331            psFree(object);
     1332            exit(EXIT_FAILURE);
     1333        }
     1334        if (!object->fault == -16) {
     1335            psFree(object);
     1336            exit(EXIT_FAILURE);
     1337        }
     1338
     1339        psFree(object);
     1340    }
     1341
     1342    {
     1343        diffRunRow      *object;
     1344
     1345        object = diffRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string"    );
     1346
     1347        if (!object) {
     1348            exit(EXIT_FAILURE);
     1349        }
     1350
     1351        if (!object->diff_id == -64) {
     1352            psFree(object);
     1353            exit(EXIT_FAILURE);
     1354        }
     1355        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     1356            psFree(object);
     1357            exit(EXIT_FAILURE);
     1358        }
     1359        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     1360            psFree(object);
     1361            exit(EXIT_FAILURE);
     1362        }
     1363        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     1364            psFree(object);
     1365            exit(EXIT_FAILURE);
     1366        }
     1367            psFree(object);
     1368            exit(EXIT_FAILURE);
     1369        }
     1370        if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
     1371            psFree(object);
     1372            exit(EXIT_FAILURE);
     1373        }
     1374        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1375            psFree(object);
     1376            exit(EXIT_FAILURE);
     1377        }
     1378
     1379        psFree(object);
     1380    }
     1381
     1382    {
     1383        diffInputSkyfileRow *object;
     1384
     1385        object = diffInputSkyfileRowAlloc(-64, true, -64, -64, "a string", "a string", "a string"    );
     1386
     1387        if (!object) {
     1388            exit(EXIT_FAILURE);
     1389        }
     1390
     1391        if (!object->diff_id == -64) {
     1392            psFree(object);
     1393            exit(EXIT_FAILURE);
     1394        }
     1395        if (!object->template == true) {
     1396            psFree(object);
     1397            exit(EXIT_FAILURE);
     1398        }
     1399        if (!object->stack_id == -64) {
     1400            psFree(object);
     1401            exit(EXIT_FAILURE);
     1402        }
     1403        if (!object->warp_id == -64) {
     1404            psFree(object);
     1405            exit(EXIT_FAILURE);
     1406        }
     1407        if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
     1408            psFree(object);
     1409            exit(EXIT_FAILURE);
     1410        }
     1411        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1412            psFree(object);
     1413            exit(EXIT_FAILURE);
     1414        }
     1415        if (strncmp(object->kind, "a string", MAX_STRING_LENGTH)) {
     1416            psFree(object);
     1417            exit(EXIT_FAILURE);
     1418        }
     1419
     1420        psFree(object);
     1421    }
     1422
     1423    {
     1424        diffSkyfileRow  *object;
     1425
     1426        object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16    );
     1427
     1428        if (!object) {
     1429            exit(EXIT_FAILURE);
     1430        }
     1431
     1432        if (!object->diff_id == -64) {
     1433            psFree(object);
     1434            exit(EXIT_FAILURE);
     1435        }
     1436        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1437            psFree(object);
     1438            exit(EXIT_FAILURE);
     1439        }
     1440        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     1441            psFree(object);
     1442            exit(EXIT_FAILURE);
     1443        }
     1444        if (!object->bg == 64.64) {
     1445            psFree(object);
     1446            exit(EXIT_FAILURE);
     1447        }
     1448        if (!object->bg_stdev == 64.64) {
     1449            psFree(object);
     1450            exit(EXIT_FAILURE);
     1451        }
     1452        if (!object->dtime_diff == 32.32) {
     1453            psFree(object);
     1454            exit(EXIT_FAILURE);
     1455        }
     1456        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     1457            psFree(object);
     1458            exit(EXIT_FAILURE);
     1459        }
     1460        if (!object->good_frac == 32.32) {
     1461            psFree(object);
     1462            exit(EXIT_FAILURE);
     1463        }
     1464        if (!object->fault == -16) {
     1465            psFree(object);
     1466            exit(EXIT_FAILURE);
     1467        }
     1468
     1469        psFree(object);
     1470    }
     1471
     1472    {
     1473        stackRunRow     *object;
     1474
     1475        object = stackRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string"    );
     1476
     1477        if (!object) {
     1478            exit(EXIT_FAILURE);
     1479        }
     1480
     1481        if (!object->stack_id == -64) {
     1482            psFree(object);
     1483            exit(EXIT_FAILURE);
     1484        }
     1485        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     1486            psFree(object);
     1487            exit(EXIT_FAILURE);
     1488        }
     1489        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     1490            psFree(object);
     1491            exit(EXIT_FAILURE);
     1492        }
     1493        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     1494            psFree(object);
     1495            exit(EXIT_FAILURE);
     1496        }
     1497            psFree(object);
     1498            exit(EXIT_FAILURE);
     1499        }
     1500        if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
     1501            psFree(object);
     1502            exit(EXIT_FAILURE);
     1503        }
     1504        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1505            psFree(object);
     1506            exit(EXIT_FAILURE);
     1507        }
     1508
     1509        psFree(object);
     1510    }
     1511
     1512    {
     1513        stackInputSkyfileRow *object;
     1514
     1515        object = stackInputSkyfileRowAlloc(-64, -64    );
     1516
     1517        if (!object) {
     1518            exit(EXIT_FAILURE);
     1519        }
     1520
     1521        if (!object->stack_id == -64) {
     1522            psFree(object);
     1523            exit(EXIT_FAILURE);
     1524        }
     1525        if (!object->warp_id == -64) {
     1526            psFree(object);
     1527            exit(EXIT_FAILURE);
     1528        }
     1529
     1530        psFree(object);
     1531    }
     1532
     1533    {
     1534        stackSumSkyfileRow *object;
     1535
     1536        object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16    );
     1537
     1538        if (!object) {
     1539            exit(EXIT_FAILURE);
     1540        }
     1541
     1542        if (!object->stack_id == -64) {
     1543            psFree(object);
     1544            exit(EXIT_FAILURE);
     1545        }
     1546        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1547            psFree(object);
     1548            exit(EXIT_FAILURE);
     1549        }
     1550        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     1551            psFree(object);
     1552            exit(EXIT_FAILURE);
     1553        }
     1554        if (!object->bg == 64.64) {
     1555            psFree(object);
     1556            exit(EXIT_FAILURE);
     1557        }
     1558        if (!object->bg_stdev == 64.64) {
     1559            psFree(object);
     1560            exit(EXIT_FAILURE);
     1561        }
     1562        if (!object->dtime_stack == 32.32) {
     1563            psFree(object);
     1564            exit(EXIT_FAILURE);
     1565        }
     1566        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     1567            psFree(object);
     1568            exit(EXIT_FAILURE);
     1569        }
     1570        if (!object->good_frac == 32.32) {
     1571            psFree(object);
     1572            exit(EXIT_FAILURE);
     1573        }
     1574        if (!object->fault == -16) {
     1575            psFree(object);
     1576            exit(EXIT_FAILURE);
     1577        }
     1578
     1579        psFree(object);
     1580    }
     1581
     1582    {
     1583        detRunRow       *object;
     1584
     1585        object = detRunRowAlloc(-64, -32, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", 32.32, 32.32, "a string", -32    );
     1586
     1587        if (!object) {
     1588            exit(EXIT_FAILURE);
     1589        }
     1590
     1591        if (!object->det_id == -64) {
     1592            psFree(object);
     1593            exit(EXIT_FAILURE);
     1594        }
     1595        if (!object->iteration == -32) {
     1596            psFree(object);
     1597            exit(EXIT_FAILURE);
     1598        }
     1599        if (strncmp(object->det_type, "a string", MAX_STRING_LENGTH)) {
     1600            psFree(object);
     1601            exit(EXIT_FAILURE);
     1602        }
     1603        if (strncmp(object->mode, "a string", MAX_STRING_LENGTH)) {
     1604            psFree(object);
     1605            exit(EXIT_FAILURE);
     1606        }
     1607        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     1608            psFree(object);
     1609            exit(EXIT_FAILURE);
     1610        }
     1611        if (strncmp(object->filelevel, "a string", MAX_STRING_LENGTH)) {
     1612            psFree(object);
     1613            exit(EXIT_FAILURE);
     1614        }
     1615        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     1616            psFree(object);
     1617            exit(EXIT_FAILURE);
     1618        }
     1619        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
     1620            psFree(object);
     1621            exit(EXIT_FAILURE);
     1622        }
     1623        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
     1624            psFree(object);
     1625            exit(EXIT_FAILURE);
     1626        }
     1627        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
     1628            psFree(object);
     1629            exit(EXIT_FAILURE);
     1630        }
     1631        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     1632            psFree(object);
     1633            exit(EXIT_FAILURE);
     1634        }
     1635        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
     1636            psFree(object);
     1637            exit(EXIT_FAILURE);
     1638        }
     1639        if (!object->airmass_min == 32.32) {
     1640            psFree(object);
     1641            exit(EXIT_FAILURE);
     1642        }
     1643        if (!object->airmass_max == 32.32) {
     1644            psFree(object);
     1645            exit(EXIT_FAILURE);
     1646        }
     1647        if (!object->exp_time_min == 32.32) {
     1648            psFree(object);
     1649            exit(EXIT_FAILURE);
     1650        }
     1651        if (!object->exp_time_max == 32.32) {
     1652            psFree(object);
     1653            exit(EXIT_FAILURE);
     1654        }
     1655        if (!object->ccd_temp_min == 32.32) {
     1656            psFree(object);
     1657            exit(EXIT_FAILURE);
     1658        }
     1659        if (!object->ccd_temp_max == 32.32) {
     1660            psFree(object);
     1661            exit(EXIT_FAILURE);
     1662        }
     1663        if (!object->posang_min == 64.64) {
     1664            psFree(object);
     1665            exit(EXIT_FAILURE);
     1666        }
     1667        if (!object->posang_max == 64.64) {
     1668            psFree(object);
     1669            exit(EXIT_FAILURE);
     1670        }
     1671            psFree(object);
     1672            exit(EXIT_FAILURE);
     1673        }
     1674            psFree(object);
     1675            exit(EXIT_FAILURE);
     1676        }
     1677            psFree(object);
     1678            exit(EXIT_FAILURE);
     1679        }
     1680            psFree(object);
     1681            exit(EXIT_FAILURE);
     1682        }
     1683            psFree(object);
     1684            exit(EXIT_FAILURE);
     1685        }
     1686        if (!object->solang_min == 32.32) {
     1687            psFree(object);
     1688            exit(EXIT_FAILURE);
     1689        }
     1690        if (!object->solang_max == 32.32) {
     1691            psFree(object);
     1692            exit(EXIT_FAILURE);
     1693        }
     1694        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     1695            psFree(object);
     1696            exit(EXIT_FAILURE);
     1697        }
     1698        if (!object->parent == -32) {
     1699            psFree(object);
     1700            exit(EXIT_FAILURE);
     1701        }
     1702
     1703        psFree(object);
     1704    }
     1705
     1706    {
     1707        detInputExpRow  *object;
     1708
     1709        object = detInputExpRowAlloc(-64, -32, -64, true    );
     1710
     1711        if (!object) {
     1712            exit(EXIT_FAILURE);
     1713        }
     1714
     1715        if (!object->det_id == -64) {
     1716            psFree(object);
     1717            exit(EXIT_FAILURE);
     1718        }
     1719        if (!object->iteration == -32) {
     1720            psFree(object);
     1721            exit(EXIT_FAILURE);
     1722        }
    3351723        if (!object->exp_id == -64) {
    3361724            psFree(object);
    3371725            exit(EXIT_FAILURE);
    3381726        }
    339         if (strncmp(object->exp_name, "a string", MAX_STRING_LENGTH)) {
    340             psFree(object);
    341             exit(EXIT_FAILURE);
    342         }
    343         if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
    344             psFree(object);
    345             exit(EXIT_FAILURE);
    346         }
    347         if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
    348             psFree(object);
    349             exit(EXIT_FAILURE);
    350         }
    351             psFree(object);
    352             exit(EXIT_FAILURE);
    353         }
    354         if (strncmp(object->exp_tag, "a string", MAX_STRING_LENGTH)) {
    355             psFree(object);
    356             exit(EXIT_FAILURE);
    357         }
    358         if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
    359             psFree(object);
    360             exit(EXIT_FAILURE);
    361         }
    362         if (strncmp(object->filelevel, "a string", MAX_STRING_LENGTH)) {
     1727        if (!object->include == true) {
     1728            psFree(object);
     1729            exit(EXIT_FAILURE);
     1730        }
     1731
     1732        psFree(object);
     1733    }
     1734
     1735    {
     1736        detProcessedImfileRow *object;
     1737
     1738        object = detProcessedImfileRowAlloc(-64, -64, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
     1739
     1740        if (!object) {
     1741            exit(EXIT_FAILURE);
     1742        }
     1743
     1744        if (!object->det_id == -64) {
     1745            psFree(object);
     1746            exit(EXIT_FAILURE);
     1747        }
     1748        if (!object->exp_id == -64) {
     1749            psFree(object);
     1750            exit(EXIT_FAILURE);
     1751        }
     1752        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1753            psFree(object);
     1754            exit(EXIT_FAILURE);
     1755        }
     1756        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1757            psFree(object);
     1758            exit(EXIT_FAILURE);
     1759        }
     1760        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     1761            psFree(object);
     1762            exit(EXIT_FAILURE);
     1763        }
     1764        if (!object->bg == 64.64) {
     1765            psFree(object);
     1766            exit(EXIT_FAILURE);
     1767        }
     1768        if (!object->bg_stdev == 64.64) {
     1769            psFree(object);
     1770            exit(EXIT_FAILURE);
     1771        }
     1772        if (!object->bg_mean_stdev == 64.64) {
     1773            psFree(object);
     1774            exit(EXIT_FAILURE);
     1775        }
     1776        if (!object->fringe_0 == 64.64) {
     1777            psFree(object);
     1778            exit(EXIT_FAILURE);
     1779        }
     1780        if (!object->fringe_1 == 64.64) {
     1781            psFree(object);
     1782            exit(EXIT_FAILURE);
     1783        }
     1784        if (!object->fringe_2 == 64.64) {
     1785            psFree(object);
     1786            exit(EXIT_FAILURE);
     1787        }
     1788        if (!object->user_1 == 64.64) {
     1789            psFree(object);
     1790            exit(EXIT_FAILURE);
     1791        }
     1792        if (!object->user_2 == 64.64) {
     1793            psFree(object);
     1794            exit(EXIT_FAILURE);
     1795        }
     1796        if (!object->user_3 == 64.64) {
     1797            psFree(object);
     1798            exit(EXIT_FAILURE);
     1799        }
     1800        if (!object->user_4 == 64.64) {
     1801            psFree(object);
     1802            exit(EXIT_FAILURE);
     1803        }
     1804        if (!object->user_5 == 64.64) {
     1805            psFree(object);
     1806            exit(EXIT_FAILURE);
     1807        }
     1808        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     1809            psFree(object);
     1810            exit(EXIT_FAILURE);
     1811        }
     1812        if (!object->fault == -16) {
     1813            psFree(object);
     1814            exit(EXIT_FAILURE);
     1815        }
     1816
     1817        psFree(object);
     1818    }
     1819
     1820    {
     1821        detProcessedExpRow *object;
     1822
     1823        object = detProcessedExpRowAlloc(-64, -64, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
     1824
     1825        if (!object) {
     1826            exit(EXIT_FAILURE);
     1827        }
     1828
     1829        if (!object->det_id == -64) {
     1830            psFree(object);
     1831            exit(EXIT_FAILURE);
     1832        }
     1833        if (!object->exp_id == -64) {
     1834            psFree(object);
     1835            exit(EXIT_FAILURE);
     1836        }
     1837        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     1838            psFree(object);
     1839            exit(EXIT_FAILURE);
     1840        }
     1841        if (!object->bg == 64.64) {
     1842            psFree(object);
     1843            exit(EXIT_FAILURE);
     1844        }
     1845        if (!object->bg_stdev == 64.64) {
     1846            psFree(object);
     1847            exit(EXIT_FAILURE);
     1848        }
     1849        if (!object->bg_mean_stdev == 64.64) {
     1850            psFree(object);
     1851            exit(EXIT_FAILURE);
     1852        }
     1853        if (!object->fringe_0 == 64.64) {
     1854            psFree(object);
     1855            exit(EXIT_FAILURE);
     1856        }
     1857        if (!object->fringe_1 == 64.64) {
     1858            psFree(object);
     1859            exit(EXIT_FAILURE);
     1860        }
     1861        if (!object->fringe_2 == 64.64) {
     1862            psFree(object);
     1863            exit(EXIT_FAILURE);
     1864        }
     1865        if (!object->user_1 == 64.64) {
     1866            psFree(object);
     1867            exit(EXIT_FAILURE);
     1868        }
     1869        if (!object->user_2 == 64.64) {
     1870            psFree(object);
     1871            exit(EXIT_FAILURE);
     1872        }
     1873        if (!object->user_3 == 64.64) {
     1874            psFree(object);
     1875            exit(EXIT_FAILURE);
     1876        }
     1877        if (!object->user_4 == 64.64) {
     1878            psFree(object);
     1879            exit(EXIT_FAILURE);
     1880        }
     1881        if (!object->user_5 == 64.64) {
     1882            psFree(object);
     1883            exit(EXIT_FAILURE);
     1884        }
     1885        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     1886            psFree(object);
     1887            exit(EXIT_FAILURE);
     1888        }
     1889        if (!object->fault == -16) {
     1890            psFree(object);
     1891            exit(EXIT_FAILURE);
     1892        }
     1893
     1894        psFree(object);
     1895    }
     1896
     1897    {
     1898        detStackedImfileRow *object;
     1899
     1900        object = detStackedImfileRowAlloc(-64, -32, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, -16    );
     1901
     1902        if (!object) {
     1903            exit(EXIT_FAILURE);
     1904        }
     1905
     1906        if (!object->det_id == -64) {
     1907            psFree(object);
     1908            exit(EXIT_FAILURE);
     1909        }
     1910        if (!object->iteration == -32) {
     1911            psFree(object);
     1912            exit(EXIT_FAILURE);
     1913        }
     1914        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1915            psFree(object);
     1916            exit(EXIT_FAILURE);
     1917        }
     1918        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1919            psFree(object);
     1920            exit(EXIT_FAILURE);
     1921        }
     1922        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     1923            psFree(object);
     1924            exit(EXIT_FAILURE);
     1925        }
     1926        if (!object->bg == 64.64) {
     1927            psFree(object);
     1928            exit(EXIT_FAILURE);
     1929        }
     1930        if (!object->bg_stdev == 64.64) {
     1931            psFree(object);
     1932            exit(EXIT_FAILURE);
     1933        }
     1934        if (!object->bg_mean_stdev == 64.64) {
     1935            psFree(object);
     1936            exit(EXIT_FAILURE);
     1937        }
     1938        if (!object->user_1 == 64.64) {
     1939            psFree(object);
     1940            exit(EXIT_FAILURE);
     1941        }
     1942        if (!object->user_2 == 64.64) {
     1943            psFree(object);
     1944            exit(EXIT_FAILURE);
     1945        }
     1946        if (!object->user_3 == 64.64) {
     1947            psFree(object);
     1948            exit(EXIT_FAILURE);
     1949        }
     1950        if (!object->user_4 == 64.64) {
     1951            psFree(object);
     1952            exit(EXIT_FAILURE);
     1953        }
     1954        if (!object->user_5 == 64.64) {
     1955            psFree(object);
     1956            exit(EXIT_FAILURE);
     1957        }
     1958        if (!object->fault == -16) {
     1959            psFree(object);
     1960            exit(EXIT_FAILURE);
     1961        }
     1962
     1963        psFree(object);
     1964    }
     1965
     1966    {
     1967        detNormalizedStatImfileRow *object;
     1968
     1969        object = detNormalizedStatImfileRowAlloc(-64, -32, "a string", 32.32, -16    );
     1970
     1971        if (!object) {
     1972            exit(EXIT_FAILURE);
     1973        }
     1974
     1975        if (!object->det_id == -64) {
     1976            psFree(object);
     1977            exit(EXIT_FAILURE);
     1978        }
     1979        if (!object->iteration == -32) {
     1980            psFree(object);
     1981            exit(EXIT_FAILURE);
     1982        }
     1983        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1984            psFree(object);
     1985            exit(EXIT_FAILURE);
     1986        }
     1987        if (!object->norm == 32.32) {
     1988            psFree(object);
     1989            exit(EXIT_FAILURE);
     1990        }
     1991        if (!object->fault == -16) {
     1992            psFree(object);
     1993            exit(EXIT_FAILURE);
     1994        }
     1995
     1996        psFree(object);
     1997    }
     1998
     1999    {
     2000        detNormalizedImfileRow *object;
     2001
     2002        object = detNormalizedImfileRowAlloc(-64, -32, "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
     2003
     2004        if (!object) {
     2005            exit(EXIT_FAILURE);
     2006        }
     2007
     2008        if (!object->det_id == -64) {
     2009            psFree(object);
     2010            exit(EXIT_FAILURE);
     2011        }
     2012        if (!object->iteration == -32) {
     2013            psFree(object);
     2014            exit(EXIT_FAILURE);
     2015        }
     2016        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2017            psFree(object);
     2018            exit(EXIT_FAILURE);
     2019        }
     2020        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2021            psFree(object);
     2022            exit(EXIT_FAILURE);
     2023        }
     2024        if (!object->bg == 64.64) {
     2025            psFree(object);
     2026            exit(EXIT_FAILURE);
     2027        }
     2028        if (!object->bg_stdev == 64.64) {
     2029            psFree(object);
     2030            exit(EXIT_FAILURE);
     2031        }
     2032        if (!object->bg_mean_stdev == 64.64) {
     2033            psFree(object);
     2034            exit(EXIT_FAILURE);
     2035        }
     2036        if (!object->user_1 == 64.64) {
     2037            psFree(object);
     2038            exit(EXIT_FAILURE);
     2039        }
     2040        if (!object->user_2 == 64.64) {
     2041            psFree(object);
     2042            exit(EXIT_FAILURE);
     2043        }
     2044        if (!object->user_3 == 64.64) {
     2045            psFree(object);
     2046            exit(EXIT_FAILURE);
     2047        }
     2048        if (!object->user_4 == 64.64) {
     2049            psFree(object);
     2050            exit(EXIT_FAILURE);
     2051        }
     2052        if (!object->user_5 == 64.64) {
     2053            psFree(object);
     2054            exit(EXIT_FAILURE);
     2055        }
     2056        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2057            psFree(object);
     2058            exit(EXIT_FAILURE);
     2059        }
     2060        if (!object->fault == -16) {
     2061            psFree(object);
     2062            exit(EXIT_FAILURE);
     2063        }
     2064
     2065        psFree(object);
     2066    }
     2067
     2068    {
     2069        detNormalizedExpRow *object;
     2070
     2071        object = detNormalizedExpRowAlloc(-64, -32, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
     2072
     2073        if (!object) {
     2074            exit(EXIT_FAILURE);
     2075        }
     2076
     2077        if (!object->det_id == -64) {
     2078            psFree(object);
     2079            exit(EXIT_FAILURE);
     2080        }
     2081        if (!object->iteration == -32) {
     2082            psFree(object);
     2083            exit(EXIT_FAILURE);
     2084        }
     2085        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2086            psFree(object);
     2087            exit(EXIT_FAILURE);
     2088        }
     2089        if (!object->bg == 64.64) {
     2090            psFree(object);
     2091            exit(EXIT_FAILURE);
     2092        }
     2093        if (!object->bg_stdev == 64.64) {
     2094            psFree(object);
     2095            exit(EXIT_FAILURE);
     2096        }
     2097        if (!object->bg_mean_stdev == 64.64) {
     2098            psFree(object);
     2099            exit(EXIT_FAILURE);
     2100        }
     2101        if (!object->user_1 == 64.64) {
     2102            psFree(object);
     2103            exit(EXIT_FAILURE);
     2104        }
     2105        if (!object->user_2 == 64.64) {
     2106            psFree(object);
     2107            exit(EXIT_FAILURE);
     2108        }
     2109        if (!object->user_3 == 64.64) {
     2110            psFree(object);
     2111            exit(EXIT_FAILURE);
     2112        }
     2113        if (!object->user_4 == 64.64) {
     2114            psFree(object);
     2115            exit(EXIT_FAILURE);
     2116        }
     2117        if (!object->user_5 == 64.64) {
     2118            psFree(object);
     2119            exit(EXIT_FAILURE);
     2120        }
     2121        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2122            psFree(object);
     2123            exit(EXIT_FAILURE);
     2124        }
     2125        if (!object->fault == -16) {
     2126            psFree(object);
     2127            exit(EXIT_FAILURE);
     2128        }
     2129
     2130        psFree(object);
     2131    }
     2132
     2133    {
     2134        detResidImfileRow *object;
     2135
     2136        object = detResidImfileRowAlloc(-64, -32, -64, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
     2137
     2138        if (!object) {
     2139            exit(EXIT_FAILURE);
     2140        }
     2141
     2142        if (!object->det_id == -64) {
     2143            psFree(object);
     2144            exit(EXIT_FAILURE);
     2145        }
     2146        if (!object->iteration == -32) {
     2147            psFree(object);
     2148            exit(EXIT_FAILURE);
     2149        }
     2150        if (!object->exp_id == -64) {
     2151            psFree(object);
     2152            exit(EXIT_FAILURE);
     2153        }
     2154        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2155            psFree(object);
     2156            exit(EXIT_FAILURE);
     2157        }
     2158        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2159            psFree(object);
     2160            exit(EXIT_FAILURE);
     2161        }
     2162        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2163            psFree(object);
     2164            exit(EXIT_FAILURE);
     2165        }
     2166        if (!object->bg == 64.64) {
     2167            psFree(object);
     2168            exit(EXIT_FAILURE);
     2169        }
     2170        if (!object->bg_stdev == 64.64) {
     2171            psFree(object);
     2172            exit(EXIT_FAILURE);
     2173        }
     2174        if (!object->bg_mean_stdev == 64.64) {
     2175            psFree(object);
     2176            exit(EXIT_FAILURE);
     2177        }
     2178        if (!object->bg_skewness == 64.64) {
     2179            psFree(object);
     2180            exit(EXIT_FAILURE);
     2181        }
     2182        if (!object->bg_kurtosis == 64.64) {
     2183            psFree(object);
     2184            exit(EXIT_FAILURE);
     2185        }
     2186        if (!object->bin_stdev == 64.64) {
     2187            psFree(object);
     2188            exit(EXIT_FAILURE);
     2189        }
     2190        if (!object->fringe_0 == 64.64) {
     2191            psFree(object);
     2192            exit(EXIT_FAILURE);
     2193        }
     2194        if (!object->fringe_1 == 64.64) {
     2195            psFree(object);
     2196            exit(EXIT_FAILURE);
     2197        }
     2198        if (!object->fringe_2 == 64.64) {
     2199            psFree(object);
     2200            exit(EXIT_FAILURE);
     2201        }
     2202        if (!object->fringe_resid_0 == 64.64) {
     2203            psFree(object);
     2204            exit(EXIT_FAILURE);
     2205        }
     2206        if (!object->fringe_resid_1 == 64.64) {
     2207            psFree(object);
     2208            exit(EXIT_FAILURE);
     2209        }
     2210        if (!object->fringe_resid_2 == 64.64) {
     2211            psFree(object);
     2212            exit(EXIT_FAILURE);
     2213        }
     2214        if (!object->user_1 == 64.64) {
     2215            psFree(object);
     2216            exit(EXIT_FAILURE);
     2217        }
     2218        if (!object->user_2 == 64.64) {
     2219            psFree(object);
     2220            exit(EXIT_FAILURE);
     2221        }
     2222        if (!object->user_3 == 64.64) {
     2223            psFree(object);
     2224            exit(EXIT_FAILURE);
     2225        }
     2226        if (!object->user_4 == 64.64) {
     2227            psFree(object);
     2228            exit(EXIT_FAILURE);
     2229        }
     2230        if (!object->user_5 == 64.64) {
     2231            psFree(object);
     2232            exit(EXIT_FAILURE);
     2233        }
     2234        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2235            psFree(object);
     2236            exit(EXIT_FAILURE);
     2237        }
     2238        if (!object->fault == -16) {
     2239            psFree(object);
     2240            exit(EXIT_FAILURE);
     2241        }
     2242
     2243        psFree(object);
     2244    }
     2245
     2246    {
     2247        detResidExpRow  *object;
     2248
     2249        object = detResidExpRowAlloc(-64, -32, -64, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", true, -16    );
     2250
     2251        if (!object) {
     2252            exit(EXIT_FAILURE);
     2253        }
     2254
     2255        if (!object->det_id == -64) {
     2256            psFree(object);
     2257            exit(EXIT_FAILURE);
     2258        }
     2259        if (!object->iteration == -32) {
     2260            psFree(object);
     2261            exit(EXIT_FAILURE);
     2262        }
     2263        if (!object->exp_id == -64) {
     2264            psFree(object);
     2265            exit(EXIT_FAILURE);
     2266        }
     2267        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2268            psFree(object);
     2269            exit(EXIT_FAILURE);
     2270        }
     2271        if (!object->bg == 64.64) {
     2272            psFree(object);
     2273            exit(EXIT_FAILURE);
     2274        }
     2275        if (!object->bg_stdev == 64.64) {
     2276            psFree(object);
     2277            exit(EXIT_FAILURE);
     2278        }
     2279        if (!object->bg_mean_stdev == 64.64) {
     2280            psFree(object);
     2281            exit(EXIT_FAILURE);
     2282        }
     2283        if (!object->bg_skewness == 64.64) {
     2284            psFree(object);
     2285            exit(EXIT_FAILURE);
     2286        }
     2287        if (!object->bg_kurtosis == 64.64) {
     2288            psFree(object);
     2289            exit(EXIT_FAILURE);
     2290        }
     2291        if (!object->bin_stdev == 64.64) {
     2292            psFree(object);
     2293            exit(EXIT_FAILURE);
     2294        }
     2295        if (!object->fringe_0 == 64.64) {
     2296            psFree(object);
     2297            exit(EXIT_FAILURE);
     2298        }
     2299        if (!object->fringe_1 == 64.64) {
     2300            psFree(object);
     2301            exit(EXIT_FAILURE);
     2302        }
     2303        if (!object->fringe_2 == 64.64) {
     2304            psFree(object);
     2305            exit(EXIT_FAILURE);
     2306        }
     2307        if (!object->fringe_resid_0 == 64.64) {
     2308            psFree(object);
     2309            exit(EXIT_FAILURE);
     2310        }
     2311        if (!object->fringe_resid_1 == 64.64) {
     2312            psFree(object);
     2313            exit(EXIT_FAILURE);
     2314        }
     2315        if (!object->fringe_resid_2 == 64.64) {
     2316            psFree(object);
     2317            exit(EXIT_FAILURE);
     2318        }
     2319        if (!object->user_1 == 64.64) {
     2320            psFree(object);
     2321            exit(EXIT_FAILURE);
     2322        }
     2323        if (!object->user_2 == 64.64) {
     2324            psFree(object);
     2325            exit(EXIT_FAILURE);
     2326        }
     2327        if (!object->user_3 == 64.64) {
     2328            psFree(object);
     2329            exit(EXIT_FAILURE);
     2330        }
     2331        if (!object->user_4 == 64.64) {
     2332            psFree(object);
     2333            exit(EXIT_FAILURE);
     2334        }
     2335        if (!object->user_5 == 64.64) {
     2336            psFree(object);
     2337            exit(EXIT_FAILURE);
     2338        }
     2339        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2340            psFree(object);
     2341            exit(EXIT_FAILURE);
     2342        }
     2343        if (!object->accept == true) {
     2344            psFree(object);
     2345            exit(EXIT_FAILURE);
     2346        }
     2347        if (!object->fault == -16) {
     2348            psFree(object);
     2349            exit(EXIT_FAILURE);
     2350        }
     2351
     2352        psFree(object);
     2353    }
     2354
     2355    {
     2356        detRunSummaryRow *object;
     2357
     2358        object = detRunSummaryRowAlloc(-64, -32, 64.64, 64.64, 64.64, true, -16    );
     2359
     2360        if (!object) {
     2361            exit(EXIT_FAILURE);
     2362        }
     2363
     2364        if (!object->det_id == -64) {
     2365            psFree(object);
     2366            exit(EXIT_FAILURE);
     2367        }
     2368        if (!object->iteration == -32) {
     2369            psFree(object);
     2370            exit(EXIT_FAILURE);
     2371        }
     2372        if (!object->bg == 64.64) {
     2373            psFree(object);
     2374            exit(EXIT_FAILURE);
     2375        }
     2376        if (!object->bg_stdev == 64.64) {
     2377            psFree(object);
     2378            exit(EXIT_FAILURE);
     2379        }
     2380        if (!object->bg_mean_stdev == 64.64) {
     2381            psFree(object);
     2382            exit(EXIT_FAILURE);
     2383        }
     2384        if (!object->accept == true) {
     2385            psFree(object);
     2386            exit(EXIT_FAILURE);
     2387        }
     2388        if (!object->fault == -16) {
     2389            psFree(object);
     2390            exit(EXIT_FAILURE);
     2391        }
     2392
     2393        psFree(object);
     2394    }
     2395
     2396    {
     2397        detRegisteredImfileRow *object;
     2398
     2399        object = detRegisteredImfileRowAlloc(-64, -32, "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
     2400
     2401        if (!object) {
     2402            exit(EXIT_FAILURE);
     2403        }
     2404
     2405        if (!object->det_id == -64) {
     2406            psFree(object);
     2407            exit(EXIT_FAILURE);
     2408        }
     2409        if (!object->iteration == -32) {
     2410            psFree(object);
     2411            exit(EXIT_FAILURE);
     2412        }
     2413        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2414            psFree(object);
     2415            exit(EXIT_FAILURE);
     2416        }
     2417        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2418            psFree(object);
     2419            exit(EXIT_FAILURE);
     2420        }
     2421        if (!object->bg == 64.64) {
     2422            psFree(object);
     2423            exit(EXIT_FAILURE);
     2424        }
     2425        if (!object->bg_stdev == 64.64) {
     2426            psFree(object);
     2427            exit(EXIT_FAILURE);
     2428        }
     2429        if (!object->bg_mean_stdev == 64.64) {
     2430            psFree(object);
     2431            exit(EXIT_FAILURE);
     2432        }
     2433        if (!object->user_1 == 64.64) {
     2434            psFree(object);
     2435            exit(EXIT_FAILURE);
     2436        }
     2437        if (!object->user_2 == 64.64) {
     2438            psFree(object);
     2439            exit(EXIT_FAILURE);
     2440        }
     2441        if (!object->user_3 == 64.64) {
     2442            psFree(object);
     2443            exit(EXIT_FAILURE);
     2444        }
     2445        if (!object->user_4 == 64.64) {
     2446            psFree(object);
     2447            exit(EXIT_FAILURE);
     2448        }
     2449        if (!object->user_5 == 64.64) {
     2450            psFree(object);
     2451            exit(EXIT_FAILURE);
     2452        }
     2453        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2454            psFree(object);
     2455            exit(EXIT_FAILURE);
     2456        }
     2457        if (!object->fault == -16) {
     2458            psFree(object);
     2459            exit(EXIT_FAILURE);
     2460        }
     2461
     2462        psFree(object);
     2463    }
     2464
     2465    {
     2466        detCorrectedExpRow *object;
     2467
     2468        object = detCorrectedExpRowAlloc(-64, -64, "a string", -64, "a string", "a string", "a string", -16    );
     2469
     2470        if (!object) {
     2471            exit(EXIT_FAILURE);
     2472        }
     2473
     2474        if (!object->det_id == -64) {
     2475            psFree(object);
     2476            exit(EXIT_FAILURE);
     2477        }
     2478        if (!object->exp_id == -64) {
     2479            psFree(object);
     2480            exit(EXIT_FAILURE);
     2481        }
     2482        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2483            psFree(object);
     2484            exit(EXIT_FAILURE);
     2485        }
     2486        if (!object->corr_id == -64) {
     2487            psFree(object);
     2488            exit(EXIT_FAILURE);
     2489        }
     2490        if (strncmp(object->corr_type, "a string", MAX_STRING_LENGTH)) {
     2491            psFree(object);
     2492            exit(EXIT_FAILURE);
     2493        }
     2494        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2495            psFree(object);
     2496            exit(EXIT_FAILURE);
     2497        }
     2498        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2499            psFree(object);
     2500            exit(EXIT_FAILURE);
     2501        }
     2502        if (!object->fault == -16) {
     2503            psFree(object);
     2504            exit(EXIT_FAILURE);
     2505        }
     2506
     2507        psFree(object);
     2508    }
     2509
     2510    {
     2511        detCorrectedImfileRow *object;
     2512
     2513        object = detCorrectedImfileRowAlloc(-64, -64, "a string", "a string", "a string", -16    );
     2514
     2515        if (!object) {
     2516            exit(EXIT_FAILURE);
     2517        }
     2518
     2519        if (!object->det_id == -64) {
     2520            psFree(object);
     2521            exit(EXIT_FAILURE);
     2522        }
     2523        if (!object->exp_id == -64) {
     2524            psFree(object);
     2525            exit(EXIT_FAILURE);
     2526        }
     2527        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2528            psFree(object);
     2529            exit(EXIT_FAILURE);
     2530        }
     2531        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2532            psFree(object);
     2533            exit(EXIT_FAILURE);
     2534        }
     2535        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2536            psFree(object);
     2537            exit(EXIT_FAILURE);
     2538        }
     2539        if (!object->fault == -16) {
     2540            psFree(object);
     2541            exit(EXIT_FAILURE);
     2542        }
     2543
     2544        psFree(object);
     2545    }
     2546
     2547    {
     2548        magicRunRow     *object;
     2549
     2550        object = magicRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z"    );
     2551
     2552        if (!object) {
     2553            exit(EXIT_FAILURE);
     2554        }
     2555
     2556        if (!object->magic_id == -64) {
     2557            psFree(object);
     2558            exit(EXIT_FAILURE);
     2559        }
     2560        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    3632561            psFree(object);
    3642562            exit(EXIT_FAILURE);
     
    3682566            exit(EXIT_FAILURE);
    3692567        }
    370         if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     2568        if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
     2569            psFree(object);
     2570            exit(EXIT_FAILURE);
     2571        }
     2572        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    3712573            psFree(object);
    3722574            exit(EXIT_FAILURE);
     
    3762578            exit(EXIT_FAILURE);
    3772579        }
    378         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    379             psFree(object);
    380             exit(EXIT_FAILURE);
    381         }
    382         if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
     2580            psFree(object);
     2581            exit(EXIT_FAILURE);
     2582        }
     2583
     2584        psFree(object);
     2585    }
     2586
     2587    {
     2588        magicInputSkyfileRow *object;
     2589
     2590        object = magicInputSkyfileRowAlloc(-64, -64, "a string"    );
     2591
     2592        if (!object) {
     2593            exit(EXIT_FAILURE);
     2594        }
     2595
     2596        if (!object->magic_id == -64) {
     2597            psFree(object);
     2598            exit(EXIT_FAILURE);
     2599        }
     2600        if (!object->diff_id == -64) {
     2601            psFree(object);
     2602            exit(EXIT_FAILURE);
     2603        }
     2604        if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
     2605            psFree(object);
     2606            exit(EXIT_FAILURE);
     2607        }
     2608
     2609        psFree(object);
     2610    }
     2611
     2612    {
     2613        magicTreeRow    *object;
     2614
     2615        object = magicTreeRowAlloc(-64, "a string", "a string"    );
     2616
     2617        if (!object) {
     2618            exit(EXIT_FAILURE);
     2619        }
     2620
     2621        if (!object->magic_id == -64) {
     2622            psFree(object);
     2623            exit(EXIT_FAILURE);
     2624        }
     2625        if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
     2626            psFree(object);
     2627            exit(EXIT_FAILURE);
     2628        }
     2629        if (strncmp(object->dep, "a string", MAX_STRING_LENGTH)) {
     2630            psFree(object);
     2631            exit(EXIT_FAILURE);
     2632        }
     2633
     2634        psFree(object);
     2635    }
     2636
     2637    {
     2638        magicNodeResultRow *object;
     2639
     2640        object = magicNodeResultRowAlloc(-64, "a string", "a string"    );
     2641
     2642        if (!object) {
     2643            exit(EXIT_FAILURE);
     2644        }
     2645
     2646        if (!object->magic_id == -64) {
     2647            psFree(object);
     2648            exit(EXIT_FAILURE);
     2649        }
     2650        if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
     2651            psFree(object);
     2652            exit(EXIT_FAILURE);
     2653        }
     2654        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2655            psFree(object);
     2656            exit(EXIT_FAILURE);
     2657        }
     2658
     2659        psFree(object);
     2660    }
     2661
     2662    {
     2663        magicMaskRow    *object;
     2664
     2665        object = magicMaskRowAlloc(-64, "a string"    );
     2666
     2667        if (!object) {
     2668            exit(EXIT_FAILURE);
     2669        }
     2670
     2671        if (!object->magic_id == -64) {
     2672            psFree(object);
     2673            exit(EXIT_FAILURE);
     2674        }
     2675        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2676            psFree(object);
     2677            exit(EXIT_FAILURE);
     2678        }
     2679
     2680        psFree(object);
     2681    }
     2682
     2683    {
     2684        magicSkyfileMaskRow *object;
     2685
     2686        object = magicSkyfileMaskRowAlloc(-64, -64, "a string"    );
     2687
     2688        if (!object) {
     2689            exit(EXIT_FAILURE);
     2690        }
     2691
     2692        if (!object->magic_id == -64) {
     2693            psFree(object);
     2694            exit(EXIT_FAILURE);
     2695        }
     2696        if (!object->diff_id == -64) {
     2697            psFree(object);
     2698            exit(EXIT_FAILURE);
     2699        }
     2700        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2701            psFree(object);
     2702            exit(EXIT_FAILURE);
     2703        }
     2704
     2705        psFree(object);
     2706    }
     2707
     2708    {
     2709        calDBRow        *object;
     2710
     2711        object = calDBRowAlloc(-64, "a string", "a string"    );
     2712
     2713        if (!object) {
     2714            exit(EXIT_FAILURE);
     2715        }
     2716
     2717        if (!object->cal_id == -64) {
     2718            psFree(object);
     2719            exit(EXIT_FAILURE);
     2720        }
     2721        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     2722            psFree(object);
     2723            exit(EXIT_FAILURE);
     2724        }
     2725        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     2726            psFree(object);
     2727            exit(EXIT_FAILURE);
     2728        }
     2729
     2730        psFree(object);
     2731    }
     2732
     2733    {
     2734        calRunRow       *object;
     2735
     2736        object = calRunRowAlloc(-64, "a string", "a string", "a string"    );
     2737
     2738        if (!object) {
     2739            exit(EXIT_FAILURE);
     2740        }
     2741
     2742        if (!object->cal_id == -64) {
     2743            psFree(object);
     2744            exit(EXIT_FAILURE);
     2745        }
     2746        if (strncmp(object->region, "a string", MAX_STRING_LENGTH)) {
     2747            psFree(object);
     2748            exit(EXIT_FAILURE);
     2749        }
     2750        if (strncmp(object->last_step, "a string", MAX_STRING_LENGTH)) {
     2751            psFree(object);
     2752            exit(EXIT_FAILURE);
     2753        }
     2754        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     2755            psFree(object);
     2756            exit(EXIT_FAILURE);
     2757        }
     2758
     2759        psFree(object);
     2760    }
     2761
     2762    {
     2763        flatcorrRunRow  *object;
     2764
     2765        object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string"    );
     2766
     2767        if (!object) {
     2768            exit(EXIT_FAILURE);
     2769        }
     2770
     2771        if (!object->corr_id == -64) {
     2772            psFree(object);
     2773            exit(EXIT_FAILURE);
     2774        }
     2775        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    3832776            psFree(object);
    3842777            exit(EXIT_FAILURE);
     
    3882781            exit(EXIT_FAILURE);
    3892782        }
    390         if (strncmp(object->comment, "a string", MAX_STRING_LENGTH)) {
    391             psFree(object);
    392             exit(EXIT_FAILURE);
    393         }
    394         if (!object->airmass == 32.32) {
    395             psFree(object);
    396             exit(EXIT_FAILURE);
    397         }
    398         if (!object->ra == 64.64) {
    399             psFree(object);
    400             exit(EXIT_FAILURE);
    401         }
    402         if (!object->decl == 64.64) {
    403             psFree(object);
    404             exit(EXIT_FAILURE);
    405         }
    406         if (!object->exp_time == 32.32) {
    407             psFree(object);
    408             exit(EXIT_FAILURE);
    409         }
    410         if (!object->sat_pixel_frac == 32.32) {
    411             psFree(object);
    412             exit(EXIT_FAILURE);
    413         }
    414         if (!object->bg == 64.64) {
    415             psFree(object);
    416             exit(EXIT_FAILURE);
    417         }
    418         if (!object->bg_stdev == 64.64) {
    419             psFree(object);
    420             exit(EXIT_FAILURE);
    421         }
    422         if (!object->bg_mean_stdev == 64.64) {
    423             psFree(object);
    424             exit(EXIT_FAILURE);
    425         }
    426         if (!object->alt == 64.64) {
    427             psFree(object);
    428             exit(EXIT_FAILURE);
    429         }
    430         if (!object->az == 64.64) {
    431             psFree(object);
    432             exit(EXIT_FAILURE);
    433         }
    434         if (!object->ccd_temp == 32.32) {
    435             psFree(object);
    436             exit(EXIT_FAILURE);
    437         }
    438         if (!object->posang == 64.64) {
    439             psFree(object);
    440             exit(EXIT_FAILURE);
    441         }
    442         if (!object->m1_x == 32.32) {
    443             psFree(object);
    444             exit(EXIT_FAILURE);
    445         }
    446         if (!object->m1_y == 32.32) {
    447             psFree(object);
    448             exit(EXIT_FAILURE);
    449         }
    450         if (!object->m1_z == 32.32) {
    451             psFree(object);
    452             exit(EXIT_FAILURE);
    453         }
    454         if (!object->m1_tip == 32.32) {
    455             psFree(object);
    456             exit(EXIT_FAILURE);
    457         }
    458         if (!object->m1_tilt == 32.32) {
    459             psFree(object);
    460             exit(EXIT_FAILURE);
    461         }
    462         if (!object->m2_x == 32.32) {
    463             psFree(object);
    464             exit(EXIT_FAILURE);
    465         }
    466         if (!object->m2_y == 32.32) {
    467             psFree(object);
    468             exit(EXIT_FAILURE);
    469         }
    470         if (!object->m2_z == 32.32) {
    471             psFree(object);
    472             exit(EXIT_FAILURE);
    473         }
    474         if (!object->m2_tip == 32.32) {
    475             psFree(object);
    476             exit(EXIT_FAILURE);
    477         }
    478         if (!object->m2_tilt == 32.32) {
    479             psFree(object);
    480             exit(EXIT_FAILURE);
    481         }
    482         if (!object->env_temperature == 32.32) {
    483             psFree(object);
    484             exit(EXIT_FAILURE);
    485         }
    486         if (!object->env_humidity == 32.32) {
    487             psFree(object);
    488             exit(EXIT_FAILURE);
    489         }
    490         if (!object->env_wind_speed == 32.32) {
    491             psFree(object);
    492             exit(EXIT_FAILURE);
    493         }
    494         if (!object->env_wind_dir == 32.32) {
    495             psFree(object);
    496             exit(EXIT_FAILURE);
    497         }
    498         if (!object->teltemp_m1 == 32.32) {
    499             psFree(object);
    500             exit(EXIT_FAILURE);
    501         }
    502         if (!object->teltemp_m1cell == 32.32) {
    503             psFree(object);
    504             exit(EXIT_FAILURE);
    505         }
    506         if (!object->teltemp_m2 == 32.32) {
    507             psFree(object);
    508             exit(EXIT_FAILURE);
    509         }
    510         if (!object->teltemp_spider == 32.32) {
    511             psFree(object);
    512             exit(EXIT_FAILURE);
    513         }
    514         if (!object->teltemp_truss == 32.32) {
    515             psFree(object);
    516             exit(EXIT_FAILURE);
    517         }
    518         if (!object->teltemp_extra == 32.32) {
    519             psFree(object);
    520             exit(EXIT_FAILURE);
    521         }
    522         if (!object->pon_time == 32.32) {
    523             psFree(object);
    524             exit(EXIT_FAILURE);
    525         }
    526         if (!object->user_1 == 64.64) {
    527             psFree(object);
    528             exit(EXIT_FAILURE);
    529         }
    530         if (!object->user_2 == 64.64) {
    531             psFree(object);
    532             exit(EXIT_FAILURE);
    533         }
    534         if (!object->user_3 == 64.64) {
    535             psFree(object);
    536             exit(EXIT_FAILURE);
    537         }
    538         if (!object->user_4 == 64.64) {
    539             psFree(object);
    540             exit(EXIT_FAILURE);
    541         }
    542         if (!object->user_5 == 64.64) {
    543             psFree(object);
    544             exit(EXIT_FAILURE);
    545         }
    546         if (strncmp(object->object, "a string", MAX_STRING_LENGTH)) {
    547             psFree(object);
    548             exit(EXIT_FAILURE);
    549         }
    550         if (!object->solang == 32.32) {
    551             psFree(object);
    552             exit(EXIT_FAILURE);
    553         }
    554         if (!object->fault == -16) {
    555             psFree(object);
    556             exit(EXIT_FAILURE);
    557         }
    558 
    559         psFree(object);
    560     }
    561 
    562     {
    563         rawImfileRow    *object;
    564 
    565         object = rawImfileRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
    566 
    567         if (!object) {
    568             exit(EXIT_FAILURE);
    569         }
    570 
    571         if (!object->exp_id == -64) {
    572             psFree(object);
    573             exit(EXIT_FAILURE);
    574         }
    575         if (strncmp(object->exp_name, "a string", MAX_STRING_LENGTH)) {
    576             psFree(object);
    577             exit(EXIT_FAILURE);
    578         }
    579         if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
    580             psFree(object);
    581             exit(EXIT_FAILURE);
    582         }
    583         if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
    584             psFree(object);
    585             exit(EXIT_FAILURE);
    586         }
    587             psFree(object);
    588             exit(EXIT_FAILURE);
    589         }
    590         if (strncmp(object->tmp_class_id, "a string", MAX_STRING_LENGTH)) {
    591             psFree(object);
    592             exit(EXIT_FAILURE);
    593         }
    594         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2783        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     2784            psFree(object);
     2785            exit(EXIT_FAILURE);
     2786        }
     2787        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     2788            psFree(object);
     2789            exit(EXIT_FAILURE);
     2790        }
     2791        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     2792            psFree(object);
     2793            exit(EXIT_FAILURE);
     2794        }
     2795        if (strncmp(object->stats, "a string", MAX_STRING_LENGTH)) {
     2796            psFree(object);
     2797            exit(EXIT_FAILURE);
     2798        }
     2799
     2800        psFree(object);
     2801    }
     2802
     2803    {
     2804        flatcorrExpRow  *object;
     2805
     2806        object = flatcorrExpRowAlloc(-64, -64    );
     2807
     2808        if (!object) {
     2809            exit(EXIT_FAILURE);
     2810        }
     2811
     2812        if (!object->corr_id == -64) {
     2813            psFree(object);
     2814            exit(EXIT_FAILURE);
     2815        }
     2816        if (!object->chip_id == -64) {
     2817            psFree(object);
     2818            exit(EXIT_FAILURE);
     2819        }
     2820
     2821        psFree(object);
     2822    }
     2823
     2824    {
     2825        pstampDataStoreRow *object;
     2826
     2827        object = pstampDataStoreRowAlloc(-64, "a string", "a string", "a string"    );
     2828
     2829        if (!object) {
     2830            exit(EXIT_FAILURE);
     2831        }
     2832
     2833        if (!object->ds_id == -64) {
    5952834            psFree(object);
    5962835            exit(EXIT_FAILURE);
     
    6002839            exit(EXIT_FAILURE);
    6012840        }
    602         if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
    603             psFree(object);
    604             exit(EXIT_FAILURE);
    605         }
    606         if (strncmp(object->filelevel, "a string", MAX_STRING_LENGTH)) {
    607             psFree(object);
    608             exit(EXIT_FAILURE);
    609         }
    610         if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
    611             psFree(object);
    612             exit(EXIT_FAILURE);
    613         }
    614         if (strncmp(object->comment, "a string", MAX_STRING_LENGTH)) {
    615             psFree(object);
    616             exit(EXIT_FAILURE);
    617         }
    618         if (!object->airmass == 32.32) {
    619             psFree(object);
    620             exit(EXIT_FAILURE);
    621         }
    622         if (!object->ra == 64.64) {
    623             psFree(object);
    624             exit(EXIT_FAILURE);
    625         }
    626         if (!object->decl == 64.64) {
    627             psFree(object);
    628             exit(EXIT_FAILURE);
    629         }
    630         if (!object->exp_time == 32.32) {
    631             psFree(object);
    632             exit(EXIT_FAILURE);
    633         }
    634         if (!object->sat_pixel_frac == 32.32) {
    635             psFree(object);
    636             exit(EXIT_FAILURE);
    637         }
    638         if (!object->bg == 64.64) {
    639             psFree(object);
    640             exit(EXIT_FAILURE);
    641         }
    642         if (!object->bg_stdev == 64.64) {
    643             psFree(object);
    644             exit(EXIT_FAILURE);
    645         }
    646         if (!object->bg_mean_stdev == 64.64) {
    647             psFree(object);
    648             exit(EXIT_FAILURE);
    649         }
    650         if (!object->alt == 64.64) {
    651             psFree(object);
    652             exit(EXIT_FAILURE);
    653         }
    654         if (!object->az == 64.64) {
    655             psFree(object);
    656             exit(EXIT_FAILURE);
    657         }
    658         if (!object->ccd_temp == 32.32) {
    659             psFree(object);
    660             exit(EXIT_FAILURE);
    661         }
    662         if (!object->posang == 64.64) {
    663             psFree(object);
    664             exit(EXIT_FAILURE);
    665         }
    666         if (!object->m1_x == 32.32) {
    667             psFree(object);
    668             exit(EXIT_FAILURE);
    669         }
    670         if (!object->m1_y == 32.32) {
    671             psFree(object);
    672             exit(EXIT_FAILURE);
    673         }
    674         if (!object->m1_z == 32.32) {
    675             psFree(object);
    676             exit(EXIT_FAILURE);
    677         }
    678         if (!object->m1_tip == 32.32) {
    679             psFree(object);
    680             exit(EXIT_FAILURE);
    681         }
    682         if (!object->m1_tilt == 32.32) {
    683             psFree(object);
    684             exit(EXIT_FAILURE);
    685         }
    686         if (!object->m2_x == 32.32) {
    687             psFree(object);
    688             exit(EXIT_FAILURE);
    689         }
    690         if (!object->m2_y == 32.32) {
    691             psFree(object);
    692             exit(EXIT_FAILURE);
    693         }
    694         if (!object->m2_z == 32.32) {
    695             psFree(object);
    696             exit(EXIT_FAILURE);
    697         }
    698         if (!object->m2_tip == 32.32) {
    699             psFree(object);
    700             exit(EXIT_FAILURE);
    701         }
    702         if (!object->m2_tilt == 32.32) {
    703             psFree(object);
    704             exit(EXIT_FAILURE);
    705         }
    706         if (!object->env_temperature == 32.32) {
    707             psFree(object);
    708             exit(EXIT_FAILURE);
    709         }
    710         if (!object->env_humidity == 32.32) {
    711             psFree(object);
    712             exit(EXIT_FAILURE);
    713         }
    714         if (!object->env_wind_speed == 32.32) {
    715             psFree(object);
    716             exit(EXIT_FAILURE);
    717         }
    718         if (!object->env_wind_dir == 32.32) {
    719             psFree(object);
    720             exit(EXIT_FAILURE);
    721         }
    722         if (!object->teltemp_m1 == 32.32) {
    723             psFree(object);
    724             exit(EXIT_FAILURE);
    725         }
    726         if (!object->teltemp_m1cell == 32.32) {
    727             psFree(object);
    728             exit(EXIT_FAILURE);
    729         }
    730         if (!object->teltemp_m2 == 32.32) {
    731             psFree(object);
    732             exit(EXIT_FAILURE);
    733         }
    734         if (!object->teltemp_spider == 32.32) {
    735             psFree(object);
    736             exit(EXIT_FAILURE);
    737         }
    738         if (!object->teltemp_truss == 32.32) {
    739             psFree(object);
    740             exit(EXIT_FAILURE);
    741         }
    742         if (!object->teltemp_extra == 32.32) {
    743             psFree(object);
    744             exit(EXIT_FAILURE);
    745         }
    746         if (!object->pon_time == 32.32) {
    747             psFree(object);
    748             exit(EXIT_FAILURE);
    749         }
    750         if (!object->user_1 == 64.64) {
    751             psFree(object);
    752             exit(EXIT_FAILURE);
    753         }
    754         if (!object->user_2 == 64.64) {
    755             psFree(object);
    756             exit(EXIT_FAILURE);
    757         }
    758         if (!object->user_3 == 64.64) {
    759             psFree(object);
    760             exit(EXIT_FAILURE);
    761         }
    762         if (!object->user_4 == 64.64) {
    763             psFree(object);
    764             exit(EXIT_FAILURE);
    765         }
    766         if (!object->user_5 == 64.64) {
    767             psFree(object);
    768             exit(EXIT_FAILURE);
    769         }
    770         if (strncmp(object->object, "a string", MAX_STRING_LENGTH)) {
    771             psFree(object);
    772             exit(EXIT_FAILURE);
    773         }
    774         if (!object->fault == -16) {
    775             psFree(object);
    776             exit(EXIT_FAILURE);
    777         }
    778 
    779         psFree(object);
    780     }
    781 
    782     {
    783         guidePendingExpRow *object;
    784 
    785         object = guidePendingExpRowAlloc(-64, -64, "a string"    );
    786 
    787         if (!object) {
    788             exit(EXIT_FAILURE);
    789         }
    790 
    791         if (!object->guide_id == -64) {
    792             psFree(object);
    793             exit(EXIT_FAILURE);
    794         }
    795         if (!object->exp_id == -64) {
    796             psFree(object);
    797             exit(EXIT_FAILURE);
    798         }
    799         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    800             psFree(object);
    801             exit(EXIT_FAILURE);
    802         }
    803 
    804         psFree(object);
    805     }
    806 
    807     {
    808         chipRunRow      *object;
    809 
    810         object = chipRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string"    );
    811 
    812         if (!object) {
    813             exit(EXIT_FAILURE);
    814         }
    815 
    816         if (!object->chip_id == -64) {
    817             psFree(object);
    818             exit(EXIT_FAILURE);
    819         }
    820         if (!object->exp_id == -64) {
     2841        if (strncmp(object->lastFileset, "a string", MAX_STRING_LENGTH)) {
    8212842            psFree(object);
    8222843            exit(EXIT_FAILURE);
     
    8262847            exit(EXIT_FAILURE);
    8272848        }
    828         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    829             psFree(object);
    830             exit(EXIT_FAILURE);
    831         }
    832         if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
    833             psFree(object);
    834             exit(EXIT_FAILURE);
    835         }
    836         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    837             psFree(object);
    838             exit(EXIT_FAILURE);
    839         }
    840         if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
    841             psFree(object);
    842             exit(EXIT_FAILURE);
    843         }
    844         if (strncmp(object->expgroup, "a string", MAX_STRING_LENGTH)) {
    845             psFree(object);
    846             exit(EXIT_FAILURE);
    847         }
    848         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    849             psFree(object);
    850             exit(EXIT_FAILURE);
    851         }
    852         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    853             psFree(object);
    854             exit(EXIT_FAILURE);
    855         }
    856         if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
    857             psFree(object);
    858             exit(EXIT_FAILURE);
    859         }
    860 
    861         psFree(object);
    862     }
    863 
    864     {
    865         chipProcessedImfileRow *object;
    866 
    867         object = chipProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, -32, -32, -32, -32, "a string", -16    );
    868 
    869         if (!object) {
    870             exit(EXIT_FAILURE);
    871         }
    872 
    873         if (!object->chip_id == -64) {
    874             psFree(object);
    875             exit(EXIT_FAILURE);
    876         }
    877         if (!object->exp_id == -64) {
    878             psFree(object);
    879             exit(EXIT_FAILURE);
    880         }
    881         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2849
     2850        psFree(object);
     2851    }
     2852
     2853    {
     2854        pstampRequestRow *object;
     2855
     2856        object = pstampRequestRowAlloc(-64, -64, "a string", "a string"    );
     2857
     2858        if (!object) {
     2859            exit(EXIT_FAILURE);
     2860        }
     2861
     2862        if (!object->req_id == -64) {
     2863            psFree(object);
     2864            exit(EXIT_FAILURE);
     2865        }
     2866        if (!object->ds_id == -64) {
     2867            psFree(object);
     2868            exit(EXIT_FAILURE);
     2869        }
     2870        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    8822871            psFree(object);
    8832872            exit(EXIT_FAILURE);
     
    8872876            exit(EXIT_FAILURE);
    8882877        }
    889         if (!object->bg == 32.32) {
    890             psFree(object);
    891             exit(EXIT_FAILURE);
    892         }
    893         if (!object->bg_stdev == 32.32) {
    894             psFree(object);
    895             exit(EXIT_FAILURE);
    896         }
    897         if (!object->bg_mean_stdev == 32.32) {
    898             psFree(object);
    899             exit(EXIT_FAILURE);
    900         }
    901         if (!object->bias == 32.32) {
    902             psFree(object);
    903             exit(EXIT_FAILURE);
    904         }
    905         if (!object->bias_stdev == 32.32) {
    906             psFree(object);
    907             exit(EXIT_FAILURE);
    908         }
    909         if (!object->fringe_0 == 32.32) {
    910             psFree(object);
    911             exit(EXIT_FAILURE);
    912         }
    913         if (!object->fringe_1 == 32.32) {
    914             psFree(object);
    915             exit(EXIT_FAILURE);
    916         }
    917         if (!object->fringe_2 == 32.32) {
    918             psFree(object);
    919             exit(EXIT_FAILURE);
    920         }
    921         if (!object->sigma_ra == 32.32) {
    922             psFree(object);
    923             exit(EXIT_FAILURE);
    924         }
    925         if (!object->sigma_dec == 32.32) {
    926             psFree(object);
    927             exit(EXIT_FAILURE);
    928         }
    929         if (!object->ap_resid == 32.32) {
    930             psFree(object);
    931             exit(EXIT_FAILURE);
    932         }
    933         if (!object->ap_resid_stdev == 32.32) {
    934             psFree(object);
    935             exit(EXIT_FAILURE);
    936         }
    937         if (!object->fwhm == 32.32) {
    938             psFree(object);
    939             exit(EXIT_FAILURE);
    940         }
    941         if (!object->fwhm_range == 32.32) {
    942             psFree(object);
    943             exit(EXIT_FAILURE);
    944         }
    945         if (!object->n_stars == -32) {
    946             psFree(object);
    947             exit(EXIT_FAILURE);
    948         }
    949         if (!object->n_extended == -32) {
    950             psFree(object);
    951             exit(EXIT_FAILURE);
    952         }
    953         if (!object->n_cr == -32) {
    954             psFree(object);
    955             exit(EXIT_FAILURE);
    956         }
    957         if (!object->n_astrom == -32) {
    958             psFree(object);
    959             exit(EXIT_FAILURE);
    960         }
    961         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    962             psFree(object);
    963             exit(EXIT_FAILURE);
    964         }
    965         if (!object->fault == -16) {
    966             psFree(object);
    967             exit(EXIT_FAILURE);
    968         }
    969 
    970         psFree(object);
    971     }
    972 
    973     {
    974         chipMaskRow     *object;
    975 
    976         object = chipMaskRowAlloc("a string"    );
    977 
    978         if (!object) {
    979             exit(EXIT_FAILURE);
    980         }
    981 
    982         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    983             psFree(object);
    984             exit(EXIT_FAILURE);
    985         }
    986 
    987         psFree(object);
    988     }
    989 
    990     {
    991         camRunRow       *object;
    992 
    993         object = camRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string"    );
    994 
    995         if (!object) {
    996             exit(EXIT_FAILURE);
    997         }
    998 
    999         if (!object->cam_id == -64) {
    1000             psFree(object);
    1001             exit(EXIT_FAILURE);
    1002         }
    1003         if (!object->chip_id == -64) {
     2878
     2879        psFree(object);
     2880    }
     2881
     2882    {
     2883        pstampJobRow    *object;
     2884
     2885        object = pstampJobRowAlloc(-64, -64, "a string", -32, "a string", "a string", "a string"    );
     2886
     2887        if (!object) {
     2888            exit(EXIT_FAILURE);
     2889        }
     2890
     2891        if (!object->job_id == -64) {
     2892            psFree(object);
     2893            exit(EXIT_FAILURE);
     2894        }
     2895        if (!object->req_id == -64) {
    10042896            psFree(object);
    10052897            exit(EXIT_FAILURE);
     
    10092901            exit(EXIT_FAILURE);
    10102902        }
    1011         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1012             psFree(object);
    1013             exit(EXIT_FAILURE);
    1014         }
    1015         if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
    1016             psFree(object);
    1017             exit(EXIT_FAILURE);
    1018         }
    1019         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    1020             psFree(object);
    1021             exit(EXIT_FAILURE);
    1022         }
    1023         if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
    1024             psFree(object);
    1025             exit(EXIT_FAILURE);
    1026         }
    1027         if (strncmp(object->expgroup, "a string", MAX_STRING_LENGTH)) {
    1028             psFree(object);
    1029             exit(EXIT_FAILURE);
    1030         }
    1031         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    1032             psFree(object);
    1033             exit(EXIT_FAILURE);
    1034         }
    1035         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1036             psFree(object);
    1037             exit(EXIT_FAILURE);
    1038         }
    1039         if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
    1040             psFree(object);
    1041             exit(EXIT_FAILURE);
    1042         }
    1043 
    1044         psFree(object);
    1045     }
    1046 
    1047     {
    1048         camProcessedExpRow *object;
    1049 
    1050         object = camProcessedExpRowAlloc(-64, -64, "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, -32, -32, -32, -32, "a string", -16    );
    1051 
    1052         if (!object) {
    1053             exit(EXIT_FAILURE);
    1054         }
    1055 
    1056         if (!object->cam_id == -64) {
    1057             psFree(object);
    1058             exit(EXIT_FAILURE);
    1059         }
    1060         if (!object->chip_id == -64) {
     2903        if (!object->result == -32) {
    10612904            psFree(object);
    10622905            exit(EXIT_FAILURE);
     
    10662909            exit(EXIT_FAILURE);
    10672910        }
    1068         if (!object->bg == 32.32) {
    1069             psFree(object);
    1070             exit(EXIT_FAILURE);
    1071         }
    1072         if (!object->bg_stdev == 32.32) {
    1073             psFree(object);
    1074             exit(EXIT_FAILURE);
    1075         }
    1076         if (!object->bg_mean_stdev == 32.32) {
    1077             psFree(object);
    1078             exit(EXIT_FAILURE);
    1079         }
    1080         if (!object->sigma_ra == 32.32) {
    1081             psFree(object);
    1082             exit(EXIT_FAILURE);
    1083         }
    1084         if (!object->sigma_dec == 32.32) {
    1085             psFree(object);
    1086             exit(EXIT_FAILURE);
    1087         }
    1088         if (!object->zp_mean == 32.32) {
    1089             psFree(object);
    1090             exit(EXIT_FAILURE);
    1091         }
    1092         if (!object->zp_stdev == 32.32) {
    1093             psFree(object);
    1094             exit(EXIT_FAILURE);
    1095         }
    1096         if (!object->fwhm == 32.32) {
    1097             psFree(object);
    1098             exit(EXIT_FAILURE);
    1099         }
    1100         if (!object->fwhm_range == 32.32) {
    1101             psFree(object);
    1102             exit(EXIT_FAILURE);
    1103         }
    1104         if (!object->n_stars == -32) {
    1105             psFree(object);
    1106             exit(EXIT_FAILURE);
    1107         }
    1108         if (!object->n_extended == -32) {
    1109             psFree(object);
    1110             exit(EXIT_FAILURE);
    1111         }
    1112         if (!object->n_cr == -32) {
    1113             psFree(object);
    1114             exit(EXIT_FAILURE);
    1115         }
    1116         if (!object->n_astrom == -32) {
    1117             psFree(object);
    1118             exit(EXIT_FAILURE);
    1119         }
    1120         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1121             psFree(object);
    1122             exit(EXIT_FAILURE);
    1123         }
    1124         if (!object->fault == -16) {
    1125             psFree(object);
    1126             exit(EXIT_FAILURE);
    1127         }
    1128 
    1129         psFree(object);
    1130     }
    1131 
    1132     {
    1133         camMaskRow      *object;
    1134 
    1135         object = camMaskRowAlloc("a string"    );
    1136 
    1137         if (!object) {
    1138             exit(EXIT_FAILURE);
    1139         }
    1140 
    1141         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    1142             psFree(object);
    1143             exit(EXIT_FAILURE);
    1144         }
    1145 
    1146         psFree(object);
    1147     }
    1148 
    1149     {
    1150         warpRunRow      *object;
    1151 
    1152         object = warpRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z"    );
    1153 
    1154         if (!object) {
    1155             exit(EXIT_FAILURE);
    1156         }
    1157 
    1158         if (!object->warp_id == -64) {
    1159             psFree(object);
    1160             exit(EXIT_FAILURE);
    1161         }
    1162         if (strncmp(object->mode, "a string", MAX_STRING_LENGTH)) {
    1163             psFree(object);
    1164             exit(EXIT_FAILURE);
    1165         }
    1166         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    1167             psFree(object);
    1168             exit(EXIT_FAILURE);
    1169         }
    1170         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1171             psFree(object);
    1172             exit(EXIT_FAILURE);
    1173         }
    1174         if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
    1175             psFree(object);
    1176             exit(EXIT_FAILURE);
    1177         }
    1178         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    1179             psFree(object);
    1180             exit(EXIT_FAILURE);
    1181         }
    1182         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1183             psFree(object);
    1184             exit(EXIT_FAILURE);
    1185         }
    1186         if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
    1187             psFree(object);
    1188             exit(EXIT_FAILURE);
    1189         }
    1190             psFree(object);
    1191             exit(EXIT_FAILURE);
    1192         }
    1193 
    1194         psFree(object);
    1195     }
    1196 
    1197     {
    1198         warpInputExpRow *object;
    1199 
    1200         object = warpInputExpRowAlloc(-64, -64, true    );
    1201 
    1202         if (!object) {
    1203             exit(EXIT_FAILURE);
    1204         }
    1205 
    1206         if (!object->warp_id == -64) {
    1207             psFree(object);
    1208             exit(EXIT_FAILURE);
    1209         }
    1210         if (!object->cam_id == -64) {
    1211             psFree(object);
    1212             exit(EXIT_FAILURE);
    1213         }
    1214         if (!object->magiced == true) {
    1215             psFree(object);
    1216             exit(EXIT_FAILURE);
    1217         }
    1218 
    1219         psFree(object);
    1220     }
    1221 
    1222     {
    1223         warpSkyCellMapRow *object;
    1224 
    1225         object = warpSkyCellMapRowAlloc(-64, "a string", "a string", -64, "a string", -16    );
    1226 
    1227         if (!object) {
    1228             exit(EXIT_FAILURE);
    1229         }
    1230 
    1231         if (!object->warp_id == -64) {
    1232             psFree(object);
    1233             exit(EXIT_FAILURE);
    1234         }
    1235         if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
    1236             psFree(object);
    1237             exit(EXIT_FAILURE);
    1238         }
    1239         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1240             psFree(object);
    1241             exit(EXIT_FAILURE);
    1242         }
    1243         if (!object->cam_id == -64) {
    1244             psFree(object);
    1245             exit(EXIT_FAILURE);
    1246         }
    1247         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1248             psFree(object);
    1249             exit(EXIT_FAILURE);
    1250         }
    1251         if (!object->fault == -16) {
    1252             psFree(object);
    1253             exit(EXIT_FAILURE);
    1254         }
    1255 
    1256         psFree(object);
    1257     }
    1258 
    1259     {
    1260         warpSkyfileRow  *object;
    1261 
    1262         object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, true, -16    );
    1263 
    1264         if (!object) {
    1265             exit(EXIT_FAILURE);
    1266         }
    1267 
    1268         if (!object->warp_id == -64) {
    1269             psFree(object);
    1270             exit(EXIT_FAILURE);
    1271         }
    1272         if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
    1273             psFree(object);
    1274             exit(EXIT_FAILURE);
    1275         }
    1276         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1277             psFree(object);
    1278             exit(EXIT_FAILURE);
    1279         }
    1280         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1281             psFree(object);
    1282             exit(EXIT_FAILURE);
    1283         }
    1284         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1285             psFree(object);
    1286             exit(EXIT_FAILURE);
    1287         }
    1288         if (!object->bg == 64.64) {
    1289             psFree(object);
    1290             exit(EXIT_FAILURE);
    1291         }
    1292         if (!object->bg_stdev == 64.64) {
    1293             psFree(object);
    1294             exit(EXIT_FAILURE);
    1295         }
    1296         if (!object->good_frac == 64.64) {
    1297             psFree(object);
    1298             exit(EXIT_FAILURE);
    1299         }
    1300         if (!object->ignored == true) {
    1301             psFree(object);
    1302             exit(EXIT_FAILURE);
    1303         }
    1304         if (!object->fault == -16) {
    1305             psFree(object);
    1306             exit(EXIT_FAILURE);
    1307         }
    1308 
    1309         psFree(object);
    1310     }
    1311 
    1312     {
    1313         diffRunRow      *object;
    1314 
    1315         object = diffRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string"    );
    1316 
    1317         if (!object) {
    1318             exit(EXIT_FAILURE);
    1319         }
    1320 
    1321         if (!object->diff_id == -64) {
    1322             psFree(object);
    1323             exit(EXIT_FAILURE);
    1324         }
    1325         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    1326             psFree(object);
    1327             exit(EXIT_FAILURE);
    1328         }
    1329         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1330             psFree(object);
    1331             exit(EXIT_FAILURE);
    1332         }
    1333         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    1334             psFree(object);
    1335             exit(EXIT_FAILURE);
    1336         }
    1337             psFree(object);
    1338             exit(EXIT_FAILURE);
    1339         }
    1340         if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
    1341             psFree(object);
    1342             exit(EXIT_FAILURE);
    1343         }
    1344         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1345             psFree(object);
    1346             exit(EXIT_FAILURE);
    1347         }
    1348 
    1349         psFree(object);
    1350     }
    1351 
    1352     {
    1353         diffInputSkyfileRow *object;
    1354 
    1355         object = diffInputSkyfileRowAlloc(-64, true, -64, -64, "a string", "a string", "a string"    );
    1356 
    1357         if (!object) {
    1358             exit(EXIT_FAILURE);
    1359         }
    1360 
    1361         if (!object->diff_id == -64) {
    1362             psFree(object);
    1363             exit(EXIT_FAILURE);
    1364         }
    1365         if (!object->template == true) {
    1366             psFree(object);
    1367             exit(EXIT_FAILURE);
    1368         }
    1369         if (!object->stack_id == -64) {
    1370             psFree(object);
    1371             exit(EXIT_FAILURE);
    1372         }
    1373         if (!object->warp_id == -64) {
    1374             psFree(object);
    1375             exit(EXIT_FAILURE);
    1376         }
    1377         if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
    1378             psFree(object);
    1379             exit(EXIT_FAILURE);
    1380         }
    1381         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1382             psFree(object);
    1383             exit(EXIT_FAILURE);
    1384         }
    1385         if (strncmp(object->kind, "a string", MAX_STRING_LENGTH)) {
    1386             psFree(object);
    1387             exit(EXIT_FAILURE);
    1388         }
    1389 
    1390         psFree(object);
    1391     }
    1392 
    1393     {
    1394         diffSkyfileRow  *object;
    1395 
    1396         object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 64.64, -16    );
    1397 
    1398         if (!object) {
    1399             exit(EXIT_FAILURE);
    1400         }
    1401 
    1402         if (!object->diff_id == -64) {
    1403             psFree(object);
    1404             exit(EXIT_FAILURE);
    1405         }
    1406         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1407             psFree(object);
    1408             exit(EXIT_FAILURE);
    1409         }
    1410         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1411             psFree(object);
    1412             exit(EXIT_FAILURE);
    1413         }
    1414         if (!object->bg == 64.64) {
    1415             psFree(object);
    1416             exit(EXIT_FAILURE);
    1417         }
    1418         if (!object->bg_stdev == 64.64) {
    1419             psFree(object);
    1420             exit(EXIT_FAILURE);
    1421         }
    1422         if (!object->good_frac == 64.64) {
    1423             psFree(object);
    1424             exit(EXIT_FAILURE);
    1425         }
    1426         if (!object->fault == -16) {
    1427             psFree(object);
    1428             exit(EXIT_FAILURE);
    1429         }
    1430 
    1431         psFree(object);
    1432     }
    1433 
    1434     {
    1435         stackRunRow     *object;
    1436 
    1437         object = stackRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string"    );
    1438 
    1439         if (!object) {
    1440             exit(EXIT_FAILURE);
    1441         }
    1442 
    1443         if (!object->stack_id == -64) {
    1444             psFree(object);
    1445             exit(EXIT_FAILURE);
    1446         }
    1447         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    1448             psFree(object);
    1449             exit(EXIT_FAILURE);
    1450         }
    1451         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1452             psFree(object);
    1453             exit(EXIT_FAILURE);
    1454         }
    1455         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    1456             psFree(object);
    1457             exit(EXIT_FAILURE);
    1458         }
    1459             psFree(object);
    1460             exit(EXIT_FAILURE);
    1461         }
    1462         if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
    1463             psFree(object);
    1464             exit(EXIT_FAILURE);
    1465         }
    1466         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1467             psFree(object);
    1468             exit(EXIT_FAILURE);
    1469         }
    1470 
    1471         psFree(object);
    1472     }
    1473 
    1474     {
    1475         stackInputSkyfileRow *object;
    1476 
    1477         object = stackInputSkyfileRowAlloc(-64, -64    );
    1478 
    1479         if (!object) {
    1480             exit(EXIT_FAILURE);
    1481         }
    1482 
    1483         if (!object->stack_id == -64) {
    1484             psFree(object);
    1485             exit(EXIT_FAILURE);
    1486         }
    1487         if (!object->warp_id == -64) {
    1488             psFree(object);
    1489             exit(EXIT_FAILURE);
    1490         }
    1491 
    1492         psFree(object);
    1493     }
    1494 
    1495     {
    1496         stackSumSkyfileRow *object;
    1497 
    1498         object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 64.64, -16    );
    1499 
    1500         if (!object) {
    1501             exit(EXIT_FAILURE);
    1502         }
    1503 
    1504         if (!object->stack_id == -64) {
    1505             psFree(object);
    1506             exit(EXIT_FAILURE);
    1507         }
    1508         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1509             psFree(object);
    1510             exit(EXIT_FAILURE);
    1511         }
    1512         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1513             psFree(object);
    1514             exit(EXIT_FAILURE);
    1515         }
    1516         if (!object->bg == 64.64) {
    1517             psFree(object);
    1518             exit(EXIT_FAILURE);
    1519         }
    1520         if (!object->bg_stdev == 64.64) {
    1521             psFree(object);
    1522             exit(EXIT_FAILURE);
    1523         }
    1524         if (!object->good_frac == 64.64) {
    1525             psFree(object);
    1526             exit(EXIT_FAILURE);
    1527         }
    1528         if (!object->fault == -16) {
    1529             psFree(object);
    1530             exit(EXIT_FAILURE);
    1531         }
    1532 
    1533         psFree(object);
    1534     }
    1535 
    1536     {
    1537         detRunRow       *object;
    1538 
    1539         object = detRunRowAlloc(-64, -32, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", 32.32, 32.32, "a string", -32    );
    1540 
    1541         if (!object) {
    1542             exit(EXIT_FAILURE);
    1543         }
    1544 
    1545         if (!object->det_id == -64) {
    1546             psFree(object);
    1547             exit(EXIT_FAILURE);
    1548         }
    1549         if (!object->iteration == -32) {
    1550             psFree(object);
    1551             exit(EXIT_FAILURE);
    1552         }
    1553         if (strncmp(object->det_type, "a string", MAX_STRING_LENGTH)) {
    1554             psFree(object);
    1555             exit(EXIT_FAILURE);
    1556         }
    1557         if (strncmp(object->mode, "a string", MAX_STRING_LENGTH)) {
    1558             psFree(object);
    1559             exit(EXIT_FAILURE);
    1560         }
    1561         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    1562             psFree(object);
    1563             exit(EXIT_FAILURE);
    1564         }
    1565         if (strncmp(object->filelevel, "a string", MAX_STRING_LENGTH)) {
    1566             psFree(object);
    1567             exit(EXIT_FAILURE);
    1568         }
    1569         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1570             psFree(object);
    1571             exit(EXIT_FAILURE);
    1572         }
    1573         if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
    1574             psFree(object);
    1575             exit(EXIT_FAILURE);
    1576         }
    1577         if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
    1578             psFree(object);
    1579             exit(EXIT_FAILURE);
    1580         }
    1581         if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
    1582             psFree(object);
    1583             exit(EXIT_FAILURE);
    1584         }
    1585         if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
    1586             psFree(object);
    1587             exit(EXIT_FAILURE);
    1588         }
    1589         if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
    1590             psFree(object);
    1591             exit(EXIT_FAILURE);
    1592         }
    1593         if (!object->airmass_min == 32.32) {
    1594             psFree(object);
    1595             exit(EXIT_FAILURE);
    1596         }
    1597         if (!object->airmass_max == 32.32) {
    1598             psFree(object);
    1599             exit(EXIT_FAILURE);
    1600         }
    1601         if (!object->exp_time_min == 32.32) {
    1602             psFree(object);
    1603             exit(EXIT_FAILURE);
    1604         }
    1605         if (!object->exp_time_max == 32.32) {
    1606             psFree(object);
    1607             exit(EXIT_FAILURE);
    1608         }
    1609         if (!object->ccd_temp_min == 32.32) {
    1610             psFree(object);
    1611             exit(EXIT_FAILURE);
    1612         }
    1613         if (!object->ccd_temp_max == 32.32) {
    1614             psFree(object);
    1615             exit(EXIT_FAILURE);
    1616         }
    1617         if (!object->posang_min == 64.64) {
    1618             psFree(object);
    1619             exit(EXIT_FAILURE);
    1620         }
    1621         if (!object->posang_max == 64.64) {
    1622             psFree(object);
    1623             exit(EXIT_FAILURE);
    1624         }
    1625             psFree(object);
    1626             exit(EXIT_FAILURE);
    1627         }
    1628             psFree(object);
    1629             exit(EXIT_FAILURE);
    1630         }
    1631             psFree(object);
    1632             exit(EXIT_FAILURE);
    1633         }
    1634             psFree(object);
    1635             exit(EXIT_FAILURE);
    1636         }
    1637             psFree(object);
    1638             exit(EXIT_FAILURE);
    1639         }
    1640         if (!object->solang_min == 32.32) {
    1641             psFree(object);
    1642             exit(EXIT_FAILURE);
    1643         }
    1644         if (!object->solang_max == 32.32) {
    1645             psFree(object);
    1646             exit(EXIT_FAILURE);
    1647         }
    1648         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    1649             psFree(object);
    1650             exit(EXIT_FAILURE);
    1651         }
    1652         if (!object->parent == -32) {
    1653             psFree(object);
    1654             exit(EXIT_FAILURE);
    1655         }
    1656 
    1657         psFree(object);
    1658     }
    1659 
    1660     {
    1661         detInputExpRow  *object;
    1662 
    1663         object = detInputExpRowAlloc(-64, -32, -64, true    );
    1664 
    1665         if (!object) {
    1666             exit(EXIT_FAILURE);
    1667         }
    1668 
    1669         if (!object->det_id == -64) {
    1670             psFree(object);
    1671             exit(EXIT_FAILURE);
    1672         }
    1673         if (!object->iteration == -32) {
    1674             psFree(object);
    1675             exit(EXIT_FAILURE);
    1676         }
    1677         if (!object->exp_id == -64) {
    1678             psFree(object);
    1679             exit(EXIT_FAILURE);
    1680         }
    1681         if (!object->include == true) {
    1682             psFree(object);
    1683             exit(EXIT_FAILURE);
    1684         }
    1685 
    1686         psFree(object);
    1687     }
    1688 
    1689     {
    1690         detProcessedImfileRow *object;
    1691 
    1692         object = detProcessedImfileRowAlloc(-64, -64, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
    1693 
    1694         if (!object) {
    1695             exit(EXIT_FAILURE);
    1696         }
    1697 
    1698         if (!object->det_id == -64) {
    1699             psFree(object);
    1700             exit(EXIT_FAILURE);
    1701         }
    1702         if (!object->exp_id == -64) {
    1703             psFree(object);
    1704             exit(EXIT_FAILURE);
    1705         }
    1706         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1707             psFree(object);
    1708             exit(EXIT_FAILURE);
    1709         }
    1710         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1711             psFree(object);
    1712             exit(EXIT_FAILURE);
    1713         }
    1714         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    1715             psFree(object);
    1716             exit(EXIT_FAILURE);
    1717         }
    1718         if (!object->bg == 64.64) {
    1719             psFree(object);
    1720             exit(EXIT_FAILURE);
    1721         }
    1722         if (!object->bg_stdev == 64.64) {
    1723             psFree(object);
    1724             exit(EXIT_FAILURE);
    1725         }
    1726         if (!object->bg_mean_stdev == 64.64) {
    1727             psFree(object);
    1728             exit(EXIT_FAILURE);
    1729         }
    1730         if (!object->fringe_0 == 64.64) {
    1731             psFree(object);
    1732             exit(EXIT_FAILURE);
    1733         }
    1734         if (!object->fringe_1 == 64.64) {
    1735             psFree(object);
    1736             exit(EXIT_FAILURE);
    1737         }
    1738         if (!object->fringe_2 == 64.64) {
    1739             psFree(object);
    1740             exit(EXIT_FAILURE);
    1741         }
    1742         if (!object->user_1 == 64.64) {
    1743             psFree(object);
    1744             exit(EXIT_FAILURE);
    1745         }
    1746         if (!object->user_2 == 64.64) {
    1747             psFree(object);
    1748             exit(EXIT_FAILURE);
    1749         }
    1750         if (!object->user_3 == 64.64) {
    1751             psFree(object);
    1752             exit(EXIT_FAILURE);
    1753         }
    1754         if (!object->user_4 == 64.64) {
    1755             psFree(object);
    1756             exit(EXIT_FAILURE);
    1757         }
    1758         if (!object->user_5 == 64.64) {
    1759             psFree(object);
    1760             exit(EXIT_FAILURE);
    1761         }
    1762         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1763             psFree(object);
    1764             exit(EXIT_FAILURE);
    1765         }
    1766         if (!object->fault == -16) {
    1767             psFree(object);
    1768             exit(EXIT_FAILURE);
    1769         }
    1770 
    1771         psFree(object);
    1772     }
    1773 
    1774     {
    1775         detProcessedExpRow *object;
    1776 
    1777         object = detProcessedExpRowAlloc(-64, -64, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
    1778 
    1779         if (!object) {
    1780             exit(EXIT_FAILURE);
    1781         }
    1782 
    1783         if (!object->det_id == -64) {
    1784             psFree(object);
    1785             exit(EXIT_FAILURE);
    1786         }
    1787         if (!object->exp_id == -64) {
    1788             psFree(object);
    1789             exit(EXIT_FAILURE);
    1790         }
    1791         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    1792             psFree(object);
    1793             exit(EXIT_FAILURE);
    1794         }
    1795         if (!object->bg == 64.64) {
    1796             psFree(object);
    1797             exit(EXIT_FAILURE);
    1798         }
    1799         if (!object->bg_stdev == 64.64) {
    1800             psFree(object);
    1801             exit(EXIT_FAILURE);
    1802         }
    1803         if (!object->bg_mean_stdev == 64.64) {
    1804             psFree(object);
    1805             exit(EXIT_FAILURE);
    1806         }
    1807         if (!object->fringe_0 == 64.64) {
    1808             psFree(object);
    1809             exit(EXIT_FAILURE);
    1810         }
    1811         if (!object->fringe_1 == 64.64) {
    1812             psFree(object);
    1813             exit(EXIT_FAILURE);
    1814         }
    1815         if (!object->fringe_2 == 64.64) {
    1816             psFree(object);
    1817             exit(EXIT_FAILURE);
    1818         }
    1819         if (!object->user_1 == 64.64) {
    1820             psFree(object);
    1821             exit(EXIT_FAILURE);
    1822         }
    1823         if (!object->user_2 == 64.64) {
    1824             psFree(object);
    1825             exit(EXIT_FAILURE);
    1826         }
    1827         if (!object->user_3 == 64.64) {
    1828             psFree(object);
    1829             exit(EXIT_FAILURE);
    1830         }
    1831         if (!object->user_4 == 64.64) {
    1832             psFree(object);
    1833             exit(EXIT_FAILURE);
    1834         }
    1835         if (!object->user_5 == 64.64) {
    1836             psFree(object);
    1837             exit(EXIT_FAILURE);
    1838         }
    1839         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1840             psFree(object);
    1841             exit(EXIT_FAILURE);
    1842         }
    1843         if (!object->fault == -16) {
    1844             psFree(object);
    1845             exit(EXIT_FAILURE);
    1846         }
    1847 
    1848         psFree(object);
    1849     }
    1850 
    1851     {
    1852         detStackedImfileRow *object;
    1853 
    1854         object = detStackedImfileRowAlloc(-64, -32, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, -16    );
    1855 
    1856         if (!object) {
    1857             exit(EXIT_FAILURE);
    1858         }
    1859 
    1860         if (!object->det_id == -64) {
    1861             psFree(object);
    1862             exit(EXIT_FAILURE);
    1863         }
    1864         if (!object->iteration == -32) {
    1865             psFree(object);
    1866             exit(EXIT_FAILURE);
    1867         }
    1868         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1869             psFree(object);
    1870             exit(EXIT_FAILURE);
    1871         }
    1872         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1873             psFree(object);
    1874             exit(EXIT_FAILURE);
    1875         }
    1876         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    1877             psFree(object);
    1878             exit(EXIT_FAILURE);
    1879         }
    1880         if (!object->bg == 64.64) {
    1881             psFree(object);
    1882             exit(EXIT_FAILURE);
    1883         }
    1884         if (!object->bg_stdev == 64.64) {
    1885             psFree(object);
    1886             exit(EXIT_FAILURE);
    1887         }
    1888         if (!object->bg_mean_stdev == 64.64) {
    1889             psFree(object);
    1890             exit(EXIT_FAILURE);
    1891         }
    1892         if (!object->user_1 == 64.64) {
    1893             psFree(object);
    1894             exit(EXIT_FAILURE);
    1895         }
    1896         if (!object->user_2 == 64.64) {
    1897             psFree(object);
    1898             exit(EXIT_FAILURE);
    1899         }
    1900         if (!object->user_3 == 64.64) {
    1901             psFree(object);
    1902             exit(EXIT_FAILURE);
    1903         }
    1904         if (!object->user_4 == 64.64) {
    1905             psFree(object);
    1906             exit(EXIT_FAILURE);
    1907         }
    1908         if (!object->user_5 == 64.64) {
    1909             psFree(object);
    1910             exit(EXIT_FAILURE);
    1911         }
    1912         if (!object->fault == -16) {
    1913             psFree(object);
    1914             exit(EXIT_FAILURE);
    1915         }
    1916 
    1917         psFree(object);
    1918     }
    1919 
    1920     {
    1921         detNormalizedStatImfileRow *object;
    1922 
    1923         object = detNormalizedStatImfileRowAlloc(-64, -32, "a string", 32.32, -16    );
    1924 
    1925         if (!object) {
    1926             exit(EXIT_FAILURE);
    1927         }
    1928 
    1929         if (!object->det_id == -64) {
    1930             psFree(object);
    1931             exit(EXIT_FAILURE);
    1932         }
    1933         if (!object->iteration == -32) {
    1934             psFree(object);
    1935             exit(EXIT_FAILURE);
    1936         }
    1937         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1938             psFree(object);
    1939             exit(EXIT_FAILURE);
    1940         }
    1941         if (!object->norm == 32.32) {
    1942             psFree(object);
    1943             exit(EXIT_FAILURE);
    1944         }
    1945         if (!object->fault == -16) {
    1946             psFree(object);
    1947             exit(EXIT_FAILURE);
    1948         }
    1949 
    1950         psFree(object);
    1951     }
    1952 
    1953     {
    1954         detNormalizedImfileRow *object;
    1955 
    1956         object = detNormalizedImfileRowAlloc(-64, -32, "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
    1957 
    1958         if (!object) {
    1959             exit(EXIT_FAILURE);
    1960         }
    1961 
    1962         if (!object->det_id == -64) {
    1963             psFree(object);
    1964             exit(EXIT_FAILURE);
    1965         }
    1966         if (!object->iteration == -32) {
    1967             psFree(object);
    1968             exit(EXIT_FAILURE);
    1969         }
    1970         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1971             psFree(object);
    1972             exit(EXIT_FAILURE);
    1973         }
    1974         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1975             psFree(object);
    1976             exit(EXIT_FAILURE);
    1977         }
    1978         if (!object->bg == 64.64) {
    1979             psFree(object);
    1980             exit(EXIT_FAILURE);
    1981         }
    1982         if (!object->bg_stdev == 64.64) {
    1983             psFree(object);
    1984             exit(EXIT_FAILURE);
    1985         }
    1986         if (!object->bg_mean_stdev == 64.64) {
    1987             psFree(object);
    1988             exit(EXIT_FAILURE);
    1989         }
    1990         if (!object->user_1 == 64.64) {
    1991             psFree(object);
    1992             exit(EXIT_FAILURE);
    1993         }
    1994         if (!object->user_2 == 64.64) {
    1995             psFree(object);
    1996             exit(EXIT_FAILURE);
    1997         }
    1998         if (!object->user_3 == 64.64) {
    1999             psFree(object);
    2000             exit(EXIT_FAILURE);
    2001         }
    2002         if (!object->user_4 == 64.64) {
    2003             psFree(object);
    2004             exit(EXIT_FAILURE);
    2005         }
    2006         if (!object->user_5 == 64.64) {
    2007             psFree(object);
    2008             exit(EXIT_FAILURE);
    2009         }
    2010         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2011             psFree(object);
    2012             exit(EXIT_FAILURE);
    2013         }
    2014         if (!object->fault == -16) {
    2015             psFree(object);
    2016             exit(EXIT_FAILURE);
    2017         }
    2018 
    2019         psFree(object);
    2020     }
    2021 
    2022     {
    2023         detNormalizedExpRow *object;
    2024 
    2025         object = detNormalizedExpRowAlloc(-64, -32, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
    2026 
    2027         if (!object) {
    2028             exit(EXIT_FAILURE);
    2029         }
    2030 
    2031         if (!object->det_id == -64) {
    2032             psFree(object);
    2033             exit(EXIT_FAILURE);
    2034         }
    2035         if (!object->iteration == -32) {
    2036             psFree(object);
    2037             exit(EXIT_FAILURE);
    2038         }
    2039         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2040             psFree(object);
    2041             exit(EXIT_FAILURE);
    2042         }
    2043         if (!object->bg == 64.64) {
    2044             psFree(object);
    2045             exit(EXIT_FAILURE);
    2046         }
    2047         if (!object->bg_stdev == 64.64) {
    2048             psFree(object);
    2049             exit(EXIT_FAILURE);
    2050         }
    2051         if (!object->bg_mean_stdev == 64.64) {
    2052             psFree(object);
    2053             exit(EXIT_FAILURE);
    2054         }
    2055         if (!object->user_1 == 64.64) {
    2056             psFree(object);
    2057             exit(EXIT_FAILURE);
    2058         }
    2059         if (!object->user_2 == 64.64) {
    2060             psFree(object);
    2061             exit(EXIT_FAILURE);
    2062         }
    2063         if (!object->user_3 == 64.64) {
    2064             psFree(object);
    2065             exit(EXIT_FAILURE);
    2066         }
    2067         if (!object->user_4 == 64.64) {
    2068             psFree(object);
    2069             exit(EXIT_FAILURE);
    2070         }
    2071         if (!object->user_5 == 64.64) {
    2072             psFree(object);
    2073             exit(EXIT_FAILURE);
    2074         }
    2075         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2076             psFree(object);
    2077             exit(EXIT_FAILURE);
    2078         }
    2079         if (!object->fault == -16) {
    2080             psFree(object);
    2081             exit(EXIT_FAILURE);
    2082         }
    2083 
    2084         psFree(object);
    2085     }
    2086 
    2087     {
    2088         detResidImfileRow *object;
    2089 
    2090         object = detResidImfileRowAlloc(-64, -32, -64, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
    2091 
    2092         if (!object) {
    2093             exit(EXIT_FAILURE);
    2094         }
    2095 
    2096         if (!object->det_id == -64) {
    2097             psFree(object);
    2098             exit(EXIT_FAILURE);
    2099         }
    2100         if (!object->iteration == -32) {
    2101             psFree(object);
    2102             exit(EXIT_FAILURE);
    2103         }
    2104         if (!object->exp_id == -64) {
    2105             psFree(object);
    2106             exit(EXIT_FAILURE);
    2107         }
    2108         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2109             psFree(object);
    2110             exit(EXIT_FAILURE);
    2111         }
    2112         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2113             psFree(object);
    2114             exit(EXIT_FAILURE);
    2115         }
    2116         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2117             psFree(object);
    2118             exit(EXIT_FAILURE);
    2119         }
    2120         if (!object->bg == 64.64) {
    2121             psFree(object);
    2122             exit(EXIT_FAILURE);
    2123         }
    2124         if (!object->bg_stdev == 64.64) {
    2125             psFree(object);
    2126             exit(EXIT_FAILURE);
    2127         }
    2128         if (!object->bg_mean_stdev == 64.64) {
    2129             psFree(object);
    2130             exit(EXIT_FAILURE);
    2131         }
    2132         if (!object->bg_skewness == 64.64) {
    2133             psFree(object);
    2134             exit(EXIT_FAILURE);
    2135         }
    2136         if (!object->bg_kurtosis == 64.64) {
    2137             psFree(object);
    2138             exit(EXIT_FAILURE);
    2139         }
    2140         if (!object->bin_stdev == 64.64) {
    2141             psFree(object);
    2142             exit(EXIT_FAILURE);
    2143         }
    2144         if (!object->fringe_0 == 64.64) {
    2145             psFree(object);
    2146             exit(EXIT_FAILURE);
    2147         }
    2148         if (!object->fringe_1 == 64.64) {
    2149             psFree(object);
    2150             exit(EXIT_FAILURE);
    2151         }
    2152         if (!object->fringe_2 == 64.64) {
    2153             psFree(object);
    2154             exit(EXIT_FAILURE);
    2155         }
    2156         if (!object->fringe_resid_0 == 64.64) {
    2157             psFree(object);
    2158             exit(EXIT_FAILURE);
    2159         }
    2160         if (!object->fringe_resid_1 == 64.64) {
    2161             psFree(object);
    2162             exit(EXIT_FAILURE);
    2163         }
    2164         if (!object->fringe_resid_2 == 64.64) {
    2165             psFree(object);
    2166             exit(EXIT_FAILURE);
    2167         }
    2168         if (!object->user_1 == 64.64) {
    2169             psFree(object);
    2170             exit(EXIT_FAILURE);
    2171         }
    2172         if (!object->user_2 == 64.64) {
    2173             psFree(object);
    2174             exit(EXIT_FAILURE);
    2175         }
    2176         if (!object->user_3 == 64.64) {
    2177             psFree(object);
    2178             exit(EXIT_FAILURE);
    2179         }
    2180         if (!object->user_4 == 64.64) {
    2181             psFree(object);
    2182             exit(EXIT_FAILURE);
    2183         }
    2184         if (!object->user_5 == 64.64) {
    2185             psFree(object);
    2186             exit(EXIT_FAILURE);
    2187         }
    2188         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2189             psFree(object);
    2190             exit(EXIT_FAILURE);
    2191         }
    2192         if (!object->fault == -16) {
    2193             psFree(object);
    2194             exit(EXIT_FAILURE);
    2195         }
    2196 
    2197         psFree(object);
    2198     }
    2199 
    2200     {
    2201         detResidExpRow  *object;
    2202 
    2203         object = detResidExpRowAlloc(-64, -32, -64, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", true, -16    );
    2204 
    2205         if (!object) {
    2206             exit(EXIT_FAILURE);
    2207         }
    2208 
    2209         if (!object->det_id == -64) {
    2210             psFree(object);
    2211             exit(EXIT_FAILURE);
    2212         }
    2213         if (!object->iteration == -32) {
    2214             psFree(object);
    2215             exit(EXIT_FAILURE);
    2216         }
    2217         if (!object->exp_id == -64) {
    2218             psFree(object);
    2219             exit(EXIT_FAILURE);
    2220         }
    2221         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2222             psFree(object);
    2223             exit(EXIT_FAILURE);
    2224         }
    2225         if (!object->bg == 64.64) {
    2226             psFree(object);
    2227             exit(EXIT_FAILURE);
    2228         }
    2229         if (!object->bg_stdev == 64.64) {
    2230             psFree(object);
    2231             exit(EXIT_FAILURE);
    2232         }
    2233         if (!object->bg_mean_stdev == 64.64) {
    2234             psFree(object);
    2235             exit(EXIT_FAILURE);
    2236         }
    2237         if (!object->bg_skewness == 64.64) {
    2238             psFree(object);
    2239             exit(EXIT_FAILURE);
    2240         }
    2241         if (!object->bg_kurtosis == 64.64) {
    2242             psFree(object);
    2243             exit(EXIT_FAILURE);
    2244         }
    2245         if (!object->bin_stdev == 64.64) {
    2246             psFree(object);
    2247             exit(EXIT_FAILURE);
    2248         }
    2249         if (!object->fringe_0 == 64.64) {
    2250             psFree(object);
    2251             exit(EXIT_FAILURE);
    2252         }
    2253         if (!object->fringe_1 == 64.64) {
    2254             psFree(object);
    2255             exit(EXIT_FAILURE);
    2256         }
    2257         if (!object->fringe_2 == 64.64) {
    2258             psFree(object);
    2259             exit(EXIT_FAILURE);
    2260         }
    2261         if (!object->fringe_resid_0 == 64.64) {
    2262             psFree(object);
    2263             exit(EXIT_FAILURE);
    2264         }
    2265         if (!object->fringe_resid_1 == 64.64) {
    2266             psFree(object);
    2267             exit(EXIT_FAILURE);
    2268         }
    2269         if (!object->fringe_resid_2 == 64.64) {
    2270             psFree(object);
    2271             exit(EXIT_FAILURE);
    2272         }
    2273         if (!object->user_1 == 64.64) {
    2274             psFree(object);
    2275             exit(EXIT_FAILURE);
    2276         }
    2277         if (!object->user_2 == 64.64) {
    2278             psFree(object);
    2279             exit(EXIT_FAILURE);
    2280         }
    2281         if (!object->user_3 == 64.64) {
    2282             psFree(object);
    2283             exit(EXIT_FAILURE);
    2284         }
    2285         if (!object->user_4 == 64.64) {
    2286             psFree(object);
    2287             exit(EXIT_FAILURE);
    2288         }
    2289         if (!object->user_5 == 64.64) {
    2290             psFree(object);
    2291             exit(EXIT_FAILURE);
    2292         }
    2293         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2294             psFree(object);
    2295             exit(EXIT_FAILURE);
    2296         }
    2297         if (!object->accept == true) {
    2298             psFree(object);
    2299             exit(EXIT_FAILURE);
    2300         }
    2301         if (!object->fault == -16) {
    2302             psFree(object);
    2303             exit(EXIT_FAILURE);
    2304         }
    2305 
    2306         psFree(object);
    2307     }
    2308 
    2309     {
    2310         detRunSummaryRow *object;
    2311 
    2312         object = detRunSummaryRowAlloc(-64, -32, 64.64, 64.64, 64.64, true, -16    );
    2313 
    2314         if (!object) {
    2315             exit(EXIT_FAILURE);
    2316         }
    2317 
    2318         if (!object->det_id == -64) {
    2319             psFree(object);
    2320             exit(EXIT_FAILURE);
    2321         }
    2322         if (!object->iteration == -32) {
    2323             psFree(object);
    2324             exit(EXIT_FAILURE);
    2325         }
    2326         if (!object->bg == 64.64) {
    2327             psFree(object);
    2328             exit(EXIT_FAILURE);
    2329         }
    2330         if (!object->bg_stdev == 64.64) {
    2331             psFree(object);
    2332             exit(EXIT_FAILURE);
    2333         }
    2334         if (!object->bg_mean_stdev == 64.64) {
    2335             psFree(object);
    2336             exit(EXIT_FAILURE);
    2337         }
    2338         if (!object->accept == true) {
    2339             psFree(object);
    2340             exit(EXIT_FAILURE);
    2341         }
    2342         if (!object->fault == -16) {
    2343             psFree(object);
    2344             exit(EXIT_FAILURE);
    2345         }
    2346 
    2347         psFree(object);
    2348     }
    2349 
    2350     {
    2351         detRegisteredImfileRow *object;
    2352 
    2353         object = detRegisteredImfileRowAlloc(-64, -32, "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16    );
    2354 
    2355         if (!object) {
    2356             exit(EXIT_FAILURE);
    2357         }
    2358 
    2359         if (!object->det_id == -64) {
    2360             psFree(object);
    2361             exit(EXIT_FAILURE);
    2362         }
    2363         if (!object->iteration == -32) {
    2364             psFree(object);
    2365             exit(EXIT_FAILURE);
    2366         }
    2367         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2368             psFree(object);
    2369             exit(EXIT_FAILURE);
    2370         }
    2371         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2372             psFree(object);
    2373             exit(EXIT_FAILURE);
    2374         }
    2375         if (!object->bg == 64.64) {
    2376             psFree(object);
    2377             exit(EXIT_FAILURE);
    2378         }
    2379         if (!object->bg_stdev == 64.64) {
    2380             psFree(object);
    2381             exit(EXIT_FAILURE);
    2382         }
    2383         if (!object->bg_mean_stdev == 64.64) {
    2384             psFree(object);
    2385             exit(EXIT_FAILURE);
    2386         }
    2387         if (!object->user_1 == 64.64) {
    2388             psFree(object);
    2389             exit(EXIT_FAILURE);
    2390         }
    2391         if (!object->user_2 == 64.64) {
    2392             psFree(object);
    2393             exit(EXIT_FAILURE);
    2394         }
    2395         if (!object->user_3 == 64.64) {
    2396             psFree(object);
    2397             exit(EXIT_FAILURE);
    2398         }
    2399         if (!object->user_4 == 64.64) {
    2400             psFree(object);
    2401             exit(EXIT_FAILURE);
    2402         }
    2403         if (!object->user_5 == 64.64) {
    2404             psFree(object);
    2405             exit(EXIT_FAILURE);
    2406         }
    2407         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2408             psFree(object);
    2409             exit(EXIT_FAILURE);
    2410         }
    2411         if (!object->fault == -16) {
    2412             psFree(object);
    2413             exit(EXIT_FAILURE);
    2414         }
    2415 
    2416         psFree(object);
    2417     }
    2418 
    2419     {
    2420         detCorrectedExpRow *object;
    2421 
    2422         object = detCorrectedExpRowAlloc(-64, -64, "a string", -64, "a string", "a string", "a string", -16    );
    2423 
    2424         if (!object) {
    2425             exit(EXIT_FAILURE);
    2426         }
    2427 
    2428         if (!object->det_id == -64) {
    2429             psFree(object);
    2430             exit(EXIT_FAILURE);
    2431         }
    2432         if (!object->exp_id == -64) {
    2433             psFree(object);
    2434             exit(EXIT_FAILURE);
    2435         }
    2436         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2437             psFree(object);
    2438             exit(EXIT_FAILURE);
    2439         }
    2440         if (!object->corr_id == -64) {
    2441             psFree(object);
    2442             exit(EXIT_FAILURE);
    2443         }
    2444         if (strncmp(object->corr_type, "a string", MAX_STRING_LENGTH)) {
    2445             psFree(object);
    2446             exit(EXIT_FAILURE);
    2447         }
    2448         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2449             psFree(object);
    2450             exit(EXIT_FAILURE);
    2451         }
    2452         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2453             psFree(object);
    2454             exit(EXIT_FAILURE);
    2455         }
    2456         if (!object->fault == -16) {
    2457             psFree(object);
    2458             exit(EXIT_FAILURE);
    2459         }
    2460 
    2461         psFree(object);
    2462     }
    2463 
    2464     {
    2465         detCorrectedImfileRow *object;
    2466 
    2467         object = detCorrectedImfileRowAlloc(-64, -64, "a string", "a string", "a string", -16    );
    2468 
    2469         if (!object) {
    2470             exit(EXIT_FAILURE);
    2471         }
    2472 
    2473         if (!object->det_id == -64) {
    2474             psFree(object);
    2475             exit(EXIT_FAILURE);
    2476         }
    2477         if (!object->exp_id == -64) {
    2478             psFree(object);
    2479             exit(EXIT_FAILURE);
    2480         }
    2481         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2482             psFree(object);
    2483             exit(EXIT_FAILURE);
    2484         }
    2485         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2486             psFree(object);
    2487             exit(EXIT_FAILURE);
    2488         }
    2489         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2490             psFree(object);
    2491             exit(EXIT_FAILURE);
    2492         }
    2493         if (!object->fault == -16) {
    2494             psFree(object);
    2495             exit(EXIT_FAILURE);
    2496         }
    2497 
    2498         psFree(object);
    2499     }
    2500 
    2501     {
    2502         magicRunRow     *object;
    2503 
    2504         object = magicRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z"    );
    2505 
    2506         if (!object) {
    2507             exit(EXIT_FAILURE);
    2508         }
    2509 
    2510         if (!object->magic_id == -64) {
    2511             psFree(object);
    2512             exit(EXIT_FAILURE);
    2513         }
    2514         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    2515             psFree(object);
    2516             exit(EXIT_FAILURE);
    2517         }
    2518         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    2519             psFree(object);
    2520             exit(EXIT_FAILURE);
    2521         }
    2522         if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
    2523             psFree(object);
    2524             exit(EXIT_FAILURE);
    2525         }
    2526         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    2527             psFree(object);
    2528             exit(EXIT_FAILURE);
    2529         }
    2530         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    2531             psFree(object);
    2532             exit(EXIT_FAILURE);
    2533         }
    2534             psFree(object);
    2535             exit(EXIT_FAILURE);
    2536         }
    2537 
    2538         psFree(object);
    2539     }
    2540 
    2541     {
    2542         magicInputSkyfileRow *object;
    2543 
    2544         object = magicInputSkyfileRowAlloc(-64, -64, "a string"    );
    2545 
    2546         if (!object) {
    2547             exit(EXIT_FAILURE);
    2548         }
    2549 
    2550         if (!object->magic_id == -64) {
    2551             psFree(object);
    2552             exit(EXIT_FAILURE);
    2553         }
    2554         if (!object->diff_id == -64) {
    2555             psFree(object);
    2556             exit(EXIT_FAILURE);
    2557         }
    2558         if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
    2559             psFree(object);
    2560             exit(EXIT_FAILURE);
    2561         }
    2562 
    2563         psFree(object);
    2564     }
    2565 
    2566     {
    2567         magicTreeRow    *object;
    2568 
    2569         object = magicTreeRowAlloc(-64, "a string", "a string"    );
    2570 
    2571         if (!object) {
    2572             exit(EXIT_FAILURE);
    2573         }
    2574 
    2575         if (!object->magic_id == -64) {
    2576             psFree(object);
    2577             exit(EXIT_FAILURE);
    2578         }
    2579         if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
    2580             psFree(object);
    2581             exit(EXIT_FAILURE);
    2582         }
    2583         if (strncmp(object->dep, "a string", MAX_STRING_LENGTH)) {
    2584             psFree(object);
    2585             exit(EXIT_FAILURE);
    2586         }
    2587 
    2588         psFree(object);
    2589     }
    2590 
    2591     {
    2592         magicNodeResultRow *object;
    2593 
    2594         object = magicNodeResultRowAlloc(-64, "a string", "a string"    );
    2595 
    2596         if (!object) {
    2597             exit(EXIT_FAILURE);
    2598         }
    2599 
    2600         if (!object->magic_id == -64) {
    2601             psFree(object);
    2602             exit(EXIT_FAILURE);
    2603         }
    2604         if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
    2605             psFree(object);
    2606             exit(EXIT_FAILURE);
    2607         }
    2608         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2609             psFree(object);
    2610             exit(EXIT_FAILURE);
    2611         }
    2612 
    2613         psFree(object);
    2614     }
    2615 
    2616     {
    2617         magicMaskRow    *object;
    2618 
    2619         object = magicMaskRowAlloc(-64, "a string"    );
    2620 
    2621         if (!object) {
    2622             exit(EXIT_FAILURE);
    2623         }
    2624 
    2625         if (!object->magic_id == -64) {
    2626             psFree(object);
    2627             exit(EXIT_FAILURE);
    2628         }
    2629         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2630             psFree(object);
    2631             exit(EXIT_FAILURE);
    2632         }
    2633 
    2634         psFree(object);
    2635     }
    2636 
    2637     {
    2638         magicSkyfileMaskRow *object;
    2639 
    2640         object = magicSkyfileMaskRowAlloc(-64, -64, "a string"    );
    2641 
    2642         if (!object) {
    2643             exit(EXIT_FAILURE);
    2644         }
    2645 
    2646         if (!object->magic_id == -64) {
    2647             psFree(object);
    2648             exit(EXIT_FAILURE);
    2649         }
    2650         if (!object->diff_id == -64) {
    2651             psFree(object);
    2652             exit(EXIT_FAILURE);
    2653         }
    2654         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2655             psFree(object);
    2656             exit(EXIT_FAILURE);
    2657         }
    2658 
    2659         psFree(object);
    2660     }
    2661 
    2662     {
    2663         calDBRow        *object;
    2664 
    2665         object = calDBRowAlloc(-64, "a string", "a string"    );
    2666 
    2667         if (!object) {
    2668             exit(EXIT_FAILURE);
    2669         }
    2670 
    2671         if (!object->cal_id == -64) {
    2672             psFree(object);
    2673             exit(EXIT_FAILURE);
    2674         }
    2675         if (strncmp(object->catdir, "a string", MAX_STRING_LENGTH)) {
    2676             psFree(object);
    2677             exit(EXIT_FAILURE);
    2678         }
    2679         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    2680             psFree(object);
    2681             exit(EXIT_FAILURE);
    2682         }
    2683 
    2684         psFree(object);
    2685     }
    2686 
    2687     {
    2688         calRunRow       *object;
    2689 
    2690         object = calRunRowAlloc(-64, "a string", "a string", "a string"    );
    2691 
    2692         if (!object) {
    2693             exit(EXIT_FAILURE);
    2694         }
    2695 
    2696         if (!object->cal_id == -64) {
    2697             psFree(object);
    2698             exit(EXIT_FAILURE);
    2699         }
    2700         if (strncmp(object->region, "a string", MAX_STRING_LENGTH)) {
    2701             psFree(object);
    2702             exit(EXIT_FAILURE);
    2703         }
    2704         if (strncmp(object->last_step, "a string", MAX_STRING_LENGTH)) {
    2705             psFree(object);
    2706             exit(EXIT_FAILURE);
    2707         }
    2708         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    2709             psFree(object);
    2710             exit(EXIT_FAILURE);
    2711         }
    2712 
    2713         psFree(object);
    2714     }
    2715 
    2716     {
    2717         flatcorrRunRow  *object;
    2718 
    2719         object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string"    );
    2720 
    2721         if (!object) {
    2722             exit(EXIT_FAILURE);
    2723         }
    2724 
    2725         if (!object->corr_id == -64) {
    2726             psFree(object);
    2727             exit(EXIT_FAILURE);
    2728         }
    2729         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    2730             psFree(object);
    2731             exit(EXIT_FAILURE);
    2732         }
    2733         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    2734             psFree(object);
    2735             exit(EXIT_FAILURE);
    2736         }
    2737         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    2738             psFree(object);
    2739             exit(EXIT_FAILURE);
    2740         }
    2741         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    2742             psFree(object);
    2743             exit(EXIT_FAILURE);
    2744         }
    2745         if (strncmp(object->stats, "a string", MAX_STRING_LENGTH)) {
    2746             psFree(object);
    2747             exit(EXIT_FAILURE);
    2748         }
    2749 
    2750         psFree(object);
    2751     }
    2752 
    2753     {
    2754         flatcorrExpRow  *object;
    2755 
    2756         object = flatcorrExpRowAlloc(-64, -64    );
    2757 
    2758         if (!object) {
    2759             exit(EXIT_FAILURE);
    2760         }
    2761 
    2762         if (!object->corr_id == -64) {
    2763             psFree(object);
    2764             exit(EXIT_FAILURE);
    2765         }
    2766         if (!object->chip_id == -64) {
     2911        if (strncmp(object->outputBase, "a string", MAX_STRING_LENGTH)) {
     2912            psFree(object);
     2913            exit(EXIT_FAILURE);
     2914        }
     2915        if (strncmp(object->args, "a string", MAX_STRING_LENGTH)) {
    27672916            psFree(object);
    27682917            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/createtable.c

    r15576 r16587  
    5858        }
    5959
    60         if(!pzPendingExpCreateTable(dbh)) {
    61             exit(EXIT_FAILURE);
    62         }
    63 
    64         psDBCleanup(dbh);
    65     }
    66 
    67     {
    68         psDB            *dbh;
    69 
    70         dbh = psDBInit("localhost", "test", NULL, "test");
    71         if (!dbh) {
    72             exit(EXIT_FAILURE);
    73         }
    74 
    75         if(!pzPendingImfileCreateTable(dbh)) {
    76             exit(EXIT_FAILURE);
    77         }
    78 
    79         psDBCleanup(dbh);
    80     }
    81 
    82     {
    83         psDB            *dbh;
    84 
    85         dbh = psDBInit("localhost", "test", NULL, "test");
    86         if (!dbh) {
    87             exit(EXIT_FAILURE);
    88         }
    89 
    90         if(!pzDoneExpCreateTable(dbh)) {
    91             exit(EXIT_FAILURE);
    92         }
    93 
    94         psDBCleanup(dbh);
    95     }
    96 
    97     {
    98         psDB            *dbh;
    99 
    100         dbh = psDBInit("localhost", "test", NULL, "test");
    101         if (!dbh) {
    102             exit(EXIT_FAILURE);
    103         }
    104 
    105         if(!pzDoneImfileCreateTable(dbh)) {
     60        if(!pzDownloadExpCreateTable(dbh)) {
     61            exit(EXIT_FAILURE);
     62        }
     63
     64        psDBCleanup(dbh);
     65    }
     66
     67    {
     68        psDB            *dbh;
     69
     70        dbh = psDBInit("localhost", "test", NULL, "test");
     71        if (!dbh) {
     72            exit(EXIT_FAILURE);
     73        }
     74
     75        if(!pzDownloadImfileCreateTable(dbh)) {
    10676            exit(EXIT_FAILURE);
    10777        }
     
    779749
    780750        if(!flatcorrExpCreateTable(dbh)) {
     751            exit(EXIT_FAILURE);
     752        }
     753
     754        psDBCleanup(dbh);
     755    }
     756
     757    {
     758        psDB            *dbh;
     759
     760        dbh = psDBInit("localhost", "test", NULL, "test");
     761        if (!dbh) {
     762            exit(EXIT_FAILURE);
     763        }
     764
     765        if(!pstampDataStoreCreateTable(dbh)) {
     766            exit(EXIT_FAILURE);
     767        }
     768
     769        psDBCleanup(dbh);
     770    }
     771
     772    {
     773        psDB            *dbh;
     774
     775        dbh = psDBInit("localhost", "test", NULL, "test");
     776        if (!dbh) {
     777            exit(EXIT_FAILURE);
     778        }
     779
     780        if(!pstampRequestCreateTable(dbh)) {
     781            exit(EXIT_FAILURE);
     782        }
     783
     784        psDBCleanup(dbh);
     785    }
     786
     787    {
     788        psDB            *dbh;
     789
     790        dbh = psDBInit("localhost", "test", NULL, "test");
     791        if (!dbh) {
     792            exit(EXIT_FAILURE);
     793        }
     794
     795        if(!pstampJobCreateTable(dbh)) {
    781796            exit(EXIT_FAILURE);
    782797        }
  • trunk/ippdb/tests/dbcleanup.c

    r15576 r16587  
    1414    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS summitExp");
    1515    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS summitImfile");
    16     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzPendingExp");
    17     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzPendingImfile");
    18     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzDoneExp");
    19     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzDoneImfile");
     16    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzDownloadExp");
     17    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzDownloadImfile");
    2018    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS newExp");
    2119    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS newImfile");
     
    6361    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS flatcorrRun");
    6462    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS flatcorrExp");
     63    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampDataStore");
     64    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampRequest");
     65    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampJob");
    6566
    6667    psDBCleanup(dbh);
  • trunk/ippdb/tests/dbsetup.c

    r15576 r16587  
    2222    summitImfileCreateTable(dbh);
    2323
    24     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzPendingExp");
    25     pzPendingExpCreateTable(dbh);
     24    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzDownloadExp");
     25    pzDownloadExpCreateTable(dbh);
    2626
    27     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzPendingImfile");
    28     pzPendingImfileCreateTable(dbh);
    29 
    30     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzDoneExp");
    31     pzDoneExpCreateTable(dbh);
    32 
    33     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzDoneImfile");
    34     pzDoneImfileCreateTable(dbh);
     27    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pzDownloadImfile");
     28    pzDownloadImfileCreateTable(dbh);
    3529
    3630    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS newExp");
     
    169163    flatcorrExpCreateTable(dbh);
    170164
     165    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampDataStore");
     166    pstampDataStoreCreateTable(dbh);
     167
     168    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampRequest");
     169    pstampRequestCreateTable(dbh);
     170
     171    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampJob");
     172    pstampJobCreateTable(dbh);
     173
    171174    psDBCleanup(dbh);
    172175
  • trunk/ippdb/tests/droptable.c

    r15576 r16587  
    5858        }
    5959
    60         if (!pzPendingExpDropTable(dbh)) {
    61             exit(EXIT_FAILURE);
    62         }
    63 
    64         psDBCleanup(dbh);
    65     }
    66 
    67     {
    68         psDB            *dbh;
    69 
    70         dbh = psDBInit("localhost", "test", NULL, "test");
    71         if (!dbh) {
    72             exit(EXIT_FAILURE);
    73         }
    74 
    75         if (!pzPendingImfileDropTable(dbh)) {
    76             exit(EXIT_FAILURE);
    77         }
    78 
    79         psDBCleanup(dbh);
    80     }
    81 
    82     {
    83         psDB            *dbh;
    84 
    85         dbh = psDBInit("localhost", "test", NULL, "test");
    86         if (!dbh) {
    87             exit(EXIT_FAILURE);
    88         }
    89 
    90         if (!pzDoneExpDropTable(dbh)) {
    91             exit(EXIT_FAILURE);
    92         }
    93 
    94         psDBCleanup(dbh);
    95     }
    96 
    97     {
    98         psDB            *dbh;
    99 
    100         dbh = psDBInit("localhost", "test", NULL, "test");
    101         if (!dbh) {
    102             exit(EXIT_FAILURE);
    103         }
    104 
    105         if (!pzDoneImfileDropTable(dbh)) {
     60        if (!pzDownloadExpDropTable(dbh)) {
     61            exit(EXIT_FAILURE);
     62        }
     63
     64        psDBCleanup(dbh);
     65    }
     66
     67    {
     68        psDB            *dbh;
     69
     70        dbh = psDBInit("localhost", "test", NULL, "test");
     71        if (!dbh) {
     72            exit(EXIT_FAILURE);
     73        }
     74
     75        if (!pzDownloadImfileDropTable(dbh)) {
    10676            exit(EXIT_FAILURE);
    10777        }
     
    779749
    780750        if (!flatcorrExpDropTable(dbh)) {
     751            exit(EXIT_FAILURE);
     752        }
     753
     754        psDBCleanup(dbh);
     755    }
     756
     757    {
     758        psDB            *dbh;
     759
     760        dbh = psDBInit("localhost", "test", NULL, "test");
     761        if (!dbh) {
     762            exit(EXIT_FAILURE);
     763        }
     764
     765        if (!pstampDataStoreDropTable(dbh)) {
     766            exit(EXIT_FAILURE);
     767        }
     768
     769        psDBCleanup(dbh);
     770    }
     771
     772    {
     773        psDB            *dbh;
     774
     775        dbh = psDBInit("localhost", "test", NULL, "test");
     776        if (!dbh) {
     777            exit(EXIT_FAILURE);
     778        }
     779
     780        if (!pstampRequestDropTable(dbh)) {
     781            exit(EXIT_FAILURE);
     782        }
     783
     784        psDBCleanup(dbh);
     785    }
     786
     787    {
     788        psDB            *dbh;
     789
     790        dbh = psDBInit("localhost", "test", NULL, "test");
     791        if (!dbh) {
     792            exit(EXIT_FAILURE);
     793        }
     794
     795        if (!pstampJobDropTable(dbh)) {
    781796            exit(EXIT_FAILURE);
    782797        }
  • trunk/ippdb/tests/insert.c

    r16177 r16587  
    5858        }
    5959
    60         if (!pzPendingExpInsert(dbh, "a string", "a string", "a string")) {
    61             exit(EXIT_FAILURE);
    62         }
    63 
    64         psDBCleanup(dbh);
    65     }
    66 
    67     {
    68         psDB            *dbh;
    69 
    70         dbh = psDBInit("localhost", "test", NULL, "test");
    71         if (!dbh) {
    72             exit(EXIT_FAILURE);
    73         }
    74 
    75         if (!pzPendingImfileInsert(dbh, "a string", "a string", "a string", "a string", "a string")) {
    76             exit(EXIT_FAILURE);
    77         }
    78 
    79         psDBCleanup(dbh);
    80     }
    81 
    82     {
    83         psDB            *dbh;
    84 
    85         dbh = psDBInit("localhost", "test", NULL, "test");
    86         if (!dbh) {
    87             exit(EXIT_FAILURE);
    88         }
    89 
    90         if (!pzDoneExpInsert(dbh, "a string", "a string", "a string")) {
    91             exit(EXIT_FAILURE);
    92         }
    93 
    94         psDBCleanup(dbh);
    95     }
    96 
    97     {
    98         psDB            *dbh;
    99 
    100         dbh = psDBInit("localhost", "test", NULL, "test");
    101         if (!dbh) {
    102             exit(EXIT_FAILURE);
    103         }
    104 
    105         if (!pzDoneImfileInsert(dbh, "a string", "a string", "a string", "a string", "a string", "a string")) {
    106             exit(EXIT_FAILURE);
    107         }
    108 
    109         psDBCleanup(dbh);
    110     }
    111 
    112     {
    113         psDB            *dbh;
    114 
    115         dbh = psDBInit("localhost", "test", NULL, "test");
    116         if (!dbh) {
    117             exit(EXIT_FAILURE);
    118         }
    119 
    120         if (!newExpInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string")) {
     60        if (!pzDownloadExpInsert(dbh, "a string", "a string", "a string", "a string")) {
     61            exit(EXIT_FAILURE);
     62        }
     63
     64        psDBCleanup(dbh);
     65    }
     66
     67    {
     68        psDB            *dbh;
     69
     70        dbh = psDBInit("localhost", "test", NULL, "test");
     71        if (!dbh) {
     72            exit(EXIT_FAILURE);
     73        }
     74
     75        if (!pzDownloadImfileInsert(dbh, "a string", "a string", "a string", "a string", "a string", "a string", -16)) {
     76            exit(EXIT_FAILURE);
     77        }
     78
     79        psDBCleanup(dbh);
     80    }
     81
     82    {
     83        psDB            *dbh;
     84
     85        dbh = psDBInit("localhost", "test", NULL, "test");
     86        if (!dbh) {
     87            exit(EXIT_FAILURE);
     88        }
     89
     90        if (!newExpInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string")) {
    12191            exit(EXIT_FAILURE);
    12292        }
     
    208178        }
    209179
    210         if (!chipProcessedImfileInsert(dbh, -64, -64, "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, -32, -32, -32, -32, "a string", -16)) {
     180        if (!chipProcessedImfileInsert(dbh, -64, -64, "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, "a string", -32, -32, -32, -32, "a string", -16)) {
    211181            exit(EXIT_FAILURE);
    212182        }
     
    253223        }
    254224
    255         if (!camProcessedExpInsert(dbh, -64, -64, "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, -32, -32, -32, -32, "a string", -16)) {
     225        if (!camProcessedExpInsert(dbh, -64, -64, "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, "a string", -32, -32, -32, -32, "a string", -16)) {
    256226            exit(EXIT_FAILURE);
    257227        }
     
    328298        }
    329299
    330         if (!warpSkyfileInsert(dbh, -64, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, true, -16)) {
     300        if (!warpSkyfileInsert(dbh, -64, "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, true, -16)) {
    331301            exit(EXIT_FAILURE);
    332302        }
     
    373343        }
    374344
    375         if (!diffSkyfileInsert(dbh, -64, "a string", "a string", 64.64, 64.64, 64.64, -16)) {
     345        if (!diffSkyfileInsert(dbh, -64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16)) {
    376346            exit(EXIT_FAILURE);
    377347        }
     
    418388        }
    419389
    420         if (!stackSumSkyfileInsert(dbh, -64, "a string", "a string", 64.64, 64.64, 64.64, -16)) {
     390        if (!stackSumSkyfileInsert(dbh, -64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16)) {
    421391            exit(EXIT_FAILURE);
    422392        }
     
    763733        }
    764734
    765         if (!flatcorrRunInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string")) {
     735        if (!flatcorrRunInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string", "a string")) {
    766736            exit(EXIT_FAILURE);
    767737        }
     
    779749
    780750        if (!flatcorrExpInsert(dbh, -64, -64)) {
     751            exit(EXIT_FAILURE);
     752        }
     753
     754        psDBCleanup(dbh);
     755    }
     756
     757    {
     758        psDB            *dbh;
     759
     760        dbh = psDBInit("localhost", "test", NULL, "test");
     761        if (!dbh) {
     762            exit(EXIT_FAILURE);
     763        }
     764
     765        if (!pstampDataStoreInsert(dbh, -64, "a string", "a string", "a string")) {
     766            exit(EXIT_FAILURE);
     767        }
     768
     769        psDBCleanup(dbh);
     770    }
     771
     772    {
     773        psDB            *dbh;
     774
     775        dbh = psDBInit("localhost", "test", NULL, "test");
     776        if (!dbh) {
     777            exit(EXIT_FAILURE);
     778        }
     779
     780        if (!pstampRequestInsert(dbh, -64, -64, "a string", "a string")) {
     781            exit(EXIT_FAILURE);
     782        }
     783
     784        psDBCleanup(dbh);
     785    }
     786
     787    {
     788        psDB            *dbh;
     789
     790        dbh = psDBInit("localhost", "test", NULL, "test");
     791        if (!dbh) {
     792            exit(EXIT_FAILURE);
     793        }
     794
     795        if (!pstampJobInsert(dbh, -64, -64, "a string", -32, "a string", "a string", "a string")) {
    781796            exit(EXIT_FAILURE);
    782797        }
  • trunk/ippdb/tests/insertfits.c

    r15576 r16587  
    102102        }
    103103
    104         if (!pzPendingExpInsertFits(dbh, fits)) {
    105             exit(EXIT_FAILURE);
    106         }
    107 
    108         if (!psFitsClose(fits)) {
    109             exit(EXIT_FAILURE);
    110         }
    111 
    112         psDBCleanup(dbh);
    113     }
    114 
    115     {
    116         psDB            *dbh;
    117         psFits          *fits;
    118 
    119         dbh = psDBInit("localhost", "test", NULL, "test");
    120         if (!dbh) {
    121             exit(EXIT_FAILURE);
    122         }
    123 
    124         // open a temp
    125         fits = psFitsOpen(TMP_FILENAME, "r");
    126         if (!fits) {
    127             exit(EXIT_FAILURE);
    128         }
    129 
    130         if (!pzPendingImfileInsertFits(dbh, fits)) {
    131             exit(EXIT_FAILURE);
    132         }
    133 
    134         if (!psFitsClose(fits)) {
    135             exit(EXIT_FAILURE);
    136         }
    137 
    138         psDBCleanup(dbh);
    139     }
    140 
    141     {
    142         psDB            *dbh;
    143         psFits          *fits;
    144 
    145         dbh = psDBInit("localhost", "test", NULL, "test");
    146         if (!dbh) {
    147             exit(EXIT_FAILURE);
    148         }
    149 
    150         // open a temp
    151         fits = psFitsOpen(TMP_FILENAME, "r");
    152         if (!fits) {
    153             exit(EXIT_FAILURE);
    154         }
    155 
    156         if (!pzDoneExpInsertFits(dbh, fits)) {
    157             exit(EXIT_FAILURE);
    158         }
    159 
    160         if (!psFitsClose(fits)) {
    161             exit(EXIT_FAILURE);
    162         }
    163 
    164         psDBCleanup(dbh);
    165     }
    166 
    167     {
    168         psDB            *dbh;
    169         psFits          *fits;
    170 
    171         dbh = psDBInit("localhost", "test", NULL, "test");
    172         if (!dbh) {
    173             exit(EXIT_FAILURE);
    174         }
    175 
    176         // open a temp
    177         fits = psFitsOpen(TMP_FILENAME, "r");
    178         if (!fits) {
    179             exit(EXIT_FAILURE);
    180         }
    181 
    182         if (!pzDoneImfileInsertFits(dbh, fits)) {
     104        if (!pzDownloadExpInsertFits(dbh, fits)) {
     105            exit(EXIT_FAILURE);
     106        }
     107
     108        if (!psFitsClose(fits)) {
     109            exit(EXIT_FAILURE);
     110        }
     111
     112        psDBCleanup(dbh);
     113    }
     114
     115    {
     116        psDB            *dbh;
     117        psFits          *fits;
     118
     119        dbh = psDBInit("localhost", "test", NULL, "test");
     120        if (!dbh) {
     121            exit(EXIT_FAILURE);
     122        }
     123
     124        // open a temp
     125        fits = psFitsOpen(TMP_FILENAME, "r");
     126        if (!fits) {
     127            exit(EXIT_FAILURE);
     128        }
     129
     130        if (!pzDownloadImfileInsertFits(dbh, fits)) {
    183131            exit(EXIT_FAILURE);
    184132        }
     
    13511299
    13521300        if (!flatcorrExpInsertFits(dbh, fits)) {
     1301            exit(EXIT_FAILURE);
     1302        }
     1303
     1304        if (!psFitsClose(fits)) {
     1305            exit(EXIT_FAILURE);
     1306        }
     1307
     1308        psDBCleanup(dbh);
     1309    }
     1310
     1311    {
     1312        psDB            *dbh;
     1313        psFits          *fits;
     1314
     1315        dbh = psDBInit("localhost", "test", NULL, "test");
     1316        if (!dbh) {
     1317            exit(EXIT_FAILURE);
     1318        }
     1319
     1320        // open a temp
     1321        fits = psFitsOpen(TMP_FILENAME, "r");
     1322        if (!fits) {
     1323            exit(EXIT_FAILURE);
     1324        }
     1325
     1326        if (!pstampDataStoreInsertFits(dbh, fits)) {
     1327            exit(EXIT_FAILURE);
     1328        }
     1329
     1330        if (!psFitsClose(fits)) {
     1331            exit(EXIT_FAILURE);
     1332        }
     1333
     1334        psDBCleanup(dbh);
     1335    }
     1336
     1337    {
     1338        psDB            *dbh;
     1339        psFits          *fits;
     1340
     1341        dbh = psDBInit("localhost", "test", NULL, "test");
     1342        if (!dbh) {
     1343            exit(EXIT_FAILURE);
     1344        }
     1345
     1346        // open a temp
     1347        fits = psFitsOpen(TMP_FILENAME, "r");
     1348        if (!fits) {
     1349            exit(EXIT_FAILURE);
     1350        }
     1351
     1352        if (!pstampRequestInsertFits(dbh, fits)) {
     1353            exit(EXIT_FAILURE);
     1354        }
     1355
     1356        if (!psFitsClose(fits)) {
     1357            exit(EXIT_FAILURE);
     1358        }
     1359
     1360        psDBCleanup(dbh);
     1361    }
     1362
     1363    {
     1364        psDB            *dbh;
     1365        psFits          *fits;
     1366
     1367        dbh = psDBInit("localhost", "test", NULL, "test");
     1368        if (!dbh) {
     1369            exit(EXIT_FAILURE);
     1370        }
     1371
     1372        // open a temp
     1373        fits = psFitsOpen(TMP_FILENAME, "r");
     1374        if (!fits) {
     1375            exit(EXIT_FAILURE);
     1376        }
     1377
     1378        if (!pstampJobInsertFits(dbh, fits)) {
    13531379            exit(EXIT_FAILURE);
    13541380        }
  • trunk/ippdb/tests/insertobject.c

    r16177 r16587  
    7373    {
    7474        psDB            *dbh;
    75         pzPendingExpRow *object;
    76 
    77         dbh = psDBInit("localhost", "test", NULL, "test");
    78         if (!dbh) {
    79             exit(EXIT_FAILURE);
    80         }
    81 
    82         object = pzPendingExpRowAlloc("a string", "a string", "a string");
    83         if (!object) {
    84             exit(EXIT_FAILURE);
    85         }
    86 
    87         if (!pzPendingExpInsertObject(dbh, object)) {
    88             exit(EXIT_FAILURE);
    89         }
    90 
    91         psFree(object);
    92         psDBCleanup(dbh);
    93     }
    94 
    95     {
    96         psDB            *dbh;
    97         pzPendingImfileRow *object;
    98 
    99         dbh = psDBInit("localhost", "test", NULL, "test");
    100         if (!dbh) {
    101             exit(EXIT_FAILURE);
    102         }
    103 
    104         object = pzPendingImfileRowAlloc("a string", "a string", "a string", "a string", "a string");
    105         if (!object) {
    106             exit(EXIT_FAILURE);
    107         }
    108 
    109         if (!pzPendingImfileInsertObject(dbh, object)) {
    110             exit(EXIT_FAILURE);
    111         }
    112 
    113         psFree(object);
    114         psDBCleanup(dbh);
    115     }
    116 
    117     {
    118         psDB            *dbh;
    119         pzDoneExpRow    *object;
    120 
    121         dbh = psDBInit("localhost", "test", NULL, "test");
    122         if (!dbh) {
    123             exit(EXIT_FAILURE);
    124         }
    125 
    126         object = pzDoneExpRowAlloc("a string", "a string", "a string");
    127         if (!object) {
    128             exit(EXIT_FAILURE);
    129         }
    130 
    131         if (!pzDoneExpInsertObject(dbh, object)) {
    132             exit(EXIT_FAILURE);
    133         }
    134 
    135         psFree(object);
    136         psDBCleanup(dbh);
    137     }
    138 
    139     {
    140         psDB            *dbh;
    141         pzDoneImfileRow *object;
    142 
    143         dbh = psDBInit("localhost", "test", NULL, "test");
    144         if (!dbh) {
    145             exit(EXIT_FAILURE);
    146         }
    147 
    148         object = pzDoneImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string");
    149         if (!object) {
    150             exit(EXIT_FAILURE);
    151         }
    152 
    153         if (!pzDoneImfileInsertObject(dbh, object)) {
     75        pzDownloadExpRow *object;
     76
     77        dbh = psDBInit("localhost", "test", NULL, "test");
     78        if (!dbh) {
     79            exit(EXIT_FAILURE);
     80        }
     81
     82        object = pzDownloadExpRowAlloc("a string", "a string", "a string", "a string");
     83        if (!object) {
     84            exit(EXIT_FAILURE);
     85        }
     86
     87        if (!pzDownloadExpInsertObject(dbh, object)) {
     88            exit(EXIT_FAILURE);
     89        }
     90
     91        psFree(object);
     92        psDBCleanup(dbh);
     93    }
     94
     95    {
     96        psDB            *dbh;
     97        pzDownloadImfileRow *object;
     98
     99        dbh = psDBInit("localhost", "test", NULL, "test");
     100        if (!dbh) {
     101            exit(EXIT_FAILURE);
     102        }
     103
     104        object = pzDownloadImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", -16);
     105        if (!object) {
     106            exit(EXIT_FAILURE);
     107        }
     108
     109        if (!pzDownloadImfileInsertObject(dbh, object)) {
    154110            exit(EXIT_FAILURE);
    155111        }
     
    168124        }
    169125
    170         object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
     126        object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
    171127        if (!object) {
    172128            exit(EXIT_FAILURE);
     
    300256        }
    301257
    302         object = chipProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, -32, -32, -32, -32, "a string", -16);
     258        object = chipProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, "a string", -32, -32, -32, -32, "a string", -16);
    303259        if (!object) {
    304260            exit(EXIT_FAILURE);
     
    366322        }
    367323
    368         object = camProcessedExpRowAlloc(-64, -64, "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, -32, -32, -32, -32, "a string", -16);
     324        object = camProcessedExpRowAlloc(-64, -64, "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, "a string", -32, -32, -32, -32, "a string", -16);
    369325        if (!object) {
    370326            exit(EXIT_FAILURE);
     
    476432        }
    477433
    478         object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, true, -16);
     434        object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, true, -16);
    479435        if (!object) {
    480436            exit(EXIT_FAILURE);
     
    542498        }
    543499
    544         object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 64.64, -16);
     500        object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16);
    545501        if (!object) {
    546502            exit(EXIT_FAILURE);
     
    608564        }
    609565
    610         object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 64.64, -16);
     566        object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16);
    611567        if (!object) {
    612568            exit(EXIT_FAILURE);
     
    11141070        }
    11151071
    1116         object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string");
     1072        object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string");
    11171073        if (!object) {
    11181074            exit(EXIT_FAILURE);
     
    11421098
    11431099        if (!flatcorrExpInsertObject(dbh, object)) {
     1100            exit(EXIT_FAILURE);
     1101        }
     1102
     1103        psFree(object);
     1104        psDBCleanup(dbh);
     1105    }
     1106
     1107    {
     1108        psDB            *dbh;
     1109        pstampDataStoreRow *object;
     1110
     1111        dbh = psDBInit("localhost", "test", NULL, "test");
     1112        if (!dbh) {
     1113            exit(EXIT_FAILURE);
     1114        }
     1115
     1116        object = pstampDataStoreRowAlloc(-64, "a string", "a string", "a string");
     1117        if (!object) {
     1118            exit(EXIT_FAILURE);
     1119        }
     1120
     1121        if (!pstampDataStoreInsertObject(dbh, object)) {
     1122            exit(EXIT_FAILURE);
     1123        }
     1124
     1125        psFree(object);
     1126        psDBCleanup(dbh);
     1127    }
     1128
     1129    {
     1130        psDB            *dbh;
     1131        pstampRequestRow *object;
     1132
     1133        dbh = psDBInit("localhost", "test", NULL, "test");
     1134        if (!dbh) {
     1135            exit(EXIT_FAILURE);
     1136        }
     1137
     1138        object = pstampRequestRowAlloc(-64, -64, "a string", "a string");
     1139        if (!object) {
     1140            exit(EXIT_FAILURE);
     1141        }
     1142
     1143        if (!pstampRequestInsertObject(dbh, object)) {
     1144            exit(EXIT_FAILURE);
     1145        }
     1146
     1147        psFree(object);
     1148        psDBCleanup(dbh);
     1149    }
     1150
     1151    {
     1152        psDB            *dbh;
     1153        pstampJobRow    *object;
     1154
     1155        dbh = psDBInit("localhost", "test", NULL, "test");
     1156        if (!dbh) {
     1157            exit(EXIT_FAILURE);
     1158        }
     1159
     1160        object = pstampJobRowAlloc(-64, -64, "a string", -32, "a string", "a string", "a string");
     1161        if (!object) {
     1162            exit(EXIT_FAILURE);
     1163        }
     1164
     1165        if (!pstampJobInsertObject(dbh, object)) {
    11441166            exit(EXIT_FAILURE);
    11451167        }
  • trunk/ippdb/tests/metadatafromobject.c

    r16177 r16587  
    148148    {
    149149        psMetadata      *md;
    150         pzPendingExpRow *object;
    151         bool            status;
    152 
    153         object = pzPendingExpRowAlloc("a string", "a string", "a string");
    154         if (!object) {
    155             exit(EXIT_FAILURE);
    156         }
    157 
    158         md = pzPendingExpMetadataFromObject(object);
     150        pzDownloadExpRow *object;
     151        bool            status;
     152
     153        object = pzDownloadExpRowAlloc("a string", "a string", "a string", "a string");
     154        if (!object) {
     155            exit(EXIT_FAILURE);
     156        }
     157
     158        md = pzDownloadExpMetadataFromObject(object);
    159159        if (!md) {
    160160            exit(EXIT_FAILURE);
     
    175175            exit(EXIT_FAILURE);
    176176        }
    177 
    178         psFree(md);
    179     }
    180 
    181     {
    182         psMetadata      *md;
    183         pzPendingImfileRow *object;
    184         bool            status;
    185 
    186         object = pzPendingImfileRowAlloc("a string", "a string", "a string", "a string", "a string");
    187         if (!object) {
    188             exit(EXIT_FAILURE);
    189         }
    190 
    191         md = pzPendingImfileMetadataFromObject(object);
     177        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     178            psFree(md);
     179            exit(EXIT_FAILURE);
     180        }
     181
     182        psFree(md);
     183    }
     184
     185    {
     186        psMetadata      *md;
     187        pzDownloadImfileRow *object;
     188        bool            status;
     189
     190        object = pzDownloadImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", -16);
     191        if (!object) {
     192            exit(EXIT_FAILURE);
     193        }
     194
     195        md = pzDownloadImfileMetadataFromObject(object);
    192196        if (!md) {
    193197            exit(EXIT_FAILURE);
     
    216220            exit(EXIT_FAILURE);
    217221        }
    218 
    219         psFree(md);
    220     }
    221 
    222     {
    223         psMetadata      *md;
    224         pzDoneExpRow    *object;
    225         bool            status;
    226 
    227         object = pzDoneExpRowAlloc("a string", "a string", "a string");
    228         if (!object) {
    229             exit(EXIT_FAILURE);
    230         }
    231 
    232         md = pzDoneExpMetadataFromObject(object);
    233         if (!md) {
    234             exit(EXIT_FAILURE);
    235         }
    236 
    237         psFree(object);
    238 
     222        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     223            psFree(md);
     224            exit(EXIT_FAILURE);
     225        }
     226            psFree(md);
     227            exit(EXIT_FAILURE);
     228        }
     229
     230        psFree(md);
     231    }
     232
     233    {
     234        psMetadata      *md;
     235        newExpRow       *object;
     236        bool            status;
     237
     238        object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
     239        if (!object) {
     240            exit(EXIT_FAILURE);
     241        }
     242
     243        md = newExpMetadataFromObject(object);
     244        if (!md) {
     245            exit(EXIT_FAILURE);
     246        }
     247
     248        psFree(object);
     249
     250            psFree(md);
     251            exit(EXIT_FAILURE);
     252        }
     253        if (strncmp(psMetadataLookupPtr(&status, md, "tmp_exp_name"), "a string", MAX_STRING_LENGTH)) {
     254            psFree(md);
     255            exit(EXIT_FAILURE);
     256        }
     257        if (strncmp(psMetadataLookupPtr(&status, md, "tmp_camera"), "a string", MAX_STRING_LENGTH)) {
     258            psFree(md);
     259            exit(EXIT_FAILURE);
     260        }
     261        if (strncmp(psMetadataLookupPtr(&status, md, "tmp_telescope"), "a string", MAX_STRING_LENGTH)) {
     262            psFree(md);
     263            exit(EXIT_FAILURE);
     264        }
     265        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     266            psFree(md);
     267            exit(EXIT_FAILURE);
     268        }
     269        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     270            psFree(md);
     271            exit(EXIT_FAILURE);
     272        }
     273        if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
     274            psFree(md);
     275            exit(EXIT_FAILURE);
     276        }
     277        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
     278            psFree(md);
     279            exit(EXIT_FAILURE);
     280        }
     281        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     282            psFree(md);
     283            exit(EXIT_FAILURE);
     284        }
     285        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     286            psFree(md);
     287            exit(EXIT_FAILURE);
     288        }
     289        if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
     290            psFree(md);
     291            exit(EXIT_FAILURE);
     292        }
     293        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     294            psFree(md);
     295            exit(EXIT_FAILURE);
     296        }
     297
     298        psFree(md);
     299    }
     300
     301    {
     302        psMetadata      *md;
     303        newImfileRow    *object;
     304        bool            status;
     305
     306        object = newImfileRowAlloc(-64, "a string", "a string");
     307        if (!object) {
     308            exit(EXIT_FAILURE);
     309        }
     310
     311        md = newImfileMetadataFromObject(object);
     312        if (!md) {
     313            exit(EXIT_FAILURE);
     314        }
     315
     316        psFree(object);
     317
     318            psFree(md);
     319            exit(EXIT_FAILURE);
     320        }
     321        if (strncmp(psMetadataLookupPtr(&status, md, "tmp_class_id"), "a string", MAX_STRING_LENGTH)) {
     322            psFree(md);
     323            exit(EXIT_FAILURE);
     324        }
     325        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     326            psFree(md);
     327            exit(EXIT_FAILURE);
     328        }
     329
     330        psFree(md);
     331    }
     332
     333    {
     334        psMetadata      *md;
     335        rawExpRow       *object;
     336        bool            status;
     337
     338        object = rawExpRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, -16);
     339        if (!object) {
     340            exit(EXIT_FAILURE);
     341        }
     342
     343        md = rawExpMetadataFromObject(object);
     344        if (!md) {
     345            exit(EXIT_FAILURE);
     346        }
     347
     348        psFree(object);
     349
     350            psFree(md);
     351            exit(EXIT_FAILURE);
     352        }
    239353        if (strncmp(psMetadataLookupPtr(&status, md, "exp_name"), "a string", MAX_STRING_LENGTH)) {
    240354            psFree(md);
     
    249363            exit(EXIT_FAILURE);
    250364        }
    251 
    252         psFree(md);
    253     }
    254 
    255     {
    256         psMetadata      *md;
    257         pzDoneImfileRow *object;
    258         bool            status;
    259 
    260         object = pzDoneImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string");
    261         if (!object) {
    262             exit(EXIT_FAILURE);
    263         }
    264 
    265         md = pzDoneImfileMetadataFromObject(object);
    266         if (!md) {
    267             exit(EXIT_FAILURE);
    268         }
    269 
    270         psFree(object);
    271 
     365            psFree(md);
     366            exit(EXIT_FAILURE);
     367        }
     368        if (strncmp(psMetadataLookupPtr(&status, md, "exp_tag"), "a string", MAX_STRING_LENGTH)) {
     369            psFree(md);
     370            exit(EXIT_FAILURE);
     371        }
     372        if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
     373            psFree(md);
     374            exit(EXIT_FAILURE);
     375        }
     376        if (strncmp(psMetadataLookupPtr(&status, md, "filelevel"), "a string", MAX_STRING_LENGTH)) {
     377            psFree(md);
     378            exit(EXIT_FAILURE);
     379        }
     380        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     381            psFree(md);
     382            exit(EXIT_FAILURE);
     383        }
     384        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
     385            psFree(md);
     386            exit(EXIT_FAILURE);
     387        }
     388        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     389            psFree(md);
     390            exit(EXIT_FAILURE);
     391        }
     392        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     393            psFree(md);
     394            exit(EXIT_FAILURE);
     395        }
     396        if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
     397            psFree(md);
     398            exit(EXIT_FAILURE);
     399        }
     400        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
     401            psFree(md);
     402            exit(EXIT_FAILURE);
     403        }
     404        if (strncmp(psMetadataLookupPtr(&status, md, "comment"), "a string", MAX_STRING_LENGTH)) {
     405            psFree(md);
     406            exit(EXIT_FAILURE);
     407        }
     408        if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
     409            psFree(md);
     410            exit(EXIT_FAILURE);
     411        }
     412        if (!psMetadataLookupF64(&status, md, "ra") == 64.64) {
     413            psFree(md);
     414            exit(EXIT_FAILURE);
     415        }
     416        if (!psMetadataLookupF64(&status, md, "decl") == 64.64) {
     417            psFree(md);
     418            exit(EXIT_FAILURE);
     419        }
     420        if (!psMetadataLookupF32(&status, md, "exp_time") == 32.32) {
     421            psFree(md);
     422            exit(EXIT_FAILURE);
     423        }
     424        if (!psMetadataLookupF32(&status, md, "sat_pixel_frac") == 32.32) {
     425            psFree(md);
     426            exit(EXIT_FAILURE);
     427        }
     428        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     429            psFree(md);
     430            exit(EXIT_FAILURE);
     431        }
     432        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     433            psFree(md);
     434            exit(EXIT_FAILURE);
     435        }
     436        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     437            psFree(md);
     438            exit(EXIT_FAILURE);
     439        }
     440        if (!psMetadataLookupF64(&status, md, "alt") == 64.64) {
     441            psFree(md);
     442            exit(EXIT_FAILURE);
     443        }
     444        if (!psMetadataLookupF64(&status, md, "az") == 64.64) {
     445            psFree(md);
     446            exit(EXIT_FAILURE);
     447        }
     448        if (!psMetadataLookupF32(&status, md, "ccd_temp") == 32.32) {
     449            psFree(md);
     450            exit(EXIT_FAILURE);
     451        }
     452        if (!psMetadataLookupF64(&status, md, "posang") == 64.64) {
     453            psFree(md);
     454            exit(EXIT_FAILURE);
     455        }
     456        if (!psMetadataLookupF32(&status, md, "m1_x") == 32.32) {
     457            psFree(md);
     458            exit(EXIT_FAILURE);
     459        }
     460        if (!psMetadataLookupF32(&status, md, "m1_y") == 32.32) {
     461            psFree(md);
     462            exit(EXIT_FAILURE);
     463        }
     464        if (!psMetadataLookupF32(&status, md, "m1_z") == 32.32) {
     465            psFree(md);
     466            exit(EXIT_FAILURE);
     467        }
     468        if (!psMetadataLookupF32(&status, md, "m1_tip") == 32.32) {
     469            psFree(md);
     470            exit(EXIT_FAILURE);
     471        }
     472        if (!psMetadataLookupF32(&status, md, "m1_tilt") == 32.32) {
     473            psFree(md);
     474            exit(EXIT_FAILURE);
     475        }
     476        if (!psMetadataLookupF32(&status, md, "m2_x") == 32.32) {
     477            psFree(md);
     478            exit(EXIT_FAILURE);
     479        }
     480        if (!psMetadataLookupF32(&status, md, "m2_y") == 32.32) {
     481            psFree(md);
     482            exit(EXIT_FAILURE);
     483        }
     484        if (!psMetadataLookupF32(&status, md, "m2_z") == 32.32) {
     485            psFree(md);
     486            exit(EXIT_FAILURE);
     487        }
     488        if (!psMetadataLookupF32(&status, md, "m2_tip") == 32.32) {
     489            psFree(md);
     490            exit(EXIT_FAILURE);
     491        }
     492        if (!psMetadataLookupF32(&status, md, "m2_tilt") == 32.32) {
     493            psFree(md);
     494            exit(EXIT_FAILURE);
     495        }
     496        if (!psMetadataLookupF32(&status, md, "env_temperature") == 32.32) {
     497            psFree(md);
     498            exit(EXIT_FAILURE);
     499        }
     500        if (!psMetadataLookupF32(&status, md, "env_humidity") == 32.32) {
     501            psFree(md);
     502            exit(EXIT_FAILURE);
     503        }
     504        if (!psMetadataLookupF32(&status, md, "env_wind_speed") == 32.32) {
     505            psFree(md);
     506            exit(EXIT_FAILURE);
     507        }
     508        if (!psMetadataLookupF32(&status, md, "env_wind_dir") == 32.32) {
     509            psFree(md);
     510            exit(EXIT_FAILURE);
     511        }
     512        if (!psMetadataLookupF32(&status, md, "teltemp_m1") == 32.32) {
     513            psFree(md);
     514            exit(EXIT_FAILURE);
     515        }
     516        if (!psMetadataLookupF32(&status, md, "teltemp_m1cell") == 32.32) {
     517            psFree(md);
     518            exit(EXIT_FAILURE);
     519        }
     520        if (!psMetadataLookupF32(&status, md, "teltemp_m2") == 32.32) {
     521            psFree(md);
     522            exit(EXIT_FAILURE);
     523        }
     524        if (!psMetadataLookupF32(&status, md, "teltemp_spider") == 32.32) {
     525            psFree(md);
     526            exit(EXIT_FAILURE);
     527        }
     528        if (!psMetadataLookupF32(&status, md, "teltemp_truss") == 32.32) {
     529            psFree(md);
     530            exit(EXIT_FAILURE);
     531        }
     532        if (!psMetadataLookupF32(&status, md, "teltemp_extra") == 32.32) {
     533            psFree(md);
     534            exit(EXIT_FAILURE);
     535        }
     536        if (!psMetadataLookupF32(&status, md, "pon_time") == 32.32) {
     537            psFree(md);
     538            exit(EXIT_FAILURE);
     539        }
     540        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     541            psFree(md);
     542            exit(EXIT_FAILURE);
     543        }
     544        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     545            psFree(md);
     546            exit(EXIT_FAILURE);
     547        }
     548        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     549            psFree(md);
     550            exit(EXIT_FAILURE);
     551        }
     552        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     553            psFree(md);
     554            exit(EXIT_FAILURE);
     555        }
     556        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     557            psFree(md);
     558            exit(EXIT_FAILURE);
     559        }
     560        if (strncmp(psMetadataLookupPtr(&status, md, "object"), "a string", MAX_STRING_LENGTH)) {
     561            psFree(md);
     562            exit(EXIT_FAILURE);
     563        }
     564        if (!psMetadataLookupF32(&status, md, "solang") == 32.32) {
     565            psFree(md);
     566            exit(EXIT_FAILURE);
     567        }
     568            psFree(md);
     569            exit(EXIT_FAILURE);
     570        }
     571
     572        psFree(md);
     573    }
     574
     575    {
     576        psMetadata      *md;
     577        rawImfileRow    *object;
     578        bool            status;
     579
     580        object = rawImfileRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
     581        if (!object) {
     582            exit(EXIT_FAILURE);
     583        }
     584
     585        md = rawImfileMetadataFromObject(object);
     586        if (!md) {
     587            exit(EXIT_FAILURE);
     588        }
     589
     590        psFree(object);
     591
     592            psFree(md);
     593            exit(EXIT_FAILURE);
     594        }
    272595        if (strncmp(psMetadataLookupPtr(&status, md, "exp_name"), "a string", MAX_STRING_LENGTH)) {
    273596            psFree(md);
     
    282605            exit(EXIT_FAILURE);
    283606        }
    284         if (strncmp(psMetadataLookupPtr(&status, md, "class"), "a string", MAX_STRING_LENGTH)) {
     607            psFree(md);
     608            exit(EXIT_FAILURE);
     609        }
     610        if (strncmp(psMetadataLookupPtr(&status, md, "tmp_class_id"), "a string", MAX_STRING_LENGTH)) {
    285611            psFree(md);
    286612            exit(EXIT_FAILURE);
     
    294620            exit(EXIT_FAILURE);
    295621        }
    296 
    297         psFree(md);
    298     }
    299 
    300     {
    301         psMetadata      *md;
    302         newExpRow       *object;
    303         bool            status;
    304 
    305         object = newExpRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
    306         if (!object) {
    307             exit(EXIT_FAILURE);
    308         }
    309 
    310         md = newExpMetadataFromObject(object);
    311         if (!md) {
    312             exit(EXIT_FAILURE);
    313         }
    314 
    315         psFree(object);
    316 
    317             psFree(md);
    318             exit(EXIT_FAILURE);
    319         }
    320         if (strncmp(psMetadataLookupPtr(&status, md, "tmp_exp_name"), "a string", MAX_STRING_LENGTH)) {
    321             psFree(md);
    322             exit(EXIT_FAILURE);
    323         }
    324         if (strncmp(psMetadataLookupPtr(&status, md, "tmp_camera"), "a string", MAX_STRING_LENGTH)) {
    325             psFree(md);
    326             exit(EXIT_FAILURE);
    327         }
    328         if (strncmp(psMetadataLookupPtr(&status, md, "tmp_telescope"), "a string", MAX_STRING_LENGTH)) {
     622        if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
     623            psFree(md);
     624            exit(EXIT_FAILURE);
     625        }
     626        if (strncmp(psMetadataLookupPtr(&status, md, "filelevel"), "a string", MAX_STRING_LENGTH)) {
     627            psFree(md);
     628            exit(EXIT_FAILURE);
     629        }
     630        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
     631            psFree(md);
     632            exit(EXIT_FAILURE);
     633        }
     634        if (strncmp(psMetadataLookupPtr(&status, md, "comment"), "a string", MAX_STRING_LENGTH)) {
     635            psFree(md);
     636            exit(EXIT_FAILURE);
     637        }
     638        if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
     639            psFree(md);
     640            exit(EXIT_FAILURE);
     641        }
     642        if (!psMetadataLookupF64(&status, md, "ra") == 64.64) {
     643            psFree(md);
     644            exit(EXIT_FAILURE);
     645        }
     646        if (!psMetadataLookupF64(&status, md, "decl") == 64.64) {
     647            psFree(md);
     648            exit(EXIT_FAILURE);
     649        }
     650        if (!psMetadataLookupF32(&status, md, "exp_time") == 32.32) {
     651            psFree(md);
     652            exit(EXIT_FAILURE);
     653        }
     654        if (!psMetadataLookupF32(&status, md, "sat_pixel_frac") == 32.32) {
     655            psFree(md);
     656            exit(EXIT_FAILURE);
     657        }
     658        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     659            psFree(md);
     660            exit(EXIT_FAILURE);
     661        }
     662        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     663            psFree(md);
     664            exit(EXIT_FAILURE);
     665        }
     666        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     667            psFree(md);
     668            exit(EXIT_FAILURE);
     669        }
     670        if (!psMetadataLookupF64(&status, md, "alt") == 64.64) {
     671            psFree(md);
     672            exit(EXIT_FAILURE);
     673        }
     674        if (!psMetadataLookupF64(&status, md, "az") == 64.64) {
     675            psFree(md);
     676            exit(EXIT_FAILURE);
     677        }
     678        if (!psMetadataLookupF32(&status, md, "ccd_temp") == 32.32) {
     679            psFree(md);
     680            exit(EXIT_FAILURE);
     681        }
     682        if (!psMetadataLookupF64(&status, md, "posang") == 64.64) {
     683            psFree(md);
     684            exit(EXIT_FAILURE);
     685        }
     686        if (!psMetadataLookupF32(&status, md, "m1_x") == 32.32) {
     687            psFree(md);
     688            exit(EXIT_FAILURE);
     689        }
     690        if (!psMetadataLookupF32(&status, md, "m1_y") == 32.32) {
     691            psFree(md);
     692            exit(EXIT_FAILURE);
     693        }
     694        if (!psMetadataLookupF32(&status, md, "m1_z") == 32.32) {
     695            psFree(md);
     696            exit(EXIT_FAILURE);
     697        }
     698        if (!psMetadataLookupF32(&status, md, "m1_tip") == 32.32) {
     699            psFree(md);
     700            exit(EXIT_FAILURE);
     701        }
     702        if (!psMetadataLookupF32(&status, md, "m1_tilt") == 32.32) {
     703            psFree(md);
     704            exit(EXIT_FAILURE);
     705        }
     706        if (!psMetadataLookupF32(&status, md, "m2_x") == 32.32) {
     707            psFree(md);
     708            exit(EXIT_FAILURE);
     709        }
     710        if (!psMetadataLookupF32(&status, md, "m2_y") == 32.32) {
     711            psFree(md);
     712            exit(EXIT_FAILURE);
     713        }
     714        if (!psMetadataLookupF32(&status, md, "m2_z") == 32.32) {
     715            psFree(md);
     716            exit(EXIT_FAILURE);
     717        }
     718        if (!psMetadataLookupF32(&status, md, "m2_tip") == 32.32) {
     719            psFree(md);
     720            exit(EXIT_FAILURE);
     721        }
     722        if (!psMetadataLookupF32(&status, md, "m2_tilt") == 32.32) {
     723            psFree(md);
     724            exit(EXIT_FAILURE);
     725        }
     726        if (!psMetadataLookupF32(&status, md, "env_temperature") == 32.32) {
     727            psFree(md);
     728            exit(EXIT_FAILURE);
     729        }
     730        if (!psMetadataLookupF32(&status, md, "env_humidity") == 32.32) {
     731            psFree(md);
     732            exit(EXIT_FAILURE);
     733        }
     734        if (!psMetadataLookupF32(&status, md, "env_wind_speed") == 32.32) {
     735            psFree(md);
     736            exit(EXIT_FAILURE);
     737        }
     738        if (!psMetadataLookupF32(&status, md, "env_wind_dir") == 32.32) {
     739            psFree(md);
     740            exit(EXIT_FAILURE);
     741        }
     742        if (!psMetadataLookupF32(&status, md, "teltemp_m1") == 32.32) {
     743            psFree(md);
     744            exit(EXIT_FAILURE);
     745        }
     746        if (!psMetadataLookupF32(&status, md, "teltemp_m1cell") == 32.32) {
     747            psFree(md);
     748            exit(EXIT_FAILURE);
     749        }
     750        if (!psMetadataLookupF32(&status, md, "teltemp_m2") == 32.32) {
     751            psFree(md);
     752            exit(EXIT_FAILURE);
     753        }
     754        if (!psMetadataLookupF32(&status, md, "teltemp_spider") == 32.32) {
     755            psFree(md);
     756            exit(EXIT_FAILURE);
     757        }
     758        if (!psMetadataLookupF32(&status, md, "teltemp_truss") == 32.32) {
     759            psFree(md);
     760            exit(EXIT_FAILURE);
     761        }
     762        if (!psMetadataLookupF32(&status, md, "teltemp_extra") == 32.32) {
     763            psFree(md);
     764            exit(EXIT_FAILURE);
     765        }
     766        if (!psMetadataLookupF32(&status, md, "pon_time") == 32.32) {
     767            psFree(md);
     768            exit(EXIT_FAILURE);
     769        }
     770        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     771            psFree(md);
     772            exit(EXIT_FAILURE);
     773        }
     774        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     775            psFree(md);
     776            exit(EXIT_FAILURE);
     777        }
     778        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     779            psFree(md);
     780            exit(EXIT_FAILURE);
     781        }
     782        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     783            psFree(md);
     784            exit(EXIT_FAILURE);
     785        }
     786        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     787            psFree(md);
     788            exit(EXIT_FAILURE);
     789        }
     790        if (strncmp(psMetadataLookupPtr(&status, md, "object"), "a string", MAX_STRING_LENGTH)) {
     791            psFree(md);
     792            exit(EXIT_FAILURE);
     793        }
     794            psFree(md);
     795            exit(EXIT_FAILURE);
     796        }
     797
     798        psFree(md);
     799    }
     800
     801    {
     802        psMetadata      *md;
     803        guidePendingExpRow *object;
     804        bool            status;
     805
     806        object = guidePendingExpRowAlloc(-64, -64, "a string");
     807        if (!object) {
     808            exit(EXIT_FAILURE);
     809        }
     810
     811        md = guidePendingExpMetadataFromObject(object);
     812        if (!md) {
     813            exit(EXIT_FAILURE);
     814        }
     815
     816        psFree(object);
     817
     818            psFree(md);
     819            exit(EXIT_FAILURE);
     820        }
     821            psFree(md);
     822            exit(EXIT_FAILURE);
     823        }
     824        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     825            psFree(md);
     826            exit(EXIT_FAILURE);
     827        }
     828
     829        psFree(md);
     830    }
     831
     832    {
     833        psMetadata      *md;
     834        chipRunRow      *object;
     835        bool            status;
     836
     837        object = chipRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
     838        if (!object) {
     839            exit(EXIT_FAILURE);
     840        }
     841
     842        md = chipRunMetadataFromObject(object);
     843        if (!md) {
     844            exit(EXIT_FAILURE);
     845        }
     846
     847        psFree(object);
     848
     849            psFree(md);
     850            exit(EXIT_FAILURE);
     851        }
    329852            psFree(md);
    330853            exit(EXIT_FAILURE);
     
    342865            exit(EXIT_FAILURE);
    343866        }
     867        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     868            psFree(md);
     869            exit(EXIT_FAILURE);
     870        }
    344871        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
    345872            psFree(md);
    346873            exit(EXIT_FAILURE);
    347874        }
     875        if (strncmp(psMetadataLookupPtr(&status, md, "expgroup"), "a string", MAX_STRING_LENGTH)) {
     876            psFree(md);
     877            exit(EXIT_FAILURE);
     878        }
    348879        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    349880            psFree(md);
     
    364895    {
    365896        psMetadata      *md;
    366         newImfileRow    *object;
    367         bool            status;
    368 
    369         object = newImfileRowAlloc(-64, "a string", "a string");
    370         if (!object) {
    371             exit(EXIT_FAILURE);
    372         }
    373 
    374         md = newImfileMetadataFromObject(object);
    375         if (!md) {
    376             exit(EXIT_FAILURE);
    377         }
    378 
    379         psFree(object);
    380 
    381             psFree(md);
    382             exit(EXIT_FAILURE);
    383         }
    384         if (strncmp(psMetadataLookupPtr(&status, md, "tmp_class_id"), "a string", MAX_STRING_LENGTH)) {
     897        chipProcessedImfileRow *object;
     898        bool            status;
     899
     900        object = chipProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, "a string", -32, -32, -32, -32, "a string", -16);
     901        if (!object) {
     902            exit(EXIT_FAILURE);
     903        }
     904
     905        md = chipProcessedImfileMetadataFromObject(object);
     906        if (!md) {
     907            exit(EXIT_FAILURE);
     908        }
     909
     910        psFree(object);
     911
     912            psFree(md);
     913            exit(EXIT_FAILURE);
     914        }
     915            psFree(md);
     916            exit(EXIT_FAILURE);
     917        }
     918        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    385919            psFree(md);
    386920            exit(EXIT_FAILURE);
     
    390924            exit(EXIT_FAILURE);
    391925        }
    392 
    393         psFree(md);
    394     }
    395 
    396     {
    397         psMetadata      *md;
    398         rawExpRow       *object;
    399         bool            status;
    400 
    401         object = rawExpRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", 32.32, -16);
    402         if (!object) {
    403             exit(EXIT_FAILURE);
    404         }
    405 
    406         md = rawExpMetadataFromObject(object);
    407         if (!md) {
    408             exit(EXIT_FAILURE);
    409         }
    410 
    411         psFree(object);
    412 
    413             psFree(md);
    414             exit(EXIT_FAILURE);
    415         }
    416         if (strncmp(psMetadataLookupPtr(&status, md, "exp_name"), "a string", MAX_STRING_LENGTH)) {
     926        if (!psMetadataLookupF32(&status, md, "bg") == 32.32) {
     927            psFree(md);
     928            exit(EXIT_FAILURE);
     929        }
     930        if (!psMetadataLookupF32(&status, md, "bg_stdev") == 32.32) {
     931            psFree(md);
     932            exit(EXIT_FAILURE);
     933        }
     934        if (!psMetadataLookupF32(&status, md, "bg_mean_stdev") == 32.32) {
     935            psFree(md);
     936            exit(EXIT_FAILURE);
     937        }
     938        if (!psMetadataLookupF32(&status, md, "bias") == 32.32) {
     939            psFree(md);
     940            exit(EXIT_FAILURE);
     941        }
     942        if (!psMetadataLookupF32(&status, md, "bias_stdev") == 32.32) {
     943            psFree(md);
     944            exit(EXIT_FAILURE);
     945        }
     946        if (!psMetadataLookupF32(&status, md, "fringe_0") == 32.32) {
     947            psFree(md);
     948            exit(EXIT_FAILURE);
     949        }
     950        if (!psMetadataLookupF32(&status, md, "fringe_1") == 32.32) {
     951            psFree(md);
     952            exit(EXIT_FAILURE);
     953        }
     954        if (!psMetadataLookupF32(&status, md, "fringe_2") == 32.32) {
     955            psFree(md);
     956            exit(EXIT_FAILURE);
     957        }
     958        if (!psMetadataLookupF32(&status, md, "sigma_ra") == 32.32) {
     959            psFree(md);
     960            exit(EXIT_FAILURE);
     961        }
     962        if (!psMetadataLookupF32(&status, md, "sigma_dec") == 32.32) {
     963            psFree(md);
     964            exit(EXIT_FAILURE);
     965        }
     966        if (!psMetadataLookupF32(&status, md, "ap_resid") == 32.32) {
     967            psFree(md);
     968            exit(EXIT_FAILURE);
     969        }
     970        if (!psMetadataLookupF32(&status, md, "ap_resid_stdev") == 32.32) {
     971            psFree(md);
     972            exit(EXIT_FAILURE);
     973        }
     974        if (!psMetadataLookupF32(&status, md, "zp_mean") == 32.32) {
     975            psFree(md);
     976            exit(EXIT_FAILURE);
     977        }
     978        if (!psMetadataLookupF32(&status, md, "zp_stdev") == 32.32) {
     979            psFree(md);
     980            exit(EXIT_FAILURE);
     981        }
     982        if (!psMetadataLookupF32(&status, md, "fwhm_major") == 32.32) {
     983            psFree(md);
     984            exit(EXIT_FAILURE);
     985        }
     986        if (!psMetadataLookupF32(&status, md, "fwhm_minor") == 32.32) {
     987            psFree(md);
     988            exit(EXIT_FAILURE);
     989        }
     990        if (!psMetadataLookupF32(&status, md, "dtime_detrend") == 32.32) {
     991            psFree(md);
     992            exit(EXIT_FAILURE);
     993        }
     994        if (!psMetadataLookupF32(&status, md, "dtime_photom") == 32.32) {
     995            psFree(md);
     996            exit(EXIT_FAILURE);
     997        }
     998        if (!psMetadataLookupF32(&status, md, "dtime_astrom") == 32.32) {
     999            psFree(md);
     1000            exit(EXIT_FAILURE);
     1001        }
     1002        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     1003            psFree(md);
     1004            exit(EXIT_FAILURE);
     1005        }
     1006        if (!psMetadataLookupS32(&status, md, "n_stars") == -32) {
     1007            psFree(md);
     1008            exit(EXIT_FAILURE);
     1009        }
     1010        if (!psMetadataLookupS32(&status, md, "n_extended") == -32) {
     1011            psFree(md);
     1012            exit(EXIT_FAILURE);
     1013        }
     1014        if (!psMetadataLookupS32(&status, md, "n_cr") == -32) {
     1015            psFree(md);
     1016            exit(EXIT_FAILURE);
     1017        }
     1018        if (!psMetadataLookupS32(&status, md, "n_astrom") == -32) {
     1019            psFree(md);
     1020            exit(EXIT_FAILURE);
     1021        }
     1022        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     1023            psFree(md);
     1024            exit(EXIT_FAILURE);
     1025        }
     1026            psFree(md);
     1027            exit(EXIT_FAILURE);
     1028        }
     1029
     1030        psFree(md);
     1031    }
     1032
     1033    {
     1034        psMetadata      *md;
     1035        chipMaskRow     *object;
     1036        bool            status;
     1037
     1038        object = chipMaskRowAlloc("a string");
     1039        if (!object) {
     1040            exit(EXIT_FAILURE);
     1041        }
     1042
     1043        md = chipMaskMetadataFromObject(object);
     1044        if (!md) {
     1045            exit(EXIT_FAILURE);
     1046        }
     1047
     1048        psFree(object);
     1049
     1050        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     1051            psFree(md);
     1052            exit(EXIT_FAILURE);
     1053        }
     1054
     1055        psFree(md);
     1056    }
     1057
     1058    {
     1059        psMetadata      *md;
     1060        camRunRow       *object;
     1061        bool            status;
     1062
     1063        object = camRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
     1064        if (!object) {
     1065            exit(EXIT_FAILURE);
     1066        }
     1067
     1068        md = camRunMetadataFromObject(object);
     1069        if (!md) {
     1070            exit(EXIT_FAILURE);
     1071        }
     1072
     1073        psFree(object);
     1074
     1075            psFree(md);
     1076            exit(EXIT_FAILURE);
     1077        }
     1078            psFree(md);
     1079            exit(EXIT_FAILURE);
     1080        }
     1081        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     1082            psFree(md);
     1083            exit(EXIT_FAILURE);
     1084        }
     1085        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     1086            psFree(md);
     1087            exit(EXIT_FAILURE);
     1088        }
     1089        if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
     1090            psFree(md);
     1091            exit(EXIT_FAILURE);
     1092        }
     1093        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     1094            psFree(md);
     1095            exit(EXIT_FAILURE);
     1096        }
     1097        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
     1098            psFree(md);
     1099            exit(EXIT_FAILURE);
     1100        }
     1101        if (strncmp(psMetadataLookupPtr(&status, md, "expgroup"), "a string", MAX_STRING_LENGTH)) {
     1102            psFree(md);
     1103            exit(EXIT_FAILURE);
     1104        }
     1105        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     1106            psFree(md);
     1107            exit(EXIT_FAILURE);
     1108        }
     1109        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1110            psFree(md);
     1111            exit(EXIT_FAILURE);
     1112        }
     1113        if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
     1114            psFree(md);
     1115            exit(EXIT_FAILURE);
     1116        }
     1117
     1118        psFree(md);
     1119    }
     1120
     1121    {
     1122        psMetadata      *md;
     1123        camProcessedExpRow *object;
     1124        bool            status;
     1125
     1126        object = camProcessedExpRowAlloc(-64, -64, "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, "a string", -32, -32, -32, -32, "a string", -16);
     1127        if (!object) {
     1128            exit(EXIT_FAILURE);
     1129        }
     1130
     1131        md = camProcessedExpMetadataFromObject(object);
     1132        if (!md) {
     1133            exit(EXIT_FAILURE);
     1134        }
     1135
     1136        psFree(object);
     1137
     1138            psFree(md);
     1139            exit(EXIT_FAILURE);
     1140        }
     1141            psFree(md);
     1142            exit(EXIT_FAILURE);
     1143        }
     1144        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1145            psFree(md);
     1146            exit(EXIT_FAILURE);
     1147        }
     1148        if (!psMetadataLookupF32(&status, md, "bg") == 32.32) {
     1149            psFree(md);
     1150            exit(EXIT_FAILURE);
     1151        }
     1152        if (!psMetadataLookupF32(&status, md, "bg_stdev") == 32.32) {
     1153            psFree(md);
     1154            exit(EXIT_FAILURE);
     1155        }
     1156        if (!psMetadataLookupF32(&status, md, "bg_mean_stdev") == 32.32) {
     1157            psFree(md);
     1158            exit(EXIT_FAILURE);
     1159        }
     1160        if (!psMetadataLookupF32(&status, md, "bias") == 32.32) {
     1161            psFree(md);
     1162            exit(EXIT_FAILURE);
     1163        }
     1164        if (!psMetadataLookupF32(&status, md, "bias_stdev") == 32.32) {
     1165            psFree(md);
     1166            exit(EXIT_FAILURE);
     1167        }
     1168        if (!psMetadataLookupF32(&status, md, "fringe_0") == 32.32) {
     1169            psFree(md);
     1170            exit(EXIT_FAILURE);
     1171        }
     1172        if (!psMetadataLookupF32(&status, md, "fringe_1") == 32.32) {
     1173            psFree(md);
     1174            exit(EXIT_FAILURE);
     1175        }
     1176        if (!psMetadataLookupF32(&status, md, "fringe_2") == 32.32) {
     1177            psFree(md);
     1178            exit(EXIT_FAILURE);
     1179        }
     1180        if (!psMetadataLookupF32(&status, md, "sigma_ra") == 32.32) {
     1181            psFree(md);
     1182            exit(EXIT_FAILURE);
     1183        }
     1184        if (!psMetadataLookupF32(&status, md, "sigma_dec") == 32.32) {
     1185            psFree(md);
     1186            exit(EXIT_FAILURE);
     1187        }
     1188        if (!psMetadataLookupF32(&status, md, "ap_resid") == 32.32) {
     1189            psFree(md);
     1190            exit(EXIT_FAILURE);
     1191        }
     1192        if (!psMetadataLookupF32(&status, md, "ap_resid_stdev") == 32.32) {
     1193            psFree(md);
     1194            exit(EXIT_FAILURE);
     1195        }
     1196        if (!psMetadataLookupF32(&status, md, "zp_mean") == 32.32) {
     1197            psFree(md);
     1198            exit(EXIT_FAILURE);
     1199        }
     1200        if (!psMetadataLookupF32(&status, md, "zp_stdev") == 32.32) {
     1201            psFree(md);
     1202            exit(EXIT_FAILURE);
     1203        }
     1204        if (!psMetadataLookupF32(&status, md, "fwhm_major") == 32.32) {
     1205            psFree(md);
     1206            exit(EXIT_FAILURE);
     1207        }
     1208        if (!psMetadataLookupF32(&status, md, "fwhm_minor") == 32.32) {
     1209            psFree(md);
     1210            exit(EXIT_FAILURE);
     1211        }
     1212        if (!psMetadataLookupF32(&status, md, "dtime_detrend") == 32.32) {
     1213            psFree(md);
     1214            exit(EXIT_FAILURE);
     1215        }
     1216        if (!psMetadataLookupF32(&status, md, "dtime_photom") == 32.32) {
     1217            psFree(md);
     1218            exit(EXIT_FAILURE);
     1219        }
     1220        if (!psMetadataLookupF32(&status, md, "dtime_astrom") == 32.32) {
     1221            psFree(md);
     1222            exit(EXIT_FAILURE);
     1223        }
     1224        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     1225            psFree(md);
     1226            exit(EXIT_FAILURE);
     1227        }
     1228        if (!psMetadataLookupS32(&status, md, "n_stars") == -32) {
     1229            psFree(md);
     1230            exit(EXIT_FAILURE);
     1231        }
     1232        if (!psMetadataLookupS32(&status, md, "n_extended") == -32) {
     1233            psFree(md);
     1234            exit(EXIT_FAILURE);
     1235        }
     1236        if (!psMetadataLookupS32(&status, md, "n_cr") == -32) {
     1237            psFree(md);
     1238            exit(EXIT_FAILURE);
     1239        }
     1240        if (!psMetadataLookupS32(&status, md, "n_astrom") == -32) {
     1241            psFree(md);
     1242            exit(EXIT_FAILURE);
     1243        }
     1244        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     1245            psFree(md);
     1246            exit(EXIT_FAILURE);
     1247        }
     1248            psFree(md);
     1249            exit(EXIT_FAILURE);
     1250        }
     1251
     1252        psFree(md);
     1253    }
     1254
     1255    {
     1256        psMetadata      *md;
     1257        camMaskRow      *object;
     1258        bool            status;
     1259
     1260        object = camMaskRowAlloc("a string");
     1261        if (!object) {
     1262            exit(EXIT_FAILURE);
     1263        }
     1264
     1265        md = camMaskMetadataFromObject(object);
     1266        if (!md) {
     1267            exit(EXIT_FAILURE);
     1268        }
     1269
     1270        psFree(object);
     1271
     1272        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     1273            psFree(md);
     1274            exit(EXIT_FAILURE);
     1275        }
     1276
     1277        psFree(md);
     1278    }
     1279
     1280    {
     1281        psMetadata      *md;
     1282        warpRunRow      *object;
     1283        bool            status;
     1284
     1285        object = warpRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
     1286        if (!object) {
     1287            exit(EXIT_FAILURE);
     1288        }
     1289
     1290        md = warpRunMetadataFromObject(object);
     1291        if (!md) {
     1292            exit(EXIT_FAILURE);
     1293        }
     1294
     1295        psFree(object);
     1296
     1297            psFree(md);
     1298            exit(EXIT_FAILURE);
     1299        }
     1300        if (strncmp(psMetadataLookupPtr(&status, md, "mode"), "a string", MAX_STRING_LENGTH)) {
     1301            psFree(md);
     1302            exit(EXIT_FAILURE);
     1303        }
     1304        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     1305            psFree(md);
     1306            exit(EXIT_FAILURE);
     1307        }
     1308        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     1309            psFree(md);
     1310            exit(EXIT_FAILURE);
     1311        }
     1312        if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
     1313            psFree(md);
     1314            exit(EXIT_FAILURE);
     1315        }
     1316        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     1317            psFree(md);
     1318            exit(EXIT_FAILURE);
     1319        }
     1320        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1321            psFree(md);
     1322            exit(EXIT_FAILURE);
     1323        }
     1324        if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
     1325            psFree(md);
     1326            exit(EXIT_FAILURE);
     1327        }
     1328            psFree(md);
     1329            exit(EXIT_FAILURE);
     1330        }
     1331
     1332        psFree(md);
     1333    }
     1334
     1335    {
     1336        psMetadata      *md;
     1337        warpInputExpRow *object;
     1338        bool            status;
     1339
     1340        object = warpInputExpRowAlloc(-64, -64, true);
     1341        if (!object) {
     1342            exit(EXIT_FAILURE);
     1343        }
     1344
     1345        md = warpInputExpMetadataFromObject(object);
     1346        if (!md) {
     1347            exit(EXIT_FAILURE);
     1348        }
     1349
     1350        psFree(object);
     1351
     1352            psFree(md);
     1353            exit(EXIT_FAILURE);
     1354        }
     1355            psFree(md);
     1356            exit(EXIT_FAILURE);
     1357        }
     1358        if (!psMetadataLookupBool(&status, md, "magiced") == true) {
     1359            psFree(md);
     1360            exit(EXIT_FAILURE);
     1361        }
     1362
     1363        psFree(md);
     1364    }
     1365
     1366    {
     1367        psMetadata      *md;
     1368        warpSkyCellMapRow *object;
     1369        bool            status;
     1370
     1371        object = warpSkyCellMapRowAlloc(-64, "a string", "a string", -64, "a string", -16);
     1372        if (!object) {
     1373            exit(EXIT_FAILURE);
     1374        }
     1375
     1376        md = warpSkyCellMapMetadataFromObject(object);
     1377        if (!md) {
     1378            exit(EXIT_FAILURE);
     1379        }
     1380
     1381        psFree(object);
     1382
     1383            psFree(md);
     1384            exit(EXIT_FAILURE);
     1385        }
     1386        if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
     1387            psFree(md);
     1388            exit(EXIT_FAILURE);
     1389        }
     1390        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1391            psFree(md);
     1392            exit(EXIT_FAILURE);
     1393        }
     1394            psFree(md);
     1395            exit(EXIT_FAILURE);
     1396        }
     1397        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1398            psFree(md);
     1399            exit(EXIT_FAILURE);
     1400        }
     1401            psFree(md);
     1402            exit(EXIT_FAILURE);
     1403        }
     1404
     1405        psFree(md);
     1406    }
     1407
     1408    {
     1409        psMetadata      *md;
     1410        warpSkyfileRow  *object;
     1411        bool            status;
     1412
     1413        object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, true, -16);
     1414        if (!object) {
     1415            exit(EXIT_FAILURE);
     1416        }
     1417
     1418        md = warpSkyfileMetadataFromObject(object);
     1419        if (!md) {
     1420            exit(EXIT_FAILURE);
     1421        }
     1422
     1423        psFree(object);
     1424
     1425            psFree(md);
     1426            exit(EXIT_FAILURE);
     1427        }
     1428        if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
     1429            psFree(md);
     1430            exit(EXIT_FAILURE);
     1431        }
     1432        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1433            psFree(md);
     1434            exit(EXIT_FAILURE);
     1435        }
     1436        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1437            psFree(md);
     1438            exit(EXIT_FAILURE);
     1439        }
     1440        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     1441            psFree(md);
     1442            exit(EXIT_FAILURE);
     1443        }
     1444        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     1445            psFree(md);
     1446            exit(EXIT_FAILURE);
     1447        }
     1448        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     1449            psFree(md);
     1450            exit(EXIT_FAILURE);
     1451        }
     1452        if (!psMetadataLookupF32(&status, md, "dtime_warp") == 32.32) {
     1453            psFree(md);
     1454            exit(EXIT_FAILURE);
     1455        }
     1456        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     1457            psFree(md);
     1458            exit(EXIT_FAILURE);
     1459        }
     1460        if (!psMetadataLookupF32(&status, md, "good_frac") == 32.32) {
     1461            psFree(md);
     1462            exit(EXIT_FAILURE);
     1463        }
     1464        if (!psMetadataLookupBool(&status, md, "ignored") == true) {
     1465            psFree(md);
     1466            exit(EXIT_FAILURE);
     1467        }
     1468            psFree(md);
     1469            exit(EXIT_FAILURE);
     1470        }
     1471
     1472        psFree(md);
     1473    }
     1474
     1475    {
     1476        psMetadata      *md;
     1477        diffRunRow      *object;
     1478        bool            status;
     1479
     1480        object = diffRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string");
     1481        if (!object) {
     1482            exit(EXIT_FAILURE);
     1483        }
     1484
     1485        md = diffRunMetadataFromObject(object);
     1486        if (!md) {
     1487            exit(EXIT_FAILURE);
     1488        }
     1489
     1490        psFree(object);
     1491
     1492            psFree(md);
     1493            exit(EXIT_FAILURE);
     1494        }
     1495        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     1496            psFree(md);
     1497            exit(EXIT_FAILURE);
     1498        }
     1499        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     1500            psFree(md);
     1501            exit(EXIT_FAILURE);
     1502        }
     1503        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     1504            psFree(md);
     1505            exit(EXIT_FAILURE);
     1506        }
     1507            psFree(md);
     1508            exit(EXIT_FAILURE);
     1509        }
     1510        if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
     1511            psFree(md);
     1512            exit(EXIT_FAILURE);
     1513        }
     1514        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1515            psFree(md);
     1516            exit(EXIT_FAILURE);
     1517        }
     1518
     1519        psFree(md);
     1520    }
     1521
     1522    {
     1523        psMetadata      *md;
     1524        diffInputSkyfileRow *object;
     1525        bool            status;
     1526
     1527        object = diffInputSkyfileRowAlloc(-64, true, -64, -64, "a string", "a string", "a string");
     1528        if (!object) {
     1529            exit(EXIT_FAILURE);
     1530        }
     1531
     1532        md = diffInputSkyfileMetadataFromObject(object);
     1533        if (!md) {
     1534            exit(EXIT_FAILURE);
     1535        }
     1536
     1537        psFree(object);
     1538
     1539            psFree(md);
     1540            exit(EXIT_FAILURE);
     1541        }
     1542        if (!psMetadataLookupBool(&status, md, "template") == true) {
     1543            psFree(md);
     1544            exit(EXIT_FAILURE);
     1545        }
     1546            psFree(md);
     1547            exit(EXIT_FAILURE);
     1548        }
     1549            psFree(md);
     1550            exit(EXIT_FAILURE);
     1551        }
     1552        if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
     1553            psFree(md);
     1554            exit(EXIT_FAILURE);
     1555        }
     1556        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1557            psFree(md);
     1558            exit(EXIT_FAILURE);
     1559        }
     1560        if (strncmp(psMetadataLookupPtr(&status, md, "kind"), "a string", MAX_STRING_LENGTH)) {
     1561            psFree(md);
     1562            exit(EXIT_FAILURE);
     1563        }
     1564
     1565        psFree(md);
     1566    }
     1567
     1568    {
     1569        psMetadata      *md;
     1570        diffSkyfileRow  *object;
     1571        bool            status;
     1572
     1573        object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16);
     1574        if (!object) {
     1575            exit(EXIT_FAILURE);
     1576        }
     1577
     1578        md = diffSkyfileMetadataFromObject(object);
     1579        if (!md) {
     1580            exit(EXIT_FAILURE);
     1581        }
     1582
     1583        psFree(object);
     1584
     1585            psFree(md);
     1586            exit(EXIT_FAILURE);
     1587        }
     1588        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1589            psFree(md);
     1590            exit(EXIT_FAILURE);
     1591        }
     1592        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     1593            psFree(md);
     1594            exit(EXIT_FAILURE);
     1595        }
     1596        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     1597            psFree(md);
     1598            exit(EXIT_FAILURE);
     1599        }
     1600        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     1601            psFree(md);
     1602            exit(EXIT_FAILURE);
     1603        }
     1604        if (!psMetadataLookupF32(&status, md, "dtime_diff") == 32.32) {
     1605            psFree(md);
     1606            exit(EXIT_FAILURE);
     1607        }
     1608        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     1609            psFree(md);
     1610            exit(EXIT_FAILURE);
     1611        }
     1612        if (!psMetadataLookupF32(&status, md, "good_frac") == 32.32) {
     1613            psFree(md);
     1614            exit(EXIT_FAILURE);
     1615        }
     1616            psFree(md);
     1617            exit(EXIT_FAILURE);
     1618        }
     1619
     1620        psFree(md);
     1621    }
     1622
     1623    {
     1624        psMetadata      *md;
     1625        stackRunRow     *object;
     1626        bool            status;
     1627
     1628        object = stackRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string");
     1629        if (!object) {
     1630            exit(EXIT_FAILURE);
     1631        }
     1632
     1633        md = stackRunMetadataFromObject(object);
     1634        if (!md) {
     1635            exit(EXIT_FAILURE);
     1636        }
     1637
     1638        psFree(object);
     1639
     1640            psFree(md);
     1641            exit(EXIT_FAILURE);
     1642        }
     1643        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     1644            psFree(md);
     1645            exit(EXIT_FAILURE);
     1646        }
     1647        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     1648            psFree(md);
     1649            exit(EXIT_FAILURE);
     1650        }
     1651        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     1652            psFree(md);
     1653            exit(EXIT_FAILURE);
     1654        }
     1655            psFree(md);
     1656            exit(EXIT_FAILURE);
     1657        }
     1658        if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
     1659            psFree(md);
     1660            exit(EXIT_FAILURE);
     1661        }
     1662        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1663            psFree(md);
     1664            exit(EXIT_FAILURE);
     1665        }
     1666
     1667        psFree(md);
     1668    }
     1669
     1670    {
     1671        psMetadata      *md;
     1672        stackInputSkyfileRow *object;
     1673        bool            status;
     1674
     1675        object = stackInputSkyfileRowAlloc(-64, -64);
     1676        if (!object) {
     1677            exit(EXIT_FAILURE);
     1678        }
     1679
     1680        md = stackInputSkyfileMetadataFromObject(object);
     1681        if (!md) {
     1682            exit(EXIT_FAILURE);
     1683        }
     1684
     1685        psFree(object);
     1686
     1687            psFree(md);
     1688            exit(EXIT_FAILURE);
     1689        }
     1690            psFree(md);
     1691            exit(EXIT_FAILURE);
     1692        }
     1693
     1694        psFree(md);
     1695    }
     1696
     1697    {
     1698        psMetadata      *md;
     1699        stackSumSkyfileRow *object;
     1700        bool            status;
     1701
     1702        object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16);
     1703        if (!object) {
     1704            exit(EXIT_FAILURE);
     1705        }
     1706
     1707        md = stackSumSkyfileMetadataFromObject(object);
     1708        if (!md) {
     1709            exit(EXIT_FAILURE);
     1710        }
     1711
     1712        psFree(object);
     1713
     1714            psFree(md);
     1715            exit(EXIT_FAILURE);
     1716        }
     1717        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1718            psFree(md);
     1719            exit(EXIT_FAILURE);
     1720        }
     1721        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     1722            psFree(md);
     1723            exit(EXIT_FAILURE);
     1724        }
     1725        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     1726            psFree(md);
     1727            exit(EXIT_FAILURE);
     1728        }
     1729        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     1730            psFree(md);
     1731            exit(EXIT_FAILURE);
     1732        }
     1733        if (!psMetadataLookupF32(&status, md, "dtime_stack") == 32.32) {
     1734            psFree(md);
     1735            exit(EXIT_FAILURE);
     1736        }
     1737        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     1738            psFree(md);
     1739            exit(EXIT_FAILURE);
     1740        }
     1741        if (!psMetadataLookupF32(&status, md, "good_frac") == 32.32) {
     1742            psFree(md);
     1743            exit(EXIT_FAILURE);
     1744        }
     1745            psFree(md);
     1746            exit(EXIT_FAILURE);
     1747        }
     1748
     1749        psFree(md);
     1750    }
     1751
     1752    {
     1753        psMetadata      *md;
     1754        detRunRow       *object;
     1755        bool            status;
     1756
     1757        object = detRunRowAlloc(-64, -32, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", 32.32, 32.32, "a string", -32);
     1758        if (!object) {
     1759            exit(EXIT_FAILURE);
     1760        }
     1761
     1762        md = detRunMetadataFromObject(object);
     1763        if (!md) {
     1764            exit(EXIT_FAILURE);
     1765        }
     1766
     1767        psFree(object);
     1768
     1769            psFree(md);
     1770            exit(EXIT_FAILURE);
     1771        }
     1772        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     1773            psFree(md);
     1774            exit(EXIT_FAILURE);
     1775        }
     1776        if (strncmp(psMetadataLookupPtr(&status, md, "det_type"), "a string", MAX_STRING_LENGTH)) {
     1777            psFree(md);
     1778            exit(EXIT_FAILURE);
     1779        }
     1780        if (strncmp(psMetadataLookupPtr(&status, md, "mode"), "a string", MAX_STRING_LENGTH)) {
     1781            psFree(md);
     1782            exit(EXIT_FAILURE);
     1783        }
     1784        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     1785            psFree(md);
     1786            exit(EXIT_FAILURE);
     1787        }
     1788        if (strncmp(psMetadataLookupPtr(&status, md, "filelevel"), "a string", MAX_STRING_LENGTH)) {
     1789            psFree(md);
     1790            exit(EXIT_FAILURE);
     1791        }
     1792        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    4171793            psFree(md);
    4181794            exit(EXIT_FAILURE);
     
    4261802            exit(EXIT_FAILURE);
    4271803        }
    428             psFree(md);
    429             exit(EXIT_FAILURE);
    430         }
    431         if (strncmp(psMetadataLookupPtr(&status, md, "exp_tag"), "a string", MAX_STRING_LENGTH)) {
    432             psFree(md);
    433             exit(EXIT_FAILURE);
    434         }
    4351804        if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
    4361805            psFree(md);
    4371806            exit(EXIT_FAILURE);
    4381807        }
    439         if (strncmp(psMetadataLookupPtr(&status, md, "filelevel"), "a string", MAX_STRING_LENGTH)) {
     1808        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
     1809            psFree(md);
     1810            exit(EXIT_FAILURE);
     1811        }
     1812        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
     1813            psFree(md);
     1814            exit(EXIT_FAILURE);
     1815        }
     1816        if (!psMetadataLookupF32(&status, md, "airmass_min") == 32.32) {
     1817            psFree(md);
     1818            exit(EXIT_FAILURE);
     1819        }
     1820        if (!psMetadataLookupF32(&status, md, "airmass_max") == 32.32) {
     1821            psFree(md);
     1822            exit(EXIT_FAILURE);
     1823        }
     1824        if (!psMetadataLookupF32(&status, md, "exp_time_min") == 32.32) {
     1825            psFree(md);
     1826            exit(EXIT_FAILURE);
     1827        }
     1828        if (!psMetadataLookupF32(&status, md, "exp_time_max") == 32.32) {
     1829            psFree(md);
     1830            exit(EXIT_FAILURE);
     1831        }
     1832        if (!psMetadataLookupF32(&status, md, "ccd_temp_min") == 32.32) {
     1833            psFree(md);
     1834            exit(EXIT_FAILURE);
     1835        }
     1836        if (!psMetadataLookupF32(&status, md, "ccd_temp_max") == 32.32) {
     1837            psFree(md);
     1838            exit(EXIT_FAILURE);
     1839        }
     1840        if (!psMetadataLookupF64(&status, md, "posang_min") == 64.64) {
     1841            psFree(md);
     1842            exit(EXIT_FAILURE);
     1843        }
     1844        if (!psMetadataLookupF64(&status, md, "posang_max") == 64.64) {
     1845            psFree(md);
     1846            exit(EXIT_FAILURE);
     1847        }
     1848            psFree(md);
     1849            exit(EXIT_FAILURE);
     1850        }
     1851            psFree(md);
     1852            exit(EXIT_FAILURE);
     1853        }
     1854            psFree(md);
     1855            exit(EXIT_FAILURE);
     1856        }
     1857            psFree(md);
     1858            exit(EXIT_FAILURE);
     1859        }
     1860            psFree(md);
     1861            exit(EXIT_FAILURE);
     1862        }
     1863        if (!psMetadataLookupF32(&status, md, "solang_min") == 32.32) {
     1864            psFree(md);
     1865            exit(EXIT_FAILURE);
     1866        }
     1867        if (!psMetadataLookupF32(&status, md, "solang_max") == 32.32) {
     1868            psFree(md);
     1869            exit(EXIT_FAILURE);
     1870        }
     1871        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     1872            psFree(md);
     1873            exit(EXIT_FAILURE);
     1874        }
     1875        if (!psMetadataLookupS32(&status, md, "parent") == -32) {
     1876            psFree(md);
     1877            exit(EXIT_FAILURE);
     1878        }
     1879
     1880        psFree(md);
     1881    }
     1882
     1883    {
     1884        psMetadata      *md;
     1885        detInputExpRow  *object;
     1886        bool            status;
     1887
     1888        object = detInputExpRowAlloc(-64, -32, -64, true);
     1889        if (!object) {
     1890            exit(EXIT_FAILURE);
     1891        }
     1892
     1893        md = detInputExpMetadataFromObject(object);
     1894        if (!md) {
     1895            exit(EXIT_FAILURE);
     1896        }
     1897
     1898        psFree(object);
     1899
     1900            psFree(md);
     1901            exit(EXIT_FAILURE);
     1902        }
     1903        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     1904            psFree(md);
     1905            exit(EXIT_FAILURE);
     1906        }
     1907            psFree(md);
     1908            exit(EXIT_FAILURE);
     1909        }
     1910        if (!psMetadataLookupBool(&status, md, "include") == true) {
     1911            psFree(md);
     1912            exit(EXIT_FAILURE);
     1913        }
     1914
     1915        psFree(md);
     1916    }
     1917
     1918    {
     1919        psMetadata      *md;
     1920        detProcessedImfileRow *object;
     1921        bool            status;
     1922
     1923        object = detProcessedImfileRowAlloc(-64, -64, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
     1924        if (!object) {
     1925            exit(EXIT_FAILURE);
     1926        }
     1927
     1928        md = detProcessedImfileMetadataFromObject(object);
     1929        if (!md) {
     1930            exit(EXIT_FAILURE);
     1931        }
     1932
     1933        psFree(object);
     1934
     1935            psFree(md);
     1936            exit(EXIT_FAILURE);
     1937        }
     1938            psFree(md);
     1939            exit(EXIT_FAILURE);
     1940        }
     1941        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1942            psFree(md);
     1943            exit(EXIT_FAILURE);
     1944        }
     1945        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1946            psFree(md);
     1947            exit(EXIT_FAILURE);
     1948        }
     1949        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     1950            psFree(md);
     1951            exit(EXIT_FAILURE);
     1952        }
     1953        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     1954            psFree(md);
     1955            exit(EXIT_FAILURE);
     1956        }
     1957        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     1958            psFree(md);
     1959            exit(EXIT_FAILURE);
     1960        }
     1961        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     1962            psFree(md);
     1963            exit(EXIT_FAILURE);
     1964        }
     1965        if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
     1966            psFree(md);
     1967            exit(EXIT_FAILURE);
     1968        }
     1969        if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
     1970            psFree(md);
     1971            exit(EXIT_FAILURE);
     1972        }
     1973        if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
     1974            psFree(md);
     1975            exit(EXIT_FAILURE);
     1976        }
     1977        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     1978            psFree(md);
     1979            exit(EXIT_FAILURE);
     1980        }
     1981        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     1982            psFree(md);
     1983            exit(EXIT_FAILURE);
     1984        }
     1985        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     1986            psFree(md);
     1987            exit(EXIT_FAILURE);
     1988        }
     1989        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     1990            psFree(md);
     1991            exit(EXIT_FAILURE);
     1992        }
     1993        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     1994            psFree(md);
     1995            exit(EXIT_FAILURE);
     1996        }
     1997        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     1998            psFree(md);
     1999            exit(EXIT_FAILURE);
     2000        }
     2001            psFree(md);
     2002            exit(EXIT_FAILURE);
     2003        }
     2004
     2005        psFree(md);
     2006    }
     2007
     2008    {
     2009        psMetadata      *md;
     2010        detProcessedExpRow *object;
     2011        bool            status;
     2012
     2013        object = detProcessedExpRowAlloc(-64, -64, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
     2014        if (!object) {
     2015            exit(EXIT_FAILURE);
     2016        }
     2017
     2018        md = detProcessedExpMetadataFromObject(object);
     2019        if (!md) {
     2020            exit(EXIT_FAILURE);
     2021        }
     2022
     2023        psFree(object);
     2024
     2025            psFree(md);
     2026            exit(EXIT_FAILURE);
     2027        }
     2028            psFree(md);
     2029            exit(EXIT_FAILURE);
     2030        }
     2031        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2032            psFree(md);
     2033            exit(EXIT_FAILURE);
     2034        }
     2035        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2036            psFree(md);
     2037            exit(EXIT_FAILURE);
     2038        }
     2039        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2040            psFree(md);
     2041            exit(EXIT_FAILURE);
     2042        }
     2043        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2044            psFree(md);
     2045            exit(EXIT_FAILURE);
     2046        }
     2047        if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
     2048            psFree(md);
     2049            exit(EXIT_FAILURE);
     2050        }
     2051        if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
     2052            psFree(md);
     2053            exit(EXIT_FAILURE);
     2054        }
     2055        if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
     2056            psFree(md);
     2057            exit(EXIT_FAILURE);
     2058        }
     2059        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2060            psFree(md);
     2061            exit(EXIT_FAILURE);
     2062        }
     2063        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2064            psFree(md);
     2065            exit(EXIT_FAILURE);
     2066        }
     2067        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2068            psFree(md);
     2069            exit(EXIT_FAILURE);
     2070        }
     2071        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2072            psFree(md);
     2073            exit(EXIT_FAILURE);
     2074        }
     2075        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2076            psFree(md);
     2077            exit(EXIT_FAILURE);
     2078        }
     2079        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2080            psFree(md);
     2081            exit(EXIT_FAILURE);
     2082        }
     2083            psFree(md);
     2084            exit(EXIT_FAILURE);
     2085        }
     2086
     2087        psFree(md);
     2088    }
     2089
     2090    {
     2091        psMetadata      *md;
     2092        detStackedImfileRow *object;
     2093        bool            status;
     2094
     2095        object = detStackedImfileRowAlloc(-64, -32, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, -16);
     2096        if (!object) {
     2097            exit(EXIT_FAILURE);
     2098        }
     2099
     2100        md = detStackedImfileMetadataFromObject(object);
     2101        if (!md) {
     2102            exit(EXIT_FAILURE);
     2103        }
     2104
     2105        psFree(object);
     2106
     2107            psFree(md);
     2108            exit(EXIT_FAILURE);
     2109        }
     2110        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2111            psFree(md);
     2112            exit(EXIT_FAILURE);
     2113        }
     2114        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     2115            psFree(md);
     2116            exit(EXIT_FAILURE);
     2117        }
     2118        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2119            psFree(md);
     2120            exit(EXIT_FAILURE);
     2121        }
     2122        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2123            psFree(md);
     2124            exit(EXIT_FAILURE);
     2125        }
     2126        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2127            psFree(md);
     2128            exit(EXIT_FAILURE);
     2129        }
     2130        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2131            psFree(md);
     2132            exit(EXIT_FAILURE);
     2133        }
     2134        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2135            psFree(md);
     2136            exit(EXIT_FAILURE);
     2137        }
     2138        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2139            psFree(md);
     2140            exit(EXIT_FAILURE);
     2141        }
     2142        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2143            psFree(md);
     2144            exit(EXIT_FAILURE);
     2145        }
     2146        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2147            psFree(md);
     2148            exit(EXIT_FAILURE);
     2149        }
     2150        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2151            psFree(md);
     2152            exit(EXIT_FAILURE);
     2153        }
     2154        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2155            psFree(md);
     2156            exit(EXIT_FAILURE);
     2157        }
     2158            psFree(md);
     2159            exit(EXIT_FAILURE);
     2160        }
     2161
     2162        psFree(md);
     2163    }
     2164
     2165    {
     2166        psMetadata      *md;
     2167        detNormalizedStatImfileRow *object;
     2168        bool            status;
     2169
     2170        object = detNormalizedStatImfileRowAlloc(-64, -32, "a string", 32.32, -16);
     2171        if (!object) {
     2172            exit(EXIT_FAILURE);
     2173        }
     2174
     2175        md = detNormalizedStatImfileMetadataFromObject(object);
     2176        if (!md) {
     2177            exit(EXIT_FAILURE);
     2178        }
     2179
     2180        psFree(object);
     2181
     2182            psFree(md);
     2183            exit(EXIT_FAILURE);
     2184        }
     2185        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2186            psFree(md);
     2187            exit(EXIT_FAILURE);
     2188        }
     2189        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     2190            psFree(md);
     2191            exit(EXIT_FAILURE);
     2192        }
     2193        if (!psMetadataLookupF32(&status, md, "norm") == 32.32) {
     2194            psFree(md);
     2195            exit(EXIT_FAILURE);
     2196        }
     2197            psFree(md);
     2198            exit(EXIT_FAILURE);
     2199        }
     2200
     2201        psFree(md);
     2202    }
     2203
     2204    {
     2205        psMetadata      *md;
     2206        detNormalizedImfileRow *object;
     2207        bool            status;
     2208
     2209        object = detNormalizedImfileRowAlloc(-64, -32, "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
     2210        if (!object) {
     2211            exit(EXIT_FAILURE);
     2212        }
     2213
     2214        md = detNormalizedImfileMetadataFromObject(object);
     2215        if (!md) {
     2216            exit(EXIT_FAILURE);
     2217        }
     2218
     2219        psFree(object);
     2220
     2221            psFree(md);
     2222            exit(EXIT_FAILURE);
     2223        }
     2224        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2225            psFree(md);
     2226            exit(EXIT_FAILURE);
     2227        }
     2228        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     2229            psFree(md);
     2230            exit(EXIT_FAILURE);
     2231        }
     2232        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2233            psFree(md);
     2234            exit(EXIT_FAILURE);
     2235        }
     2236        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2237            psFree(md);
     2238            exit(EXIT_FAILURE);
     2239        }
     2240        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2241            psFree(md);
     2242            exit(EXIT_FAILURE);
     2243        }
     2244        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2245            psFree(md);
     2246            exit(EXIT_FAILURE);
     2247        }
     2248        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2249            psFree(md);
     2250            exit(EXIT_FAILURE);
     2251        }
     2252        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2253            psFree(md);
     2254            exit(EXIT_FAILURE);
     2255        }
     2256        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2257            psFree(md);
     2258            exit(EXIT_FAILURE);
     2259        }
     2260        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2261            psFree(md);
     2262            exit(EXIT_FAILURE);
     2263        }
     2264        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2265            psFree(md);
     2266            exit(EXIT_FAILURE);
     2267        }
     2268        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2269            psFree(md);
     2270            exit(EXIT_FAILURE);
     2271        }
     2272            psFree(md);
     2273            exit(EXIT_FAILURE);
     2274        }
     2275
     2276        psFree(md);
     2277    }
     2278
     2279    {
     2280        psMetadata      *md;
     2281        detNormalizedExpRow *object;
     2282        bool            status;
     2283
     2284        object = detNormalizedExpRowAlloc(-64, -32, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
     2285        if (!object) {
     2286            exit(EXIT_FAILURE);
     2287        }
     2288
     2289        md = detNormalizedExpMetadataFromObject(object);
     2290        if (!md) {
     2291            exit(EXIT_FAILURE);
     2292        }
     2293
     2294        psFree(object);
     2295
     2296            psFree(md);
     2297            exit(EXIT_FAILURE);
     2298        }
     2299        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2300            psFree(md);
     2301            exit(EXIT_FAILURE);
     2302        }
     2303        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2304            psFree(md);
     2305            exit(EXIT_FAILURE);
     2306        }
     2307        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2308            psFree(md);
     2309            exit(EXIT_FAILURE);
     2310        }
     2311        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2312            psFree(md);
     2313            exit(EXIT_FAILURE);
     2314        }
     2315        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2316            psFree(md);
     2317            exit(EXIT_FAILURE);
     2318        }
     2319        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2320            psFree(md);
     2321            exit(EXIT_FAILURE);
     2322        }
     2323        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2324            psFree(md);
     2325            exit(EXIT_FAILURE);
     2326        }
     2327        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2328            psFree(md);
     2329            exit(EXIT_FAILURE);
     2330        }
     2331        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2332            psFree(md);
     2333            exit(EXIT_FAILURE);
     2334        }
     2335        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2336            psFree(md);
     2337            exit(EXIT_FAILURE);
     2338        }
     2339        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2340            psFree(md);
     2341            exit(EXIT_FAILURE);
     2342        }
     2343            psFree(md);
     2344            exit(EXIT_FAILURE);
     2345        }
     2346
     2347        psFree(md);
     2348    }
     2349
     2350    {
     2351        psMetadata      *md;
     2352        detResidImfileRow *object;
     2353        bool            status;
     2354
     2355        object = detResidImfileRowAlloc(-64, -32, -64, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
     2356        if (!object) {
     2357            exit(EXIT_FAILURE);
     2358        }
     2359
     2360        md = detResidImfileMetadataFromObject(object);
     2361        if (!md) {
     2362            exit(EXIT_FAILURE);
     2363        }
     2364
     2365        psFree(object);
     2366
     2367            psFree(md);
     2368            exit(EXIT_FAILURE);
     2369        }
     2370        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2371            psFree(md);
     2372            exit(EXIT_FAILURE);
     2373        }
     2374            psFree(md);
     2375            exit(EXIT_FAILURE);
     2376        }
     2377        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     2378            psFree(md);
     2379            exit(EXIT_FAILURE);
     2380        }
     2381        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2382            psFree(md);
     2383            exit(EXIT_FAILURE);
     2384        }
     2385        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2386            psFree(md);
     2387            exit(EXIT_FAILURE);
     2388        }
     2389        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2390            psFree(md);
     2391            exit(EXIT_FAILURE);
     2392        }
     2393        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2394            psFree(md);
     2395            exit(EXIT_FAILURE);
     2396        }
     2397        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2398            psFree(md);
     2399            exit(EXIT_FAILURE);
     2400        }
     2401        if (!psMetadataLookupF64(&status, md, "bg_skewness") == 64.64) {
     2402            psFree(md);
     2403            exit(EXIT_FAILURE);
     2404        }
     2405        if (!psMetadataLookupF64(&status, md, "bg_kurtosis") == 64.64) {
     2406            psFree(md);
     2407            exit(EXIT_FAILURE);
     2408        }
     2409        if (!psMetadataLookupF64(&status, md, "bin_stdev") == 64.64) {
     2410            psFree(md);
     2411            exit(EXIT_FAILURE);
     2412        }
     2413        if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
     2414            psFree(md);
     2415            exit(EXIT_FAILURE);
     2416        }
     2417        if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
     2418            psFree(md);
     2419            exit(EXIT_FAILURE);
     2420        }
     2421        if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
     2422            psFree(md);
     2423            exit(EXIT_FAILURE);
     2424        }
     2425        if (!psMetadataLookupF64(&status, md, "fringe_resid_0") == 64.64) {
     2426            psFree(md);
     2427            exit(EXIT_FAILURE);
     2428        }
     2429        if (!psMetadataLookupF64(&status, md, "fringe_resid_1") == 64.64) {
     2430            psFree(md);
     2431            exit(EXIT_FAILURE);
     2432        }
     2433        if (!psMetadataLookupF64(&status, md, "fringe_resid_2") == 64.64) {
     2434            psFree(md);
     2435            exit(EXIT_FAILURE);
     2436        }
     2437        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2438            psFree(md);
     2439            exit(EXIT_FAILURE);
     2440        }
     2441        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2442            psFree(md);
     2443            exit(EXIT_FAILURE);
     2444        }
     2445        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2446            psFree(md);
     2447            exit(EXIT_FAILURE);
     2448        }
     2449        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2450            psFree(md);
     2451            exit(EXIT_FAILURE);
     2452        }
     2453        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2454            psFree(md);
     2455            exit(EXIT_FAILURE);
     2456        }
     2457        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2458            psFree(md);
     2459            exit(EXIT_FAILURE);
     2460        }
     2461            psFree(md);
     2462            exit(EXIT_FAILURE);
     2463        }
     2464
     2465        psFree(md);
     2466    }
     2467
     2468    {
     2469        psMetadata      *md;
     2470        detResidExpRow  *object;
     2471        bool            status;
     2472
     2473        object = detResidExpRowAlloc(-64, -32, -64, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", true, -16);
     2474        if (!object) {
     2475            exit(EXIT_FAILURE);
     2476        }
     2477
     2478        md = detResidExpMetadataFromObject(object);
     2479        if (!md) {
     2480            exit(EXIT_FAILURE);
     2481        }
     2482
     2483        psFree(object);
     2484
     2485            psFree(md);
     2486            exit(EXIT_FAILURE);
     2487        }
     2488        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2489            psFree(md);
     2490            exit(EXIT_FAILURE);
     2491        }
     2492            psFree(md);
     2493            exit(EXIT_FAILURE);
     2494        }
     2495        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2496            psFree(md);
     2497            exit(EXIT_FAILURE);
     2498        }
     2499        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2500            psFree(md);
     2501            exit(EXIT_FAILURE);
     2502        }
     2503        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2504            psFree(md);
     2505            exit(EXIT_FAILURE);
     2506        }
     2507        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2508            psFree(md);
     2509            exit(EXIT_FAILURE);
     2510        }
     2511        if (!psMetadataLookupF64(&status, md, "bg_skewness") == 64.64) {
     2512            psFree(md);
     2513            exit(EXIT_FAILURE);
     2514        }
     2515        if (!psMetadataLookupF64(&status, md, "bg_kurtosis") == 64.64) {
     2516            psFree(md);
     2517            exit(EXIT_FAILURE);
     2518        }
     2519        if (!psMetadataLookupF64(&status, md, "bin_stdev") == 64.64) {
     2520            psFree(md);
     2521            exit(EXIT_FAILURE);
     2522        }
     2523        if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
     2524            psFree(md);
     2525            exit(EXIT_FAILURE);
     2526        }
     2527        if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
     2528            psFree(md);
     2529            exit(EXIT_FAILURE);
     2530        }
     2531        if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
     2532            psFree(md);
     2533            exit(EXIT_FAILURE);
     2534        }
     2535        if (!psMetadataLookupF64(&status, md, "fringe_resid_0") == 64.64) {
     2536            psFree(md);
     2537            exit(EXIT_FAILURE);
     2538        }
     2539        if (!psMetadataLookupF64(&status, md, "fringe_resid_1") == 64.64) {
     2540            psFree(md);
     2541            exit(EXIT_FAILURE);
     2542        }
     2543        if (!psMetadataLookupF64(&status, md, "fringe_resid_2") == 64.64) {
     2544            psFree(md);
     2545            exit(EXIT_FAILURE);
     2546        }
     2547        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2548            psFree(md);
     2549            exit(EXIT_FAILURE);
     2550        }
     2551        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2552            psFree(md);
     2553            exit(EXIT_FAILURE);
     2554        }
     2555        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2556            psFree(md);
     2557            exit(EXIT_FAILURE);
     2558        }
     2559        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2560            psFree(md);
     2561            exit(EXIT_FAILURE);
     2562        }
     2563        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2564            psFree(md);
     2565            exit(EXIT_FAILURE);
     2566        }
     2567        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2568            psFree(md);
     2569            exit(EXIT_FAILURE);
     2570        }
     2571        if (!psMetadataLookupBool(&status, md, "accept") == true) {
     2572            psFree(md);
     2573            exit(EXIT_FAILURE);
     2574        }
     2575            psFree(md);
     2576            exit(EXIT_FAILURE);
     2577        }
     2578
     2579        psFree(md);
     2580    }
     2581
     2582    {
     2583        psMetadata      *md;
     2584        detRunSummaryRow *object;
     2585        bool            status;
     2586
     2587        object = detRunSummaryRowAlloc(-64, -32, 64.64, 64.64, 64.64, true, -16);
     2588        if (!object) {
     2589            exit(EXIT_FAILURE);
     2590        }
     2591
     2592        md = detRunSummaryMetadataFromObject(object);
     2593        if (!md) {
     2594            exit(EXIT_FAILURE);
     2595        }
     2596
     2597        psFree(object);
     2598
     2599            psFree(md);
     2600            exit(EXIT_FAILURE);
     2601        }
     2602        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2603            psFree(md);
     2604            exit(EXIT_FAILURE);
     2605        }
     2606        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2607            psFree(md);
     2608            exit(EXIT_FAILURE);
     2609        }
     2610        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2611            psFree(md);
     2612            exit(EXIT_FAILURE);
     2613        }
     2614        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2615            psFree(md);
     2616            exit(EXIT_FAILURE);
     2617        }
     2618        if (!psMetadataLookupBool(&status, md, "accept") == true) {
     2619            psFree(md);
     2620            exit(EXIT_FAILURE);
     2621        }
     2622            psFree(md);
     2623            exit(EXIT_FAILURE);
     2624        }
     2625
     2626        psFree(md);
     2627    }
     2628
     2629    {
     2630        psMetadata      *md;
     2631        detRegisteredImfileRow *object;
     2632        bool            status;
     2633
     2634        object = detRegisteredImfileRowAlloc(-64, -32, "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
     2635        if (!object) {
     2636            exit(EXIT_FAILURE);
     2637        }
     2638
     2639        md = detRegisteredImfileMetadataFromObject(object);
     2640        if (!md) {
     2641            exit(EXIT_FAILURE);
     2642        }
     2643
     2644        psFree(object);
     2645
     2646            psFree(md);
     2647            exit(EXIT_FAILURE);
     2648        }
     2649        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2650            psFree(md);
     2651            exit(EXIT_FAILURE);
     2652        }
     2653        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     2654            psFree(md);
     2655            exit(EXIT_FAILURE);
     2656        }
     2657        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2658            psFree(md);
     2659            exit(EXIT_FAILURE);
     2660        }
     2661        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2662            psFree(md);
     2663            exit(EXIT_FAILURE);
     2664        }
     2665        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2666            psFree(md);
     2667            exit(EXIT_FAILURE);
     2668        }
     2669        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2670            psFree(md);
     2671            exit(EXIT_FAILURE);
     2672        }
     2673        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2674            psFree(md);
     2675            exit(EXIT_FAILURE);
     2676        }
     2677        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2678            psFree(md);
     2679            exit(EXIT_FAILURE);
     2680        }
     2681        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2682            psFree(md);
     2683            exit(EXIT_FAILURE);
     2684        }
     2685        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2686            psFree(md);
     2687            exit(EXIT_FAILURE);
     2688        }
     2689        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2690            psFree(md);
     2691            exit(EXIT_FAILURE);
     2692        }
     2693        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2694            psFree(md);
     2695            exit(EXIT_FAILURE);
     2696        }
     2697            psFree(md);
     2698            exit(EXIT_FAILURE);
     2699        }
     2700
     2701        psFree(md);
     2702    }
     2703
     2704    {
     2705        psMetadata      *md;
     2706        detCorrectedExpRow *object;
     2707        bool            status;
     2708
     2709        object = detCorrectedExpRowAlloc(-64, -64, "a string", -64, "a string", "a string", "a string", -16);
     2710        if (!object) {
     2711            exit(EXIT_FAILURE);
     2712        }
     2713
     2714        md = detCorrectedExpMetadataFromObject(object);
     2715        if (!md) {
     2716            exit(EXIT_FAILURE);
     2717        }
     2718
     2719        psFree(object);
     2720
     2721            psFree(md);
     2722            exit(EXIT_FAILURE);
     2723        }
     2724            psFree(md);
     2725            exit(EXIT_FAILURE);
     2726        }
     2727        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2728            psFree(md);
     2729            exit(EXIT_FAILURE);
     2730        }
     2731            psFree(md);
     2732            exit(EXIT_FAILURE);
     2733        }
     2734        if (strncmp(psMetadataLookupPtr(&status, md, "corr_type"), "a string", MAX_STRING_LENGTH)) {
     2735            psFree(md);
     2736            exit(EXIT_FAILURE);
     2737        }
     2738        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2739            psFree(md);
     2740            exit(EXIT_FAILURE);
     2741        }
     2742        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2743            psFree(md);
     2744            exit(EXIT_FAILURE);
     2745        }
     2746            psFree(md);
     2747            exit(EXIT_FAILURE);
     2748        }
     2749
     2750        psFree(md);
     2751    }
     2752
     2753    {
     2754        psMetadata      *md;
     2755        detCorrectedImfileRow *object;
     2756        bool            status;
     2757
     2758        object = detCorrectedImfileRowAlloc(-64, -64, "a string", "a string", "a string", -16);
     2759        if (!object) {
     2760            exit(EXIT_FAILURE);
     2761        }
     2762
     2763        md = detCorrectedImfileMetadataFromObject(object);
     2764        if (!md) {
     2765            exit(EXIT_FAILURE);
     2766        }
     2767
     2768        psFree(object);
     2769
     2770            psFree(md);
     2771            exit(EXIT_FAILURE);
     2772        }
     2773            psFree(md);
     2774            exit(EXIT_FAILURE);
     2775        }
     2776        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     2777            psFree(md);
     2778            exit(EXIT_FAILURE);
     2779        }
     2780        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2781            psFree(md);
     2782            exit(EXIT_FAILURE);
     2783        }
     2784        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2785            psFree(md);
     2786            exit(EXIT_FAILURE);
     2787        }
     2788            psFree(md);
     2789            exit(EXIT_FAILURE);
     2790        }
     2791
     2792        psFree(md);
     2793    }
     2794
     2795    {
     2796        psMetadata      *md;
     2797        magicRunRow     *object;
     2798        bool            status;
     2799
     2800        object = magicRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
     2801        if (!object) {
     2802            exit(EXIT_FAILURE);
     2803        }
     2804
     2805        md = magicRunMetadataFromObject(object);
     2806        if (!md) {
     2807            exit(EXIT_FAILURE);
     2808        }
     2809
     2810        psFree(object);
     2811
     2812            psFree(md);
     2813            exit(EXIT_FAILURE);
     2814        }
     2815        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    4402816            psFree(md);
    4412817            exit(EXIT_FAILURE);
     
    4452821            exit(EXIT_FAILURE);
    4462822        }
    447         if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
     2823        if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
     2824            psFree(md);
     2825            exit(EXIT_FAILURE);
     2826        }
     2827        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    4482828            psFree(md);
    4492829            exit(EXIT_FAILURE);
     
    4532833            exit(EXIT_FAILURE);
    4542834        }
    455         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    456             psFree(md);
    457             exit(EXIT_FAILURE);
    458         }
    459         if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
     2835            psFree(md);
     2836            exit(EXIT_FAILURE);
     2837        }
     2838
     2839        psFree(md);
     2840    }
     2841
     2842    {
     2843        psMetadata      *md;
     2844        magicInputSkyfileRow *object;
     2845        bool            status;
     2846
     2847        object = magicInputSkyfileRowAlloc(-64, -64, "a string");
     2848        if (!object) {
     2849            exit(EXIT_FAILURE);
     2850        }
     2851
     2852        md = magicInputSkyfileMetadataFromObject(object);
     2853        if (!md) {
     2854            exit(EXIT_FAILURE);
     2855        }
     2856
     2857        psFree(object);
     2858
     2859            psFree(md);
     2860            exit(EXIT_FAILURE);
     2861        }
     2862            psFree(md);
     2863            exit(EXIT_FAILURE);
     2864        }
     2865        if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
     2866            psFree(md);
     2867            exit(EXIT_FAILURE);
     2868        }
     2869
     2870        psFree(md);
     2871    }
     2872
     2873    {
     2874        psMetadata      *md;
     2875        magicTreeRow    *object;
     2876        bool            status;
     2877
     2878        object = magicTreeRowAlloc(-64, "a string", "a string");
     2879        if (!object) {
     2880            exit(EXIT_FAILURE);
     2881        }
     2882
     2883        md = magicTreeMetadataFromObject(object);
     2884        if (!md) {
     2885            exit(EXIT_FAILURE);
     2886        }
     2887
     2888        psFree(object);
     2889
     2890            psFree(md);
     2891            exit(EXIT_FAILURE);
     2892        }
     2893        if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
     2894            psFree(md);
     2895            exit(EXIT_FAILURE);
     2896        }
     2897        if (strncmp(psMetadataLookupPtr(&status, md, "dep"), "a string", MAX_STRING_LENGTH)) {
     2898            psFree(md);
     2899            exit(EXIT_FAILURE);
     2900        }
     2901
     2902        psFree(md);
     2903    }
     2904
     2905    {
     2906        psMetadata      *md;
     2907        magicNodeResultRow *object;
     2908        bool            status;
     2909
     2910        object = magicNodeResultRowAlloc(-64, "a string", "a string");
     2911        if (!object) {
     2912            exit(EXIT_FAILURE);
     2913        }
     2914
     2915        md = magicNodeResultMetadataFromObject(object);
     2916        if (!md) {
     2917            exit(EXIT_FAILURE);
     2918        }
     2919
     2920        psFree(object);
     2921
     2922            psFree(md);
     2923            exit(EXIT_FAILURE);
     2924        }
     2925        if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
     2926            psFree(md);
     2927            exit(EXIT_FAILURE);
     2928        }
     2929        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2930            psFree(md);
     2931            exit(EXIT_FAILURE);
     2932        }
     2933
     2934        psFree(md);
     2935    }
     2936
     2937    {
     2938        psMetadata      *md;
     2939        magicMaskRow    *object;
     2940        bool            status;
     2941
     2942        object = magicMaskRowAlloc(-64, "a string");
     2943        if (!object) {
     2944            exit(EXIT_FAILURE);
     2945        }
     2946
     2947        md = magicMaskMetadataFromObject(object);
     2948        if (!md) {
     2949            exit(EXIT_FAILURE);
     2950        }
     2951
     2952        psFree(object);
     2953
     2954            psFree(md);
     2955            exit(EXIT_FAILURE);
     2956        }
     2957        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2958            psFree(md);
     2959            exit(EXIT_FAILURE);
     2960        }
     2961
     2962        psFree(md);
     2963    }
     2964
     2965    {
     2966        psMetadata      *md;
     2967        magicSkyfileMaskRow *object;
     2968        bool            status;
     2969
     2970        object = magicSkyfileMaskRowAlloc(-64, -64, "a string");
     2971        if (!object) {
     2972            exit(EXIT_FAILURE);
     2973        }
     2974
     2975        md = magicSkyfileMaskMetadataFromObject(object);
     2976        if (!md) {
     2977            exit(EXIT_FAILURE);
     2978        }
     2979
     2980        psFree(object);
     2981
     2982            psFree(md);
     2983            exit(EXIT_FAILURE);
     2984        }
     2985            psFree(md);
     2986            exit(EXIT_FAILURE);
     2987        }
     2988        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2989            psFree(md);
     2990            exit(EXIT_FAILURE);
     2991        }
     2992
     2993        psFree(md);
     2994    }
     2995
     2996    {
     2997        psMetadata      *md;
     2998        calDBRow        *object;
     2999        bool            status;
     3000
     3001        object = calDBRowAlloc(-64, "a string", "a string");
     3002        if (!object) {
     3003            exit(EXIT_FAILURE);
     3004        }
     3005
     3006        md = calDBMetadataFromObject(object);
     3007        if (!md) {
     3008            exit(EXIT_FAILURE);
     3009        }
     3010
     3011        psFree(object);
     3012
     3013            psFree(md);
     3014            exit(EXIT_FAILURE);
     3015        }
     3016        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     3017            psFree(md);
     3018            exit(EXIT_FAILURE);
     3019        }
     3020        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     3021            psFree(md);
     3022            exit(EXIT_FAILURE);
     3023        }
     3024
     3025        psFree(md);
     3026    }
     3027
     3028    {
     3029        psMetadata      *md;
     3030        calRunRow       *object;
     3031        bool            status;
     3032
     3033        object = calRunRowAlloc(-64, "a string", "a string", "a string");
     3034        if (!object) {
     3035            exit(EXIT_FAILURE);
     3036        }
     3037
     3038        md = calRunMetadataFromObject(object);
     3039        if (!md) {
     3040            exit(EXIT_FAILURE);
     3041        }
     3042
     3043        psFree(object);
     3044
     3045            psFree(md);
     3046            exit(EXIT_FAILURE);
     3047        }
     3048        if (strncmp(psMetadataLookupPtr(&status, md, "region"), "a string", MAX_STRING_LENGTH)) {
     3049            psFree(md);
     3050            exit(EXIT_FAILURE);
     3051        }
     3052        if (strncmp(psMetadataLookupPtr(&status, md, "last_step"), "a string", MAX_STRING_LENGTH)) {
     3053            psFree(md);
     3054            exit(EXIT_FAILURE);
     3055        }
     3056        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     3057            psFree(md);
     3058            exit(EXIT_FAILURE);
     3059        }
     3060
     3061        psFree(md);
     3062    }
     3063
     3064    {
     3065        psMetadata      *md;
     3066        flatcorrRunRow  *object;
     3067        bool            status;
     3068
     3069        object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string");
     3070        if (!object) {
     3071            exit(EXIT_FAILURE);
     3072        }
     3073
     3074        md = flatcorrRunMetadataFromObject(object);
     3075        if (!md) {
     3076            exit(EXIT_FAILURE);
     3077        }
     3078
     3079        psFree(object);
     3080
     3081            psFree(md);
     3082            exit(EXIT_FAILURE);
     3083        }
     3084        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    4603085            psFree(md);
    4613086            exit(EXIT_FAILURE);
     
    4653090            exit(EXIT_FAILURE);
    4663091        }
    467         if (strncmp(psMetadataLookupPtr(&status, md, "comment"), "a string", MAX_STRING_LENGTH)) {
    468             psFree(md);
    469             exit(EXIT_FAILURE);
    470         }
    471         if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
    472             psFree(md);
    473             exit(EXIT_FAILURE);
    474         }
    475         if (!psMetadataLookupF64(&status, md, "ra") == 64.64) {
    476             psFree(md);
    477             exit(EXIT_FAILURE);
    478         }
    479         if (!psMetadataLookupF64(&status, md, "decl") == 64.64) {
    480             psFree(md);
    481             exit(EXIT_FAILURE);
    482         }
    483         if (!psMetadataLookupF32(&status, md, "exp_time") == 32.32) {
    484             psFree(md);
    485             exit(EXIT_FAILURE);
    486         }
    487         if (!psMetadataLookupF32(&status, md, "sat_pixel_frac") == 32.32) {
    488             psFree(md);
    489             exit(EXIT_FAILURE);
    490         }
    491         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    492             psFree(md);
    493             exit(EXIT_FAILURE);
    494         }
    495         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    496             psFree(md);
    497             exit(EXIT_FAILURE);
    498         }
    499         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    500             psFree(md);
    501             exit(EXIT_FAILURE);
    502         }
    503         if (!psMetadataLookupF64(&status, md, "alt") == 64.64) {
    504             psFree(md);
    505             exit(EXIT_FAILURE);
    506         }
    507         if (!psMetadataLookupF64(&status, md, "az") == 64.64) {
    508             psFree(md);
    509             exit(EXIT_FAILURE);
    510         }
    511         if (!psMetadataLookupF32(&status, md, "ccd_temp") == 32.32) {
    512             psFree(md);
    513             exit(EXIT_FAILURE);
    514         }
    515         if (!psMetadataLookupF64(&status, md, "posang") == 64.64) {
    516             psFree(md);
    517             exit(EXIT_FAILURE);
    518         }
    519         if (!psMetadataLookupF32(&status, md, "m1_x") == 32.32) {
    520             psFree(md);
    521             exit(EXIT_FAILURE);
    522         }
    523         if (!psMetadataLookupF32(&status, md, "m1_y") == 32.32) {
    524             psFree(md);
    525             exit(EXIT_FAILURE);
    526         }
    527         if (!psMetadataLookupF32(&status, md, "m1_z") == 32.32) {
    528             psFree(md);
    529             exit(EXIT_FAILURE);
    530         }
    531         if (!psMetadataLookupF32(&status, md, "m1_tip") == 32.32) {
    532             psFree(md);
    533             exit(EXIT_FAILURE);
    534         }
    535         if (!psMetadataLookupF32(&status, md, "m1_tilt") == 32.32) {
    536             psFree(md);
    537             exit(EXIT_FAILURE);
    538         }
    539         if (!psMetadataLookupF32(&status, md, "m2_x") == 32.32) {
    540             psFree(md);
    541             exit(EXIT_FAILURE);
    542         }
    543         if (!psMetadataLookupF32(&status, md, "m2_y") == 32.32) {
    544             psFree(md);
    545             exit(EXIT_FAILURE);
    546         }
    547         if (!psMetadataLookupF32(&status, md, "m2_z") == 32.32) {
    548             psFree(md);
    549             exit(EXIT_FAILURE);
    550         }
    551         if (!psMetadataLookupF32(&status, md, "m2_tip") == 32.32) {
    552             psFree(md);
    553             exit(EXIT_FAILURE);
    554         }
    555         if (!psMetadataLookupF32(&status, md, "m2_tilt") == 32.32) {
    556             psFree(md);
    557             exit(EXIT_FAILURE);
    558         }
    559         if (!psMetadataLookupF32(&status, md, "env_temperature") == 32.32) {
    560             psFree(md);
    561             exit(EXIT_FAILURE);
    562         }
    563         if (!psMetadataLookupF32(&status, md, "env_humidity") == 32.32) {
    564             psFree(md);
    565             exit(EXIT_FAILURE);
    566         }
    567         if (!psMetadataLookupF32(&status, md, "env_wind_speed") == 32.32) {
    568             psFree(md);
    569             exit(EXIT_FAILURE);
    570         }
    571         if (!psMetadataLookupF32(&status, md, "env_wind_dir") == 32.32) {
    572             psFree(md);
    573             exit(EXIT_FAILURE);
    574         }
    575         if (!psMetadataLookupF32(&status, md, "teltemp_m1") == 32.32) {
    576             psFree(md);
    577             exit(EXIT_FAILURE);
    578         }
    579         if (!psMetadataLookupF32(&status, md, "teltemp_m1cell") == 32.32) {
    580             psFree(md);
    581             exit(EXIT_FAILURE);
    582         }
    583         if (!psMetadataLookupF32(&status, md, "teltemp_m2") == 32.32) {
    584             psFree(md);
    585             exit(EXIT_FAILURE);
    586         }
    587         if (!psMetadataLookupF32(&status, md, "teltemp_spider") == 32.32) {
    588             psFree(md);
    589             exit(EXIT_FAILURE);
    590         }
    591         if (!psMetadataLookupF32(&status, md, "teltemp_truss") == 32.32) {
    592             psFree(md);
    593             exit(EXIT_FAILURE);
    594         }
    595         if (!psMetadataLookupF32(&status, md, "teltemp_extra") == 32.32) {
    596             psFree(md);
    597             exit(EXIT_FAILURE);
    598         }
    599         if (!psMetadataLookupF32(&status, md, "pon_time") == 32.32) {
    600             psFree(md);
    601             exit(EXIT_FAILURE);
    602         }
    603         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    604             psFree(md);
    605             exit(EXIT_FAILURE);
    606         }
    607         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    608             psFree(md);
    609             exit(EXIT_FAILURE);
    610         }
    611         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    612             psFree(md);
    613             exit(EXIT_FAILURE);
    614         }
    615         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    616             psFree(md);
    617             exit(EXIT_FAILURE);
    618         }
    619         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    620             psFree(md);
    621             exit(EXIT_FAILURE);
    622         }
    623         if (strncmp(psMetadataLookupPtr(&status, md, "object"), "a string", MAX_STRING_LENGTH)) {
    624             psFree(md);
    625             exit(EXIT_FAILURE);
    626         }
    627         if (!psMetadataLookupF32(&status, md, "solang") == 32.32) {
    628             psFree(md);
    629             exit(EXIT_FAILURE);
    630         }
    631             psFree(md);
    632             exit(EXIT_FAILURE);
    633         }
    634 
    635         psFree(md);
    636     }
    637 
    638     {
    639         psMetadata      *md;
    640         rawImfileRow    *object;
    641         bool            status;
    642 
    643         object = rawImfileRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
    644         if (!object) {
    645             exit(EXIT_FAILURE);
    646         }
    647 
    648         md = rawImfileMetadataFromObject(object);
    649         if (!md) {
    650             exit(EXIT_FAILURE);
    651         }
    652 
    653         psFree(object);
    654 
    655             psFree(md);
    656             exit(EXIT_FAILURE);
    657         }
    658         if (strncmp(psMetadataLookupPtr(&status, md, "exp_name"), "a string", MAX_STRING_LENGTH)) {
    659             psFree(md);
    660             exit(EXIT_FAILURE);
    661         }
    662         if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) {
    663             psFree(md);
    664             exit(EXIT_FAILURE);
    665         }
    666         if (strncmp(psMetadataLookupPtr(&status, md, "telescope"), "a string", MAX_STRING_LENGTH)) {
    667             psFree(md);
    668             exit(EXIT_FAILURE);
    669         }
    670             psFree(md);
    671             exit(EXIT_FAILURE);
    672         }
    673         if (strncmp(psMetadataLookupPtr(&status, md, "tmp_class_id"), "a string", MAX_STRING_LENGTH)) {
    674             psFree(md);
    675             exit(EXIT_FAILURE);
    676         }
    677         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     3092        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     3093            psFree(md);
     3094            exit(EXIT_FAILURE);
     3095        }
     3096        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     3097            psFree(md);
     3098            exit(EXIT_FAILURE);
     3099        }
     3100        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     3101            psFree(md);
     3102            exit(EXIT_FAILURE);
     3103        }
     3104        if (strncmp(psMetadataLookupPtr(&status, md, "stats"), "a string", MAX_STRING_LENGTH)) {
     3105            psFree(md);
     3106            exit(EXIT_FAILURE);
     3107        }
     3108
     3109        psFree(md);
     3110    }
     3111
     3112    {
     3113        psMetadata      *md;
     3114        flatcorrExpRow  *object;
     3115        bool            status;
     3116
     3117        object = flatcorrExpRowAlloc(-64, -64);
     3118        if (!object) {
     3119            exit(EXIT_FAILURE);
     3120        }
     3121
     3122        md = flatcorrExpMetadataFromObject(object);
     3123        if (!md) {
     3124            exit(EXIT_FAILURE);
     3125        }
     3126
     3127        psFree(object);
     3128
     3129            psFree(md);
     3130            exit(EXIT_FAILURE);
     3131        }
     3132            psFree(md);
     3133            exit(EXIT_FAILURE);
     3134        }
     3135
     3136        psFree(md);
     3137    }
     3138
     3139    {
     3140        psMetadata      *md;
     3141        pstampDataStoreRow *object;
     3142        bool            status;
     3143
     3144        object = pstampDataStoreRowAlloc(-64, "a string", "a string", "a string");
     3145        if (!object) {
     3146            exit(EXIT_FAILURE);
     3147        }
     3148
     3149        md = pstampDataStoreMetadataFromObject(object);
     3150        if (!md) {
     3151            exit(EXIT_FAILURE);
     3152        }
     3153
     3154        psFree(object);
     3155
    6783156            psFree(md);
    6793157            exit(EXIT_FAILURE);
     
    6833161            exit(EXIT_FAILURE);
    6843162        }
    685         if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
    686             psFree(md);
    687             exit(EXIT_FAILURE);
    688         }
    689         if (strncmp(psMetadataLookupPtr(&status, md, "filelevel"), "a string", MAX_STRING_LENGTH)) {
    690             psFree(md);
    691             exit(EXIT_FAILURE);
    692         }
    693         if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
    694             psFree(md);
    695             exit(EXIT_FAILURE);
    696         }
    697         if (strncmp(psMetadataLookupPtr(&status, md, "comment"), "a string", MAX_STRING_LENGTH)) {
    698             psFree(md);
    699             exit(EXIT_FAILURE);
    700         }
    701         if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
    702             psFree(md);
    703             exit(EXIT_FAILURE);
    704         }
    705         if (!psMetadataLookupF64(&status, md, "ra") == 64.64) {
    706             psFree(md);
    707             exit(EXIT_FAILURE);
    708         }
    709         if (!psMetadataLookupF64(&status, md, "decl") == 64.64) {
    710             psFree(md);
    711             exit(EXIT_FAILURE);
    712         }
    713         if (!psMetadataLookupF32(&status, md, "exp_time") == 32.32) {
    714             psFree(md);
    715             exit(EXIT_FAILURE);
    716         }
    717         if (!psMetadataLookupF32(&status, md, "sat_pixel_frac") == 32.32) {
    718             psFree(md);
    719             exit(EXIT_FAILURE);
    720         }
    721         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    722             psFree(md);
    723             exit(EXIT_FAILURE);
    724         }
    725         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    726             psFree(md);
    727             exit(EXIT_FAILURE);
    728         }
    729         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    730             psFree(md);
    731             exit(EXIT_FAILURE);
    732         }
    733         if (!psMetadataLookupF64(&status, md, "alt") == 64.64) {
    734             psFree(md);
    735             exit(EXIT_FAILURE);
    736         }
    737         if (!psMetadataLookupF64(&status, md, "az") == 64.64) {
    738             psFree(md);
    739             exit(EXIT_FAILURE);
    740         }
    741         if (!psMetadataLookupF32(&status, md, "ccd_temp") == 32.32) {
    742             psFree(md);
    743             exit(EXIT_FAILURE);
    744         }
    745         if (!psMetadataLookupF64(&status, md, "posang") == 64.64) {
    746             psFree(md);
    747             exit(EXIT_FAILURE);
    748         }
    749         if (!psMetadataLookupF32(&status, md, "m1_x") == 32.32) {
    750             psFree(md);
    751             exit(EXIT_FAILURE);
    752         }
    753         if (!psMetadataLookupF32(&status, md, "m1_y") == 32.32) {
    754             psFree(md);
    755             exit(EXIT_FAILURE);
    756         }
    757         if (!psMetadataLookupF32(&status, md, "m1_z") == 32.32) {
    758             psFree(md);
    759             exit(EXIT_FAILURE);
    760         }
    761         if (!psMetadataLookupF32(&status, md, "m1_tip") == 32.32) {
    762             psFree(md);
    763             exit(EXIT_FAILURE);
    764         }
    765         if (!psMetadataLookupF32(&status, md, "m1_tilt") == 32.32) {
    766             psFree(md);
    767             exit(EXIT_FAILURE);
    768         }
    769         if (!psMetadataLookupF32(&status, md, "m2_x") == 32.32) {
    770             psFree(md);
    771             exit(EXIT_FAILURE);
    772         }
    773         if (!psMetadataLookupF32(&status, md, "m2_y") == 32.32) {
    774             psFree(md);
    775             exit(EXIT_FAILURE);
    776         }
    777         if (!psMetadataLookupF32(&status, md, "m2_z") == 32.32) {
    778             psFree(md);
    779             exit(EXIT_FAILURE);
    780         }
    781         if (!psMetadataLookupF32(&status, md, "m2_tip") == 32.32) {
    782             psFree(md);
    783             exit(EXIT_FAILURE);
    784         }
    785         if (!psMetadataLookupF32(&status, md, "m2_tilt") == 32.32) {
    786             psFree(md);
    787             exit(EXIT_FAILURE);
    788         }
    789         if (!psMetadataLookupF32(&status, md, "env_temperature") == 32.32) {
    790             psFree(md);
    791             exit(EXIT_FAILURE);
    792         }
    793         if (!psMetadataLookupF32(&status, md, "env_humidity") == 32.32) {
    794             psFree(md);
    795             exit(EXIT_FAILURE);
    796         }
    797         if (!psMetadataLookupF32(&status, md, "env_wind_speed") == 32.32) {
    798             psFree(md);
    799             exit(EXIT_FAILURE);
    800         }
    801         if (!psMetadataLookupF32(&status, md, "env_wind_dir") == 32.32) {
    802             psFree(md);
    803             exit(EXIT_FAILURE);
    804         }
    805         if (!psMetadataLookupF32(&status, md, "teltemp_m1") == 32.32) {
    806             psFree(md);
    807             exit(EXIT_FAILURE);
    808         }
    809         if (!psMetadataLookupF32(&status, md, "teltemp_m1cell") == 32.32) {
    810             psFree(md);
    811             exit(EXIT_FAILURE);
    812         }
    813         if (!psMetadataLookupF32(&status, md, "teltemp_m2") == 32.32) {
    814             psFree(md);
    815             exit(EXIT_FAILURE);
    816         }
    817         if (!psMetadataLookupF32(&status, md, "teltemp_spider") == 32.32) {
    818             psFree(md);
    819             exit(EXIT_FAILURE);
    820         }
    821         if (!psMetadataLookupF32(&status, md, "teltemp_truss") == 32.32) {
    822             psFree(md);
    823             exit(EXIT_FAILURE);
    824         }
    825         if (!psMetadataLookupF32(&status, md, "teltemp_extra") == 32.32) {
    826             psFree(md);
    827             exit(EXIT_FAILURE);
    828         }
    829         if (!psMetadataLookupF32(&status, md, "pon_time") == 32.32) {
    830             psFree(md);
    831             exit(EXIT_FAILURE);
    832         }
    833         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    834             psFree(md);
    835             exit(EXIT_FAILURE);
    836         }
    837         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    838             psFree(md);
    839             exit(EXIT_FAILURE);
    840         }
    841         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    842             psFree(md);
    843             exit(EXIT_FAILURE);
    844         }
    845         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    846             psFree(md);
    847             exit(EXIT_FAILURE);
    848         }
    849         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    850             psFree(md);
    851             exit(EXIT_FAILURE);
    852         }
    853         if (strncmp(psMetadataLookupPtr(&status, md, "object"), "a string", MAX_STRING_LENGTH)) {
    854             psFree(md);
    855             exit(EXIT_FAILURE);
    856         }
    857             psFree(md);
    858             exit(EXIT_FAILURE);
    859         }
    860 
    861         psFree(md);
    862     }
    863 
    864     {
    865         psMetadata      *md;
    866         guidePendingExpRow *object;
    867         bool            status;
    868 
    869         object = guidePendingExpRowAlloc(-64, -64, "a string");
    870         if (!object) {
    871             exit(EXIT_FAILURE);
    872         }
    873 
    874         md = guidePendingExpMetadataFromObject(object);
    875         if (!md) {
    876             exit(EXIT_FAILURE);
    877         }
    878 
    879         psFree(object);
    880 
    881             psFree(md);
    882             exit(EXIT_FAILURE);
    883         }
    884             psFree(md);
    885             exit(EXIT_FAILURE);
    886         }
    887         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    888             psFree(md);
    889             exit(EXIT_FAILURE);
    890         }
    891 
    892         psFree(md);
    893     }
    894 
    895     {
    896         psMetadata      *md;
    897         chipRunRow      *object;
    898         bool            status;
    899 
    900         object = chipRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
    901         if (!object) {
    902             exit(EXIT_FAILURE);
    903         }
    904 
    905         md = chipRunMetadataFromObject(object);
    906         if (!md) {
    907             exit(EXIT_FAILURE);
    908         }
    909 
    910         psFree(object);
    911 
    912             psFree(md);
    913             exit(EXIT_FAILURE);
    914         }
     3163        if (strncmp(psMetadataLookupPtr(&status, md, "lastFileset"), "a string", MAX_STRING_LENGTH)) {
    9153164            psFree(md);
    9163165            exit(EXIT_FAILURE);
     
    9203169            exit(EXIT_FAILURE);
    9213170        }
    922         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    923             psFree(md);
    924             exit(EXIT_FAILURE);
    925         }
    926         if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
    927             psFree(md);
    928             exit(EXIT_FAILURE);
    929         }
    930         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    931             psFree(md);
    932             exit(EXIT_FAILURE);
    933         }
    934         if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
    935             psFree(md);
    936             exit(EXIT_FAILURE);
    937         }
    938         if (strncmp(psMetadataLookupPtr(&status, md, "expgroup"), "a string", MAX_STRING_LENGTH)) {
    939             psFree(md);
    940             exit(EXIT_FAILURE);
    941         }
    942         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    943             psFree(md);
    944             exit(EXIT_FAILURE);
    945         }
    946         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    947             psFree(md);
    948             exit(EXIT_FAILURE);
    949         }
    950         if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
    951             psFree(md);
    952             exit(EXIT_FAILURE);
    953         }
    954 
    955         psFree(md);
    956     }
    957 
    958     {
    959         psMetadata      *md;
    960         chipProcessedImfileRow *object;
    961         bool            status;
    962 
    963         object = chipProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, -32, -32, -32, -32, "a string", -16);
    964         if (!object) {
    965             exit(EXIT_FAILURE);
    966         }
    967 
    968         md = chipProcessedImfileMetadataFromObject(object);
    969         if (!md) {
    970             exit(EXIT_FAILURE);
    971         }
    972 
    973         psFree(object);
    974 
    975             psFree(md);
    976             exit(EXIT_FAILURE);
    977         }
    978             psFree(md);
    979             exit(EXIT_FAILURE);
    980         }
    981         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     3171
     3172        psFree(md);
     3173    }
     3174
     3175    {
     3176        psMetadata      *md;
     3177        pstampRequestRow *object;
     3178        bool            status;
     3179
     3180        object = pstampRequestRowAlloc(-64, -64, "a string", "a string");
     3181        if (!object) {
     3182            exit(EXIT_FAILURE);
     3183        }
     3184
     3185        md = pstampRequestMetadataFromObject(object);
     3186        if (!md) {
     3187            exit(EXIT_FAILURE);
     3188        }
     3189
     3190        psFree(object);
     3191
     3192            psFree(md);
     3193            exit(EXIT_FAILURE);
     3194        }
     3195            psFree(md);
     3196            exit(EXIT_FAILURE);
     3197        }
     3198        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    9823199            psFree(md);
    9833200            exit(EXIT_FAILURE);
     
    9873204            exit(EXIT_FAILURE);
    9883205        }
    989         if (!psMetadataLookupF32(&status, md, "bg") == 32.32) {
    990             psFree(md);
    991             exit(EXIT_FAILURE);
    992         }
    993         if (!psMetadataLookupF32(&status, md, "bg_stdev") == 32.32) {
    994             psFree(md);
    995             exit(EXIT_FAILURE);
    996         }
    997         if (!psMetadataLookupF32(&status, md, "bg_mean_stdev") == 32.32) {
    998             psFree(md);
    999             exit(EXIT_FAILURE);
    1000         }
    1001         if (!psMetadataLookupF32(&status, md, "bias") == 32.32) {
    1002             psFree(md);
    1003             exit(EXIT_FAILURE);
    1004         }
    1005         if (!psMetadataLookupF32(&status, md, "bias_stdev") == 32.32) {
    1006             psFree(md);
    1007             exit(EXIT_FAILURE);
    1008         }
    1009         if (!psMetadataLookupF32(&status, md, "fringe_0") == 32.32) {
    1010             psFree(md);
    1011             exit(EXIT_FAILURE);
    1012         }
    1013         if (!psMetadataLookupF32(&status, md, "fringe_1") == 32.32) {
    1014             psFree(md);
    1015             exit(EXIT_FAILURE);
    1016         }
    1017         if (!psMetadataLookupF32(&status, md, "fringe_2") == 32.32) {
    1018             psFree(md);
    1019             exit(EXIT_FAILURE);
    1020         }
    1021         if (!psMetadataLookupF32(&status, md, "sigma_ra") == 32.32) {
    1022             psFree(md);
    1023             exit(EXIT_FAILURE);
    1024         }
    1025         if (!psMetadataLookupF32(&status, md, "sigma_dec") == 32.32) {
    1026             psFree(md);
    1027             exit(EXIT_FAILURE);
    1028         }
    1029         if (!psMetadataLookupF32(&status, md, "ap_resid") == 32.32) {
    1030             psFree(md);
    1031             exit(EXIT_FAILURE);
    1032         }
    1033         if (!psMetadataLookupF32(&status, md, "ap_resid_stdev") == 32.32) {
    1034             psFree(md);
    1035             exit(EXIT_FAILURE);
    1036         }
    1037         if (!psMetadataLookupF32(&status, md, "fwhm") == 32.32) {
    1038             psFree(md);
    1039             exit(EXIT_FAILURE);
    1040         }
    1041         if (!psMetadataLookupF32(&status, md, "fwhm_range") == 32.32) {
    1042             psFree(md);
    1043             exit(EXIT_FAILURE);
    1044         }
    1045         if (!psMetadataLookupS32(&status, md, "n_stars") == -32) {
    1046             psFree(md);
    1047             exit(EXIT_FAILURE);
    1048         }
    1049         if (!psMetadataLookupS32(&status, md, "n_extended") == -32) {
    1050             psFree(md);
    1051             exit(EXIT_FAILURE);
    1052         }
    1053         if (!psMetadataLookupS32(&status, md, "n_cr") == -32) {
    1054             psFree(md);
    1055             exit(EXIT_FAILURE);
    1056         }
    1057         if (!psMetadataLookupS32(&status, md, "n_astrom") == -32) {
    1058             psFree(md);
    1059             exit(EXIT_FAILURE);
    1060         }
    1061         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    1062             psFree(md);
    1063             exit(EXIT_FAILURE);
    1064         }
    1065             psFree(md);
    1066             exit(EXIT_FAILURE);
    1067         }
    1068 
    1069         psFree(md);
    1070     }
    1071 
    1072     {
    1073         psMetadata      *md;
    1074         chipMaskRow     *object;
    1075         bool            status;
    1076 
    1077         object = chipMaskRowAlloc("a string");
    1078         if (!object) {
    1079             exit(EXIT_FAILURE);
    1080         }
    1081 
    1082         md = chipMaskMetadataFromObject(object);
    1083         if (!md) {
    1084             exit(EXIT_FAILURE);
    1085         }
    1086 
    1087         psFree(object);
    1088 
    1089         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    1090             psFree(md);
    1091             exit(EXIT_FAILURE);
    1092         }
    1093 
    1094         psFree(md);
    1095     }
    1096 
    1097     {
    1098         psMetadata      *md;
    1099         camRunRow       *object;
    1100         bool            status;
    1101 
    1102         object = camRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
    1103         if (!object) {
    1104             exit(EXIT_FAILURE);
    1105         }
    1106 
    1107         md = camRunMetadataFromObject(object);
     3206
     3207        psFree(md);
     3208    }
     3209
     3210    {
     3211        psMetadata      *md;
     3212        pstampJobRow    *object;
     3213        bool            status;
     3214
     3215        object = pstampJobRowAlloc(-64, -64, "a string", -32, "a string", "a string", "a string");
     3216        if (!object) {
     3217            exit(EXIT_FAILURE);
     3218        }
     3219
     3220        md = pstampJobMetadataFromObject(object);
    11083221        if (!md) {
    11093222            exit(EXIT_FAILURE);
     
    11223235            exit(EXIT_FAILURE);
    11233236        }
    1124         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    1125             psFree(md);
    1126             exit(EXIT_FAILURE);
    1127         }
    1128         if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
    1129             psFree(md);
    1130             exit(EXIT_FAILURE);
    1131         }
    1132         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    1133             psFree(md);
    1134             exit(EXIT_FAILURE);
    1135         }
    1136         if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
    1137             psFree(md);
    1138             exit(EXIT_FAILURE);
    1139         }
    1140         if (strncmp(psMetadataLookupPtr(&status, md, "expgroup"), "a string", MAX_STRING_LENGTH)) {
    1141             psFree(md);
    1142             exit(EXIT_FAILURE);
    1143         }
    1144         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    1145             psFree(md);
    1146             exit(EXIT_FAILURE);
    1147         }
    1148         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1149             psFree(md);
    1150             exit(EXIT_FAILURE);
    1151         }
    1152         if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
    1153             psFree(md);
    1154             exit(EXIT_FAILURE);
    1155         }
    1156 
    1157         psFree(md);
    1158     }
    1159 
    1160     {
    1161         psMetadata      *md;
    1162         camProcessedExpRow *object;
    1163         bool            status;
    1164 
    1165         object = camProcessedExpRowAlloc(-64, -64, "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, -32, -32, -32, -32, "a string", -16);
    1166         if (!object) {
    1167             exit(EXIT_FAILURE);
    1168         }
    1169 
    1170         md = camProcessedExpMetadataFromObject(object);
    1171         if (!md) {
    1172             exit(EXIT_FAILURE);
    1173         }
    1174 
    1175         psFree(object);
    1176 
    1177             psFree(md);
    1178             exit(EXIT_FAILURE);
    1179         }
     3237        if (!psMetadataLookupS32(&status, md, "result") == -32) {
    11803238            psFree(md);
    11813239            exit(EXIT_FAILURE);
     
    11853243            exit(EXIT_FAILURE);
    11863244        }
    1187         if (!psMetadataLookupF32(&status, md, "bg") == 32.32) {
    1188             psFree(md);
    1189             exit(EXIT_FAILURE);
    1190         }
    1191         if (!psMetadataLookupF32(&status, md, "bg_stdev") == 32.32) {
    1192             psFree(md);
    1193             exit(EXIT_FAILURE);
    1194         }
    1195         if (!psMetadataLookupF32(&status, md, "bg_mean_stdev") == 32.32) {
    1196             psFree(md);
    1197             exit(EXIT_FAILURE);
    1198         }
    1199         if (!psMetadataLookupF32(&status, md, "sigma_ra") == 32.32) {
    1200             psFree(md);
    1201             exit(EXIT_FAILURE);
    1202         }
    1203         if (!psMetadataLookupF32(&status, md, "sigma_dec") == 32.32) {
    1204             psFree(md);
    1205             exit(EXIT_FAILURE);
    1206         }
    1207         if (!psMetadataLookupF32(&status, md, "zp_mean") == 32.32) {
    1208             psFree(md);
    1209             exit(EXIT_FAILURE);
    1210         }
    1211         if (!psMetadataLookupF32(&status, md, "zp_stdev") == 32.32) {
    1212             psFree(md);
    1213             exit(EXIT_FAILURE);
    1214         }
    1215         if (!psMetadataLookupF32(&status, md, "fwhm") == 32.32) {
    1216             psFree(md);
    1217             exit(EXIT_FAILURE);
    1218         }
    1219         if (!psMetadataLookupF32(&status, md, "fwhm_range") == 32.32) {
    1220             psFree(md);
    1221             exit(EXIT_FAILURE);
    1222         }
    1223         if (!psMetadataLookupS32(&status, md, "n_stars") == -32) {
    1224             psFree(md);
    1225             exit(EXIT_FAILURE);
    1226         }
    1227         if (!psMetadataLookupS32(&status, md, "n_extended") == -32) {
    1228             psFree(md);
    1229             exit(EXIT_FAILURE);
    1230         }
    1231         if (!psMetadataLookupS32(&status, md, "n_cr") == -32) {
    1232             psFree(md);
    1233             exit(EXIT_FAILURE);
    1234         }
    1235         if (!psMetadataLookupS32(&status, md, "n_astrom") == -32) {
    1236             psFree(md);
    1237             exit(EXIT_FAILURE);
    1238         }
    1239         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    1240             psFree(md);
    1241             exit(EXIT_FAILURE);
    1242         }
    1243             psFree(md);
    1244             exit(EXIT_FAILURE);
    1245         }
    1246 
    1247         psFree(md);
    1248     }
    1249 
    1250     {
    1251         psMetadata      *md;
    1252         camMaskRow      *object;
    1253         bool            status;
    1254 
    1255         object = camMaskRowAlloc("a string");
    1256         if (!object) {
    1257             exit(EXIT_FAILURE);
    1258         }
    1259 
    1260         md = camMaskMetadataFromObject(object);
    1261         if (!md) {
    1262             exit(EXIT_FAILURE);
    1263         }
    1264 
    1265         psFree(object);
    1266 
    1267         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    1268             psFree(md);
    1269             exit(EXIT_FAILURE);
    1270         }
    1271 
    1272         psFree(md);
    1273     }
    1274 
    1275     {
    1276         psMetadata      *md;
    1277         warpRunRow      *object;
    1278         bool            status;
    1279 
    1280         object = warpRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
    1281         if (!object) {
    1282             exit(EXIT_FAILURE);
    1283         }
    1284 
    1285         md = warpRunMetadataFromObject(object);
    1286         if (!md) {
    1287             exit(EXIT_FAILURE);
    1288         }
    1289 
    1290         psFree(object);
    1291 
    1292             psFree(md);
    1293             exit(EXIT_FAILURE);
    1294         }
    1295         if (strncmp(psMetadataLookupPtr(&status, md, "mode"), "a string", MAX_STRING_LENGTH)) {
    1296             psFree(md);
    1297             exit(EXIT_FAILURE);
    1298         }
    1299         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    1300             psFree(md);
    1301             exit(EXIT_FAILURE);
    1302         }
    1303         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    1304             psFree(md);
    1305             exit(EXIT_FAILURE);
    1306         }
    1307         if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
    1308             psFree(md);
    1309             exit(EXIT_FAILURE);
    1310         }
    1311         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    1312             psFree(md);
    1313             exit(EXIT_FAILURE);
    1314         }
    1315         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1316             psFree(md);
    1317             exit(EXIT_FAILURE);
    1318         }
    1319         if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
    1320             psFree(md);
    1321             exit(EXIT_FAILURE);
    1322         }
    1323             psFree(md);
    1324             exit(EXIT_FAILURE);
    1325         }
    1326 
    1327         psFree(md);
    1328     }
    1329 
    1330     {
    1331         psMetadata      *md;
    1332         warpInputExpRow *object;
    1333         bool            status;
    1334 
    1335         object = warpInputExpRowAlloc(-64, -64, true);
    1336         if (!object) {
    1337             exit(EXIT_FAILURE);
    1338         }
    1339 
    1340         md = warpInputExpMetadataFromObject(object);
    1341         if (!md) {
    1342             exit(EXIT_FAILURE);
    1343         }
    1344 
    1345         psFree(object);
    1346 
    1347             psFree(md);
    1348             exit(EXIT_FAILURE);
    1349         }
    1350             psFree(md);
    1351             exit(EXIT_FAILURE);
    1352         }
    1353         if (!psMetadataLookupBool(&status, md, "magiced") == true) {
    1354             psFree(md);
    1355             exit(EXIT_FAILURE);
    1356         }
    1357 
    1358         psFree(md);
    1359     }
    1360 
    1361     {
    1362         psMetadata      *md;
    1363         warpSkyCellMapRow *object;
    1364         bool            status;
    1365 
    1366         object = warpSkyCellMapRowAlloc(-64, "a string", "a string", -64, "a string", -16);
    1367         if (!object) {
    1368             exit(EXIT_FAILURE);
    1369         }
    1370 
    1371         md = warpSkyCellMapMetadataFromObject(object);
    1372         if (!md) {
    1373             exit(EXIT_FAILURE);
    1374         }
    1375 
    1376         psFree(object);
    1377 
    1378             psFree(md);
    1379             exit(EXIT_FAILURE);
    1380         }
    1381         if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
    1382             psFree(md);
    1383             exit(EXIT_FAILURE);
    1384         }
    1385         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1386             psFree(md);
    1387             exit(EXIT_FAILURE);
    1388         }
    1389             psFree(md);
    1390             exit(EXIT_FAILURE);
    1391         }
    1392         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    1393             psFree(md);
    1394             exit(EXIT_FAILURE);
    1395         }
    1396             psFree(md);
    1397             exit(EXIT_FAILURE);
    1398         }
    1399 
    1400         psFree(md);
    1401     }
    1402 
    1403     {
    1404         psMetadata      *md;
    1405         warpSkyfileRow  *object;
    1406         bool            status;
    1407 
    1408         object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, true, -16);
    1409         if (!object) {
    1410             exit(EXIT_FAILURE);
    1411         }
    1412 
    1413         md = warpSkyfileMetadataFromObject(object);
    1414         if (!md) {
    1415             exit(EXIT_FAILURE);
    1416         }
    1417 
    1418         psFree(object);
    1419 
    1420             psFree(md);
    1421             exit(EXIT_FAILURE);
    1422         }
    1423         if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
    1424             psFree(md);
    1425             exit(EXIT_FAILURE);
    1426         }
    1427         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1428             psFree(md);
    1429             exit(EXIT_FAILURE);
    1430         }
    1431         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1432             psFree(md);
    1433             exit(EXIT_FAILURE);
    1434         }
    1435         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    1436             psFree(md);
    1437             exit(EXIT_FAILURE);
    1438         }
    1439         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    1440             psFree(md);
    1441             exit(EXIT_FAILURE);
    1442         }
    1443         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    1444             psFree(md);
    1445             exit(EXIT_FAILURE);
    1446         }
    1447         if (!psMetadataLookupF64(&status, md, "good_frac") == 64.64) {
    1448             psFree(md);
    1449             exit(EXIT_FAILURE);
    1450         }
    1451         if (!psMetadataLookupBool(&status, md, "ignored") == true) {
    1452             psFree(md);
    1453             exit(EXIT_FAILURE);
    1454         }
    1455             psFree(md);
    1456             exit(EXIT_FAILURE);
    1457         }
    1458 
    1459         psFree(md);
    1460     }
    1461 
    1462     {
    1463         psMetadata      *md;
    1464         diffRunRow      *object;
    1465         bool            status;
    1466 
    1467         object = diffRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string");
    1468         if (!object) {
    1469             exit(EXIT_FAILURE);
    1470         }
    1471 
    1472         md = diffRunMetadataFromObject(object);
    1473         if (!md) {
    1474             exit(EXIT_FAILURE);
    1475         }
    1476 
    1477         psFree(object);
    1478 
    1479             psFree(md);
    1480             exit(EXIT_FAILURE);
    1481         }
    1482         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    1483             psFree(md);
    1484             exit(EXIT_FAILURE);
    1485         }
    1486         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    1487             psFree(md);
    1488             exit(EXIT_FAILURE);
    1489         }
    1490         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    1491             psFree(md);
    1492             exit(EXIT_FAILURE);
    1493         }
    1494             psFree(md);
    1495             exit(EXIT_FAILURE);
    1496         }
    1497         if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
    1498             psFree(md);
    1499             exit(EXIT_FAILURE);
    1500         }
    1501         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1502             psFree(md);
    1503             exit(EXIT_FAILURE);
    1504         }
    1505 
    1506         psFree(md);
    1507     }
    1508 
    1509     {
    1510         psMetadata      *md;
    1511         diffInputSkyfileRow *object;
    1512         bool            status;
    1513 
    1514         object = diffInputSkyfileRowAlloc(-64, true, -64, -64, "a string", "a string", "a string");
    1515         if (!object) {
    1516             exit(EXIT_FAILURE);
    1517         }
    1518 
    1519         md = diffInputSkyfileMetadataFromObject(object);
    1520         if (!md) {
    1521             exit(EXIT_FAILURE);
    1522         }
    1523 
    1524         psFree(object);
    1525 
    1526             psFree(md);
    1527             exit(EXIT_FAILURE);
    1528         }
    1529         if (!psMetadataLookupBool(&status, md, "template") == true) {
    1530             psFree(md);
    1531             exit(EXIT_FAILURE);
    1532         }
    1533             psFree(md);
    1534             exit(EXIT_FAILURE);
    1535         }
    1536             psFree(md);
    1537             exit(EXIT_FAILURE);
    1538         }
    1539         if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
    1540             psFree(md);
    1541             exit(EXIT_FAILURE);
    1542         }
    1543         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1544             psFree(md);
    1545             exit(EXIT_FAILURE);
    1546         }
    1547         if (strncmp(psMetadataLookupPtr(&status, md, "kind"), "a string", MAX_STRING_LENGTH)) {
    1548             psFree(md);
    1549             exit(EXIT_FAILURE);
    1550         }
    1551 
    1552         psFree(md);
    1553     }
    1554 
    1555     {
    1556         psMetadata      *md;
    1557         diffSkyfileRow  *object;
    1558         bool            status;
    1559 
    1560         object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 64.64, -16);
    1561         if (!object) {
    1562             exit(EXIT_FAILURE);
    1563         }
    1564 
    1565         md = diffSkyfileMetadataFromObject(object);
    1566         if (!md) {
    1567             exit(EXIT_FAILURE);
    1568         }
    1569 
    1570         psFree(object);
    1571 
    1572             psFree(md);
    1573             exit(EXIT_FAILURE);
    1574         }
    1575         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1576             psFree(md);
    1577             exit(EXIT_FAILURE);
    1578         }
    1579         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    1580             psFree(md);
    1581             exit(EXIT_FAILURE);
    1582         }
    1583         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    1584             psFree(md);
    1585             exit(EXIT_FAILURE);
    1586         }
    1587         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    1588             psFree(md);
    1589             exit(EXIT_FAILURE);
    1590         }
    1591         if (!psMetadataLookupF64(&status, md, "good_frac") == 64.64) {
    1592             psFree(md);
    1593             exit(EXIT_FAILURE);
    1594         }
    1595             psFree(md);
    1596             exit(EXIT_FAILURE);
    1597         }
    1598 
    1599         psFree(md);
    1600     }
    1601 
    1602     {
    1603         psMetadata      *md;
    1604         stackRunRow     *object;
    1605         bool            status;
    1606 
    1607         object = stackRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string");
    1608         if (!object) {
    1609             exit(EXIT_FAILURE);
    1610         }
    1611 
    1612         md = stackRunMetadataFromObject(object);
    1613         if (!md) {
    1614             exit(EXIT_FAILURE);
    1615         }
    1616 
    1617         psFree(object);
    1618 
    1619             psFree(md);
    1620             exit(EXIT_FAILURE);
    1621         }
    1622         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    1623             psFree(md);
    1624             exit(EXIT_FAILURE);
    1625         }
    1626         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    1627             psFree(md);
    1628             exit(EXIT_FAILURE);
    1629         }
    1630         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    1631             psFree(md);
    1632             exit(EXIT_FAILURE);
    1633         }
    1634             psFree(md);
    1635             exit(EXIT_FAILURE);
    1636         }
    1637         if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
    1638             psFree(md);
    1639             exit(EXIT_FAILURE);
    1640         }
    1641         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1642             psFree(md);
    1643             exit(EXIT_FAILURE);
    1644         }
    1645 
    1646         psFree(md);
    1647     }
    1648 
    1649     {
    1650         psMetadata      *md;
    1651         stackInputSkyfileRow *object;
    1652         bool            status;
    1653 
    1654         object = stackInputSkyfileRowAlloc(-64, -64);
    1655         if (!object) {
    1656             exit(EXIT_FAILURE);
    1657         }
    1658 
    1659         md = stackInputSkyfileMetadataFromObject(object);
    1660         if (!md) {
    1661             exit(EXIT_FAILURE);
    1662         }
    1663 
    1664         psFree(object);
    1665 
    1666             psFree(md);
    1667             exit(EXIT_FAILURE);
    1668         }
    1669             psFree(md);
    1670             exit(EXIT_FAILURE);
    1671         }
    1672 
    1673         psFree(md);
    1674     }
    1675 
    1676     {
    1677         psMetadata      *md;
    1678         stackSumSkyfileRow *object;
    1679         bool            status;
    1680 
    1681         object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 64.64, -16);
    1682         if (!object) {
    1683             exit(EXIT_FAILURE);
    1684         }
    1685 
    1686         md = stackSumSkyfileMetadataFromObject(object);
    1687         if (!md) {
    1688             exit(EXIT_FAILURE);
    1689         }
    1690 
    1691         psFree(object);
    1692 
    1693             psFree(md);
    1694             exit(EXIT_FAILURE);
    1695         }
    1696         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1697             psFree(md);
    1698             exit(EXIT_FAILURE);
    1699         }
    1700         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    1701             psFree(md);
    1702             exit(EXIT_FAILURE);
    1703         }
    1704         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    1705             psFree(md);
    1706             exit(EXIT_FAILURE);
    1707         }
    1708         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    1709             psFree(md);
    1710             exit(EXIT_FAILURE);
    1711         }
    1712         if (!psMetadataLookupF64(&status, md, "good_frac") == 64.64) {
    1713             psFree(md);
    1714             exit(EXIT_FAILURE);
    1715         }
    1716             psFree(md);
    1717             exit(EXIT_FAILURE);
    1718         }
    1719 
    1720         psFree(md);
    1721     }
    1722 
    1723     {
    1724         psMetadata      *md;
    1725         detRunRow       *object;
    1726         bool            status;
    1727 
    1728         object = detRunRowAlloc(-64, -32, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 64.64, 64.64, "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", 32.32, 32.32, "a string", -32);
    1729         if (!object) {
    1730             exit(EXIT_FAILURE);
    1731         }
    1732 
    1733         md = detRunMetadataFromObject(object);
    1734         if (!md) {
    1735             exit(EXIT_FAILURE);
    1736         }
    1737 
    1738         psFree(object);
    1739 
    1740             psFree(md);
    1741             exit(EXIT_FAILURE);
    1742         }
    1743         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    1744             psFree(md);
    1745             exit(EXIT_FAILURE);
    1746         }
    1747         if (strncmp(psMetadataLookupPtr(&status, md, "det_type"), "a string", MAX_STRING_LENGTH)) {
    1748             psFree(md);
    1749             exit(EXIT_FAILURE);
    1750         }
    1751         if (strncmp(psMetadataLookupPtr(&status, md, "mode"), "a string", MAX_STRING_LENGTH)) {
    1752             psFree(md);
    1753             exit(EXIT_FAILURE);
    1754         }
    1755         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    1756             psFree(md);
    1757             exit(EXIT_FAILURE);
    1758         }
    1759         if (strncmp(psMetadataLookupPtr(&status, md, "filelevel"), "a string", MAX_STRING_LENGTH)) {
    1760             psFree(md);
    1761             exit(EXIT_FAILURE);
    1762         }
    1763         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    1764             psFree(md);
    1765             exit(EXIT_FAILURE);
    1766         }
    1767         if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) {
    1768             psFree(md);
    1769             exit(EXIT_FAILURE);
    1770         }
    1771         if (strncmp(psMetadataLookupPtr(&status, md, "telescope"), "a string", MAX_STRING_LENGTH)) {
    1772             psFree(md);
    1773             exit(EXIT_FAILURE);
    1774         }
    1775         if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
    1776             psFree(md);
    1777             exit(EXIT_FAILURE);
    1778         }
    1779         if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
    1780             psFree(md);
    1781             exit(EXIT_FAILURE);
    1782         }
    1783         if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
    1784             psFree(md);
    1785             exit(EXIT_FAILURE);
    1786         }
    1787         if (!psMetadataLookupF32(&status, md, "airmass_min") == 32.32) {
    1788             psFree(md);
    1789             exit(EXIT_FAILURE);
    1790         }
    1791         if (!psMetadataLookupF32(&status, md, "airmass_max") == 32.32) {
    1792             psFree(md);
    1793             exit(EXIT_FAILURE);
    1794         }
    1795         if (!psMetadataLookupF32(&status, md, "exp_time_min") == 32.32) {
    1796             psFree(md);
    1797             exit(EXIT_FAILURE);
    1798         }
    1799         if (!psMetadataLookupF32(&status, md, "exp_time_max") == 32.32) {
    1800             psFree(md);
    1801             exit(EXIT_FAILURE);
    1802         }
    1803         if (!psMetadataLookupF32(&status, md, "ccd_temp_min") == 32.32) {
    1804             psFree(md);
    1805             exit(EXIT_FAILURE);
    1806         }
    1807         if (!psMetadataLookupF32(&status, md, "ccd_temp_max") == 32.32) {
    1808             psFree(md);
    1809             exit(EXIT_FAILURE);
    1810         }
    1811         if (!psMetadataLookupF64(&status, md, "posang_min") == 64.64) {
    1812             psFree(md);
    1813             exit(EXIT_FAILURE);
    1814         }
    1815         if (!psMetadataLookupF64(&status, md, "posang_max") == 64.64) {
    1816             psFree(md);
    1817             exit(EXIT_FAILURE);
    1818         }
    1819             psFree(md);
    1820             exit(EXIT_FAILURE);
    1821         }
    1822             psFree(md);
    1823             exit(EXIT_FAILURE);
    1824         }
    1825             psFree(md);
    1826             exit(EXIT_FAILURE);
    1827         }
    1828             psFree(md);
    1829             exit(EXIT_FAILURE);
    1830         }
    1831             psFree(md);
    1832             exit(EXIT_FAILURE);
    1833         }
    1834         if (!psMetadataLookupF32(&status, md, "solang_min") == 32.32) {
    1835             psFree(md);
    1836             exit(EXIT_FAILURE);
    1837         }
    1838         if (!psMetadataLookupF32(&status, md, "solang_max") == 32.32) {
    1839             psFree(md);
    1840             exit(EXIT_FAILURE);
    1841         }
    1842         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    1843             psFree(md);
    1844             exit(EXIT_FAILURE);
    1845         }
    1846         if (!psMetadataLookupS32(&status, md, "parent") == -32) {
    1847             psFree(md);
    1848             exit(EXIT_FAILURE);
    1849         }
    1850 
    1851         psFree(md);
    1852     }
    1853 
    1854     {
    1855         psMetadata      *md;
    1856         detInputExpRow  *object;
    1857         bool            status;
    1858 
    1859         object = detInputExpRowAlloc(-64, -32, -64, true);
    1860         if (!object) {
    1861             exit(EXIT_FAILURE);
    1862         }
    1863 
    1864         md = detInputExpMetadataFromObject(object);
    1865         if (!md) {
    1866             exit(EXIT_FAILURE);
    1867         }
    1868 
    1869         psFree(object);
    1870 
    1871             psFree(md);
    1872             exit(EXIT_FAILURE);
    1873         }
    1874         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    1875             psFree(md);
    1876             exit(EXIT_FAILURE);
    1877         }
    1878             psFree(md);
    1879             exit(EXIT_FAILURE);
    1880         }
    1881         if (!psMetadataLookupBool(&status, md, "include") == true) {
    1882             psFree(md);
    1883             exit(EXIT_FAILURE);
    1884         }
    1885 
    1886         psFree(md);
    1887     }
    1888 
    1889     {
    1890         psMetadata      *md;
    1891         detProcessedImfileRow *object;
    1892         bool            status;
    1893 
    1894         object = detProcessedImfileRowAlloc(-64, -64, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
    1895         if (!object) {
    1896             exit(EXIT_FAILURE);
    1897         }
    1898 
    1899         md = detProcessedImfileMetadataFromObject(object);
    1900         if (!md) {
    1901             exit(EXIT_FAILURE);
    1902         }
    1903 
    1904         psFree(object);
    1905 
    1906             psFree(md);
    1907             exit(EXIT_FAILURE);
    1908         }
    1909             psFree(md);
    1910             exit(EXIT_FAILURE);
    1911         }
    1912         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    1913             psFree(md);
    1914             exit(EXIT_FAILURE);
    1915         }
    1916         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1917             psFree(md);
    1918             exit(EXIT_FAILURE);
    1919         }
    1920         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    1921             psFree(md);
    1922             exit(EXIT_FAILURE);
    1923         }
    1924         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    1925             psFree(md);
    1926             exit(EXIT_FAILURE);
    1927         }
    1928         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    1929             psFree(md);
    1930             exit(EXIT_FAILURE);
    1931         }
    1932         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    1933             psFree(md);
    1934             exit(EXIT_FAILURE);
    1935         }
    1936         if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
    1937             psFree(md);
    1938             exit(EXIT_FAILURE);
    1939         }
    1940         if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
    1941             psFree(md);
    1942             exit(EXIT_FAILURE);
    1943         }
    1944         if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
    1945             psFree(md);
    1946             exit(EXIT_FAILURE);
    1947         }
    1948         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    1949             psFree(md);
    1950             exit(EXIT_FAILURE);
    1951         }
    1952         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    1953             psFree(md);
    1954             exit(EXIT_FAILURE);
    1955         }
    1956         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    1957             psFree(md);
    1958             exit(EXIT_FAILURE);
    1959         }
    1960         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    1961             psFree(md);
    1962             exit(EXIT_FAILURE);
    1963         }
    1964         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    1965             psFree(md);
    1966             exit(EXIT_FAILURE);
    1967         }
    1968         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    1969             psFree(md);
    1970             exit(EXIT_FAILURE);
    1971         }
    1972             psFree(md);
    1973             exit(EXIT_FAILURE);
    1974         }
    1975 
    1976         psFree(md);
    1977     }
    1978 
    1979     {
    1980         psMetadata      *md;
    1981         detProcessedExpRow *object;
    1982         bool            status;
    1983 
    1984         object = detProcessedExpRowAlloc(-64, -64, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
    1985         if (!object) {
    1986             exit(EXIT_FAILURE);
    1987         }
    1988 
    1989         md = detProcessedExpMetadataFromObject(object);
    1990         if (!md) {
    1991             exit(EXIT_FAILURE);
    1992         }
    1993 
    1994         psFree(object);
    1995 
    1996             psFree(md);
    1997             exit(EXIT_FAILURE);
    1998         }
    1999             psFree(md);
    2000             exit(EXIT_FAILURE);
    2001         }
    2002         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2003             psFree(md);
    2004             exit(EXIT_FAILURE);
    2005         }
    2006         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2007             psFree(md);
    2008             exit(EXIT_FAILURE);
    2009         }
    2010         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2011             psFree(md);
    2012             exit(EXIT_FAILURE);
    2013         }
    2014         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2015             psFree(md);
    2016             exit(EXIT_FAILURE);
    2017         }
    2018         if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
    2019             psFree(md);
    2020             exit(EXIT_FAILURE);
    2021         }
    2022         if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
    2023             psFree(md);
    2024             exit(EXIT_FAILURE);
    2025         }
    2026         if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
    2027             psFree(md);
    2028             exit(EXIT_FAILURE);
    2029         }
    2030         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2031             psFree(md);
    2032             exit(EXIT_FAILURE);
    2033         }
    2034         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2035             psFree(md);
    2036             exit(EXIT_FAILURE);
    2037         }
    2038         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2039             psFree(md);
    2040             exit(EXIT_FAILURE);
    2041         }
    2042         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2043             psFree(md);
    2044             exit(EXIT_FAILURE);
    2045         }
    2046         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2047             psFree(md);
    2048             exit(EXIT_FAILURE);
    2049         }
    2050         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2051             psFree(md);
    2052             exit(EXIT_FAILURE);
    2053         }
    2054             psFree(md);
    2055             exit(EXIT_FAILURE);
    2056         }
    2057 
    2058         psFree(md);
    2059     }
    2060 
    2061     {
    2062         psMetadata      *md;
    2063         detStackedImfileRow *object;
    2064         bool            status;
    2065 
    2066         object = detStackedImfileRowAlloc(-64, -32, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, -16);
    2067         if (!object) {
    2068             exit(EXIT_FAILURE);
    2069         }
    2070 
    2071         md = detStackedImfileMetadataFromObject(object);
    2072         if (!md) {
    2073             exit(EXIT_FAILURE);
    2074         }
    2075 
    2076         psFree(object);
    2077 
    2078             psFree(md);
    2079             exit(EXIT_FAILURE);
    2080         }
    2081         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2082             psFree(md);
    2083             exit(EXIT_FAILURE);
    2084         }
    2085         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2086             psFree(md);
    2087             exit(EXIT_FAILURE);
    2088         }
    2089         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2090             psFree(md);
    2091             exit(EXIT_FAILURE);
    2092         }
    2093         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2094             psFree(md);
    2095             exit(EXIT_FAILURE);
    2096         }
    2097         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2098             psFree(md);
    2099             exit(EXIT_FAILURE);
    2100         }
    2101         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2102             psFree(md);
    2103             exit(EXIT_FAILURE);
    2104         }
    2105         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2106             psFree(md);
    2107             exit(EXIT_FAILURE);
    2108         }
    2109         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2110             psFree(md);
    2111             exit(EXIT_FAILURE);
    2112         }
    2113         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2114             psFree(md);
    2115             exit(EXIT_FAILURE);
    2116         }
    2117         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2118             psFree(md);
    2119             exit(EXIT_FAILURE);
    2120         }
    2121         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2122             psFree(md);
    2123             exit(EXIT_FAILURE);
    2124         }
    2125         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2126             psFree(md);
    2127             exit(EXIT_FAILURE);
    2128         }
    2129             psFree(md);
    2130             exit(EXIT_FAILURE);
    2131         }
    2132 
    2133         psFree(md);
    2134     }
    2135 
    2136     {
    2137         psMetadata      *md;
    2138         detNormalizedStatImfileRow *object;
    2139         bool            status;
    2140 
    2141         object = detNormalizedStatImfileRowAlloc(-64, -32, "a string", 32.32, -16);
    2142         if (!object) {
    2143             exit(EXIT_FAILURE);
    2144         }
    2145 
    2146         md = detNormalizedStatImfileMetadataFromObject(object);
    2147         if (!md) {
    2148             exit(EXIT_FAILURE);
    2149         }
    2150 
    2151         psFree(object);
    2152 
    2153             psFree(md);
    2154             exit(EXIT_FAILURE);
    2155         }
    2156         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2157             psFree(md);
    2158             exit(EXIT_FAILURE);
    2159         }
    2160         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2161             psFree(md);
    2162             exit(EXIT_FAILURE);
    2163         }
    2164         if (!psMetadataLookupF32(&status, md, "norm") == 32.32) {
    2165             psFree(md);
    2166             exit(EXIT_FAILURE);
    2167         }
    2168             psFree(md);
    2169             exit(EXIT_FAILURE);
    2170         }
    2171 
    2172         psFree(md);
    2173     }
    2174 
    2175     {
    2176         psMetadata      *md;
    2177         detNormalizedImfileRow *object;
    2178         bool            status;
    2179 
    2180         object = detNormalizedImfileRowAlloc(-64, -32, "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
    2181         if (!object) {
    2182             exit(EXIT_FAILURE);
    2183         }
    2184 
    2185         md = detNormalizedImfileMetadataFromObject(object);
    2186         if (!md) {
    2187             exit(EXIT_FAILURE);
    2188         }
    2189 
    2190         psFree(object);
    2191 
    2192             psFree(md);
    2193             exit(EXIT_FAILURE);
    2194         }
    2195         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2196             psFree(md);
    2197             exit(EXIT_FAILURE);
    2198         }
    2199         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2200             psFree(md);
    2201             exit(EXIT_FAILURE);
    2202         }
    2203         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2204             psFree(md);
    2205             exit(EXIT_FAILURE);
    2206         }
    2207         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2208             psFree(md);
    2209             exit(EXIT_FAILURE);
    2210         }
    2211         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2212             psFree(md);
    2213             exit(EXIT_FAILURE);
    2214         }
    2215         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2216             psFree(md);
    2217             exit(EXIT_FAILURE);
    2218         }
    2219         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2220             psFree(md);
    2221             exit(EXIT_FAILURE);
    2222         }
    2223         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2224             psFree(md);
    2225             exit(EXIT_FAILURE);
    2226         }
    2227         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2228             psFree(md);
    2229             exit(EXIT_FAILURE);
    2230         }
    2231         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2232             psFree(md);
    2233             exit(EXIT_FAILURE);
    2234         }
    2235         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2236             psFree(md);
    2237             exit(EXIT_FAILURE);
    2238         }
    2239         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2240             psFree(md);
    2241             exit(EXIT_FAILURE);
    2242         }
    2243             psFree(md);
    2244             exit(EXIT_FAILURE);
    2245         }
    2246 
    2247         psFree(md);
    2248     }
    2249 
    2250     {
    2251         psMetadata      *md;
    2252         detNormalizedExpRow *object;
    2253         bool            status;
    2254 
    2255         object = detNormalizedExpRowAlloc(-64, -32, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
    2256         if (!object) {
    2257             exit(EXIT_FAILURE);
    2258         }
    2259 
    2260         md = detNormalizedExpMetadataFromObject(object);
    2261         if (!md) {
    2262             exit(EXIT_FAILURE);
    2263         }
    2264 
    2265         psFree(object);
    2266 
    2267             psFree(md);
    2268             exit(EXIT_FAILURE);
    2269         }
    2270         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2271             psFree(md);
    2272             exit(EXIT_FAILURE);
    2273         }
    2274         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2275             psFree(md);
    2276             exit(EXIT_FAILURE);
    2277         }
    2278         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2279             psFree(md);
    2280             exit(EXIT_FAILURE);
    2281         }
    2282         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2283             psFree(md);
    2284             exit(EXIT_FAILURE);
    2285         }
    2286         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2287             psFree(md);
    2288             exit(EXIT_FAILURE);
    2289         }
    2290         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2291             psFree(md);
    2292             exit(EXIT_FAILURE);
    2293         }
    2294         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2295             psFree(md);
    2296             exit(EXIT_FAILURE);
    2297         }
    2298         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2299             psFree(md);
    2300             exit(EXIT_FAILURE);
    2301         }
    2302         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2303             psFree(md);
    2304             exit(EXIT_FAILURE);
    2305         }
    2306         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2307             psFree(md);
    2308             exit(EXIT_FAILURE);
    2309         }
    2310         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2311             psFree(md);
    2312             exit(EXIT_FAILURE);
    2313         }
    2314             psFree(md);
    2315             exit(EXIT_FAILURE);
    2316         }
    2317 
    2318         psFree(md);
    2319     }
    2320 
    2321     {
    2322         psMetadata      *md;
    2323         detResidImfileRow *object;
    2324         bool            status;
    2325 
    2326         object = detResidImfileRowAlloc(-64, -32, -64, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
    2327         if (!object) {
    2328             exit(EXIT_FAILURE);
    2329         }
    2330 
    2331         md = detResidImfileMetadataFromObject(object);
    2332         if (!md) {
    2333             exit(EXIT_FAILURE);
    2334         }
    2335 
    2336         psFree(object);
    2337 
    2338             psFree(md);
    2339             exit(EXIT_FAILURE);
    2340         }
    2341         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2342             psFree(md);
    2343             exit(EXIT_FAILURE);
    2344         }
    2345             psFree(md);
    2346             exit(EXIT_FAILURE);
    2347         }
    2348         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2349             psFree(md);
    2350             exit(EXIT_FAILURE);
    2351         }
    2352         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2353             psFree(md);
    2354             exit(EXIT_FAILURE);
    2355         }
    2356         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2357             psFree(md);
    2358             exit(EXIT_FAILURE);
    2359         }
    2360         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2361             psFree(md);
    2362             exit(EXIT_FAILURE);
    2363         }
    2364         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2365             psFree(md);
    2366             exit(EXIT_FAILURE);
    2367         }
    2368         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2369             psFree(md);
    2370             exit(EXIT_FAILURE);
    2371         }
    2372         if (!psMetadataLookupF64(&status, md, "bg_skewness") == 64.64) {
    2373             psFree(md);
    2374             exit(EXIT_FAILURE);
    2375         }
    2376         if (!psMetadataLookupF64(&status, md, "bg_kurtosis") == 64.64) {
    2377             psFree(md);
    2378             exit(EXIT_FAILURE);
    2379         }
    2380         if (!psMetadataLookupF64(&status, md, "bin_stdev") == 64.64) {
    2381             psFree(md);
    2382             exit(EXIT_FAILURE);
    2383         }
    2384         if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
    2385             psFree(md);
    2386             exit(EXIT_FAILURE);
    2387         }
    2388         if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
    2389             psFree(md);
    2390             exit(EXIT_FAILURE);
    2391         }
    2392         if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
    2393             psFree(md);
    2394             exit(EXIT_FAILURE);
    2395         }
    2396         if (!psMetadataLookupF64(&status, md, "fringe_resid_0") == 64.64) {
    2397             psFree(md);
    2398             exit(EXIT_FAILURE);
    2399         }
    2400         if (!psMetadataLookupF64(&status, md, "fringe_resid_1") == 64.64) {
    2401             psFree(md);
    2402             exit(EXIT_FAILURE);
    2403         }
    2404         if (!psMetadataLookupF64(&status, md, "fringe_resid_2") == 64.64) {
    2405             psFree(md);
    2406             exit(EXIT_FAILURE);
    2407         }
    2408         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2409             psFree(md);
    2410             exit(EXIT_FAILURE);
    2411         }
    2412         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2413             psFree(md);
    2414             exit(EXIT_FAILURE);
    2415         }
    2416         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2417             psFree(md);
    2418             exit(EXIT_FAILURE);
    2419         }
    2420         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2421             psFree(md);
    2422             exit(EXIT_FAILURE);
    2423         }
    2424         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2425             psFree(md);
    2426             exit(EXIT_FAILURE);
    2427         }
    2428         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2429             psFree(md);
    2430             exit(EXIT_FAILURE);
    2431         }
    2432             psFree(md);
    2433             exit(EXIT_FAILURE);
    2434         }
    2435 
    2436         psFree(md);
    2437     }
    2438 
    2439     {
    2440         psMetadata      *md;
    2441         detResidExpRow  *object;
    2442         bool            status;
    2443 
    2444         object = detResidExpRowAlloc(-64, -32, -64, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", true, -16);
    2445         if (!object) {
    2446             exit(EXIT_FAILURE);
    2447         }
    2448 
    2449         md = detResidExpMetadataFromObject(object);
    2450         if (!md) {
    2451             exit(EXIT_FAILURE);
    2452         }
    2453 
    2454         psFree(object);
    2455 
    2456             psFree(md);
    2457             exit(EXIT_FAILURE);
    2458         }
    2459         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2460             psFree(md);
    2461             exit(EXIT_FAILURE);
    2462         }
    2463             psFree(md);
    2464             exit(EXIT_FAILURE);
    2465         }
    2466         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2467             psFree(md);
    2468             exit(EXIT_FAILURE);
    2469         }
    2470         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2471             psFree(md);
    2472             exit(EXIT_FAILURE);
    2473         }
    2474         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2475             psFree(md);
    2476             exit(EXIT_FAILURE);
    2477         }
    2478         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2479             psFree(md);
    2480             exit(EXIT_FAILURE);
    2481         }
    2482         if (!psMetadataLookupF64(&status, md, "bg_skewness") == 64.64) {
    2483             psFree(md);
    2484             exit(EXIT_FAILURE);
    2485         }
    2486         if (!psMetadataLookupF64(&status, md, "bg_kurtosis") == 64.64) {
    2487             psFree(md);
    2488             exit(EXIT_FAILURE);
    2489         }
    2490         if (!psMetadataLookupF64(&status, md, "bin_stdev") == 64.64) {
    2491             psFree(md);
    2492             exit(EXIT_FAILURE);
    2493         }
    2494         if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
    2495             psFree(md);
    2496             exit(EXIT_FAILURE);
    2497         }
    2498         if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
    2499             psFree(md);
    2500             exit(EXIT_FAILURE);
    2501         }
    2502         if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
    2503             psFree(md);
    2504             exit(EXIT_FAILURE);
    2505         }
    2506         if (!psMetadataLookupF64(&status, md, "fringe_resid_0") == 64.64) {
    2507             psFree(md);
    2508             exit(EXIT_FAILURE);
    2509         }
    2510         if (!psMetadataLookupF64(&status, md, "fringe_resid_1") == 64.64) {
    2511             psFree(md);
    2512             exit(EXIT_FAILURE);
    2513         }
    2514         if (!psMetadataLookupF64(&status, md, "fringe_resid_2") == 64.64) {
    2515             psFree(md);
    2516             exit(EXIT_FAILURE);
    2517         }
    2518         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2519             psFree(md);
    2520             exit(EXIT_FAILURE);
    2521         }
    2522         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2523             psFree(md);
    2524             exit(EXIT_FAILURE);
    2525         }
    2526         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2527             psFree(md);
    2528             exit(EXIT_FAILURE);
    2529         }
    2530         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2531             psFree(md);
    2532             exit(EXIT_FAILURE);
    2533         }
    2534         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2535             psFree(md);
    2536             exit(EXIT_FAILURE);
    2537         }
    2538         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2539             psFree(md);
    2540             exit(EXIT_FAILURE);
    2541         }
    2542         if (!psMetadataLookupBool(&status, md, "accept") == true) {
    2543             psFree(md);
    2544             exit(EXIT_FAILURE);
    2545         }
    2546             psFree(md);
    2547             exit(EXIT_FAILURE);
    2548         }
    2549 
    2550         psFree(md);
    2551     }
    2552 
    2553     {
    2554         psMetadata      *md;
    2555         detRunSummaryRow *object;
    2556         bool            status;
    2557 
    2558         object = detRunSummaryRowAlloc(-64, -32, 64.64, 64.64, 64.64, true, -16);
    2559         if (!object) {
    2560             exit(EXIT_FAILURE);
    2561         }
    2562 
    2563         md = detRunSummaryMetadataFromObject(object);
    2564         if (!md) {
    2565             exit(EXIT_FAILURE);
    2566         }
    2567 
    2568         psFree(object);
    2569 
    2570             psFree(md);
    2571             exit(EXIT_FAILURE);
    2572         }
    2573         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2574             psFree(md);
    2575             exit(EXIT_FAILURE);
    2576         }
    2577         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2578             psFree(md);
    2579             exit(EXIT_FAILURE);
    2580         }
    2581         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2582             psFree(md);
    2583             exit(EXIT_FAILURE);
    2584         }
    2585         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2586             psFree(md);
    2587             exit(EXIT_FAILURE);
    2588         }
    2589         if (!psMetadataLookupBool(&status, md, "accept") == true) {
    2590             psFree(md);
    2591             exit(EXIT_FAILURE);
    2592         }
    2593             psFree(md);
    2594             exit(EXIT_FAILURE);
    2595         }
    2596 
    2597         psFree(md);
    2598     }
    2599 
    2600     {
    2601         psMetadata      *md;
    2602         detRegisteredImfileRow *object;
    2603         bool            status;
    2604 
    2605         object = detRegisteredImfileRowAlloc(-64, -32, "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16);
    2606         if (!object) {
    2607             exit(EXIT_FAILURE);
    2608         }
    2609 
    2610         md = detRegisteredImfileMetadataFromObject(object);
    2611         if (!md) {
    2612             exit(EXIT_FAILURE);
    2613         }
    2614 
    2615         psFree(object);
    2616 
    2617             psFree(md);
    2618             exit(EXIT_FAILURE);
    2619         }
    2620         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2621             psFree(md);
    2622             exit(EXIT_FAILURE);
    2623         }
    2624         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2625             psFree(md);
    2626             exit(EXIT_FAILURE);
    2627         }
    2628         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2629             psFree(md);
    2630             exit(EXIT_FAILURE);
    2631         }
    2632         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2633             psFree(md);
    2634             exit(EXIT_FAILURE);
    2635         }
    2636         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2637             psFree(md);
    2638             exit(EXIT_FAILURE);
    2639         }
    2640         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2641             psFree(md);
    2642             exit(EXIT_FAILURE);
    2643         }
    2644         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2645             psFree(md);
    2646             exit(EXIT_FAILURE);
    2647         }
    2648         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2649             psFree(md);
    2650             exit(EXIT_FAILURE);
    2651         }
    2652         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2653             psFree(md);
    2654             exit(EXIT_FAILURE);
    2655         }
    2656         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2657             psFree(md);
    2658             exit(EXIT_FAILURE);
    2659         }
    2660         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2661             psFree(md);
    2662             exit(EXIT_FAILURE);
    2663         }
    2664         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2665             psFree(md);
    2666             exit(EXIT_FAILURE);
    2667         }
    2668             psFree(md);
    2669             exit(EXIT_FAILURE);
    2670         }
    2671 
    2672         psFree(md);
    2673     }
    2674 
    2675     {
    2676         psMetadata      *md;
    2677         detCorrectedExpRow *object;
    2678         bool            status;
    2679 
    2680         object = detCorrectedExpRowAlloc(-64, -64, "a string", -64, "a string", "a string", "a string", -16);
    2681         if (!object) {
    2682             exit(EXIT_FAILURE);
    2683         }
    2684 
    2685         md = detCorrectedExpMetadataFromObject(object);
    2686         if (!md) {
    2687             exit(EXIT_FAILURE);
    2688         }
    2689 
    2690         psFree(object);
    2691 
    2692             psFree(md);
    2693             exit(EXIT_FAILURE);
    2694         }
    2695             psFree(md);
    2696             exit(EXIT_FAILURE);
    2697         }
    2698         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2699             psFree(md);
    2700             exit(EXIT_FAILURE);
    2701         }
    2702             psFree(md);
    2703             exit(EXIT_FAILURE);
    2704         }
    2705         if (strncmp(psMetadataLookupPtr(&status, md, "corr_type"), "a string", MAX_STRING_LENGTH)) {
    2706             psFree(md);
    2707             exit(EXIT_FAILURE);
    2708         }
    2709         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2710             psFree(md);
    2711             exit(EXIT_FAILURE);
    2712         }
    2713         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2714             psFree(md);
    2715             exit(EXIT_FAILURE);
    2716         }
    2717             psFree(md);
    2718             exit(EXIT_FAILURE);
    2719         }
    2720 
    2721         psFree(md);
    2722     }
    2723 
    2724     {
    2725         psMetadata      *md;
    2726         detCorrectedImfileRow *object;
    2727         bool            status;
    2728 
    2729         object = detCorrectedImfileRowAlloc(-64, -64, "a string", "a string", "a string", -16);
    2730         if (!object) {
    2731             exit(EXIT_FAILURE);
    2732         }
    2733 
    2734         md = detCorrectedImfileMetadataFromObject(object);
    2735         if (!md) {
    2736             exit(EXIT_FAILURE);
    2737         }
    2738 
    2739         psFree(object);
    2740 
    2741             psFree(md);
    2742             exit(EXIT_FAILURE);
    2743         }
    2744             psFree(md);
    2745             exit(EXIT_FAILURE);
    2746         }
    2747         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2748             psFree(md);
    2749             exit(EXIT_FAILURE);
    2750         }
    2751         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2752             psFree(md);
    2753             exit(EXIT_FAILURE);
    2754         }
    2755         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2756             psFree(md);
    2757             exit(EXIT_FAILURE);
    2758         }
    2759             psFree(md);
    2760             exit(EXIT_FAILURE);
    2761         }
    2762 
    2763         psFree(md);
    2764     }
    2765 
    2766     {
    2767         psMetadata      *md;
    2768         magicRunRow     *object;
    2769         bool            status;
    2770 
    2771         object = magicRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
    2772         if (!object) {
    2773             exit(EXIT_FAILURE);
    2774         }
    2775 
    2776         md = magicRunMetadataFromObject(object);
    2777         if (!md) {
    2778             exit(EXIT_FAILURE);
    2779         }
    2780 
    2781         psFree(object);
    2782 
    2783             psFree(md);
    2784             exit(EXIT_FAILURE);
    2785         }
    2786         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    2787             psFree(md);
    2788             exit(EXIT_FAILURE);
    2789         }
    2790         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    2791             psFree(md);
    2792             exit(EXIT_FAILURE);
    2793         }
    2794         if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
    2795             psFree(md);
    2796             exit(EXIT_FAILURE);
    2797         }
    2798         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    2799             psFree(md);
    2800             exit(EXIT_FAILURE);
    2801         }
    2802         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    2803             psFree(md);
    2804             exit(EXIT_FAILURE);
    2805         }
    2806             psFree(md);
    2807             exit(EXIT_FAILURE);
    2808         }
    2809 
    2810         psFree(md);
    2811     }
    2812 
    2813     {
    2814         psMetadata      *md;
    2815         magicInputSkyfileRow *object;
    2816         bool            status;
    2817 
    2818         object = magicInputSkyfileRowAlloc(-64, -64, "a string");
    2819         if (!object) {
    2820             exit(EXIT_FAILURE);
    2821         }
    2822 
    2823         md = magicInputSkyfileMetadataFromObject(object);
    2824         if (!md) {
    2825             exit(EXIT_FAILURE);
    2826         }
    2827 
    2828         psFree(object);
    2829 
    2830             psFree(md);
    2831             exit(EXIT_FAILURE);
    2832         }
    2833             psFree(md);
    2834             exit(EXIT_FAILURE);
    2835         }
    2836         if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
    2837             psFree(md);
    2838             exit(EXIT_FAILURE);
    2839         }
    2840 
    2841         psFree(md);
    2842     }
    2843 
    2844     {
    2845         psMetadata      *md;
    2846         magicTreeRow    *object;
    2847         bool            status;
    2848 
    2849         object = magicTreeRowAlloc(-64, "a string", "a string");
    2850         if (!object) {
    2851             exit(EXIT_FAILURE);
    2852         }
    2853 
    2854         md = magicTreeMetadataFromObject(object);
    2855         if (!md) {
    2856             exit(EXIT_FAILURE);
    2857         }
    2858 
    2859         psFree(object);
    2860 
    2861             psFree(md);
    2862             exit(EXIT_FAILURE);
    2863         }
    2864         if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
    2865             psFree(md);
    2866             exit(EXIT_FAILURE);
    2867         }
    2868         if (strncmp(psMetadataLookupPtr(&status, md, "dep"), "a string", MAX_STRING_LENGTH)) {
    2869             psFree(md);
    2870             exit(EXIT_FAILURE);
    2871         }
    2872 
    2873         psFree(md);
    2874     }
    2875 
    2876     {
    2877         psMetadata      *md;
    2878         magicNodeResultRow *object;
    2879         bool            status;
    2880 
    2881         object = magicNodeResultRowAlloc(-64, "a string", "a string");
    2882         if (!object) {
    2883             exit(EXIT_FAILURE);
    2884         }
    2885 
    2886         md = magicNodeResultMetadataFromObject(object);
    2887         if (!md) {
    2888             exit(EXIT_FAILURE);
    2889         }
    2890 
    2891         psFree(object);
    2892 
    2893             psFree(md);
    2894             exit(EXIT_FAILURE);
    2895         }
    2896         if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
    2897             psFree(md);
    2898             exit(EXIT_FAILURE);
    2899         }
    2900         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2901             psFree(md);
    2902             exit(EXIT_FAILURE);
    2903         }
    2904 
    2905         psFree(md);
    2906     }
    2907 
    2908     {
    2909         psMetadata      *md;
    2910         magicMaskRow    *object;
    2911         bool            status;
    2912 
    2913         object = magicMaskRowAlloc(-64, "a string");
    2914         if (!object) {
    2915             exit(EXIT_FAILURE);
    2916         }
    2917 
    2918         md = magicMaskMetadataFromObject(object);
    2919         if (!md) {
    2920             exit(EXIT_FAILURE);
    2921         }
    2922 
    2923         psFree(object);
    2924 
    2925             psFree(md);
    2926             exit(EXIT_FAILURE);
    2927         }
    2928         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2929             psFree(md);
    2930             exit(EXIT_FAILURE);
    2931         }
    2932 
    2933         psFree(md);
    2934     }
    2935 
    2936     {
    2937         psMetadata      *md;
    2938         magicSkyfileMaskRow *object;
    2939         bool            status;
    2940 
    2941         object = magicSkyfileMaskRowAlloc(-64, -64, "a string");
    2942         if (!object) {
    2943             exit(EXIT_FAILURE);
    2944         }
    2945 
    2946         md = magicSkyfileMaskMetadataFromObject(object);
    2947         if (!md) {
    2948             exit(EXIT_FAILURE);
    2949         }
    2950 
    2951         psFree(object);
    2952 
    2953             psFree(md);
    2954             exit(EXIT_FAILURE);
    2955         }
    2956             psFree(md);
    2957             exit(EXIT_FAILURE);
    2958         }
    2959         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2960             psFree(md);
    2961             exit(EXIT_FAILURE);
    2962         }
    2963 
    2964         psFree(md);
    2965     }
    2966 
    2967     {
    2968         psMetadata      *md;
    2969         calDBRow        *object;
    2970         bool            status;
    2971 
    2972         object = calDBRowAlloc(-64, "a string", "a string");
    2973         if (!object) {
    2974             exit(EXIT_FAILURE);
    2975         }
    2976 
    2977         md = calDBMetadataFromObject(object);
    2978         if (!md) {
    2979             exit(EXIT_FAILURE);
    2980         }
    2981 
    2982         psFree(object);
    2983 
    2984             psFree(md);
    2985             exit(EXIT_FAILURE);
    2986         }
    2987         if (strncmp(psMetadataLookupPtr(&status, md, "catdir"), "a string", MAX_STRING_LENGTH)) {
    2988             psFree(md);
    2989             exit(EXIT_FAILURE);
    2990         }
    2991         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    2992             psFree(md);
    2993             exit(EXIT_FAILURE);
    2994         }
    2995 
    2996         psFree(md);
    2997     }
    2998 
    2999     {
    3000         psMetadata      *md;
    3001         calRunRow       *object;
    3002         bool            status;
    3003 
    3004         object = calRunRowAlloc(-64, "a string", "a string", "a string");
    3005         if (!object) {
    3006             exit(EXIT_FAILURE);
    3007         }
    3008 
    3009         md = calRunMetadataFromObject(object);
    3010         if (!md) {
    3011             exit(EXIT_FAILURE);
    3012         }
    3013 
    3014         psFree(object);
    3015 
    3016             psFree(md);
    3017             exit(EXIT_FAILURE);
    3018         }
    3019         if (strncmp(psMetadataLookupPtr(&status, md, "region"), "a string", MAX_STRING_LENGTH)) {
    3020             psFree(md);
    3021             exit(EXIT_FAILURE);
    3022         }
    3023         if (strncmp(psMetadataLookupPtr(&status, md, "last_step"), "a string", MAX_STRING_LENGTH)) {
    3024             psFree(md);
    3025             exit(EXIT_FAILURE);
    3026         }
    3027         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    3028             psFree(md);
    3029             exit(EXIT_FAILURE);
    3030         }
    3031 
    3032         psFree(md);
    3033     }
    3034 
    3035     {
    3036         psMetadata      *md;
    3037         flatcorrRunRow  *object;
    3038         bool            status;
    3039 
    3040         object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string");
    3041         if (!object) {
    3042             exit(EXIT_FAILURE);
    3043         }
    3044 
    3045         md = flatcorrRunMetadataFromObject(object);
    3046         if (!md) {
    3047             exit(EXIT_FAILURE);
    3048         }
    3049 
    3050         psFree(object);
    3051 
    3052             psFree(md);
    3053             exit(EXIT_FAILURE);
    3054         }
    3055         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    3056             psFree(md);
    3057             exit(EXIT_FAILURE);
    3058         }
    3059         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    3060             psFree(md);
    3061             exit(EXIT_FAILURE);
    3062         }
    3063         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    3064             psFree(md);
    3065             exit(EXIT_FAILURE);
    3066         }
    3067         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    3068             psFree(md);
    3069             exit(EXIT_FAILURE);
    3070         }
    3071         if (strncmp(psMetadataLookupPtr(&status, md, "stats"), "a string", MAX_STRING_LENGTH)) {
    3072             psFree(md);
    3073             exit(EXIT_FAILURE);
    3074         }
    3075 
    3076         psFree(md);
    3077     }
    3078 
    3079     {
    3080         psMetadata      *md;
    3081         flatcorrExpRow  *object;
    3082         bool            status;
    3083 
    3084         object = flatcorrExpRowAlloc(-64, -64);
    3085         if (!object) {
    3086             exit(EXIT_FAILURE);
    3087         }
    3088 
    3089         md = flatcorrExpMetadataFromObject(object);
    3090         if (!md) {
    3091             exit(EXIT_FAILURE);
    3092         }
    3093 
    3094         psFree(object);
    3095 
    3096             psFree(md);
    3097             exit(EXIT_FAILURE);
    3098         }
     3245        if (strncmp(psMetadataLookupPtr(&status, md, "outputBase"), "a string", MAX_STRING_LENGTH)) {
     3246            psFree(md);
     3247            exit(EXIT_FAILURE);
     3248        }
     3249        if (strncmp(psMetadataLookupPtr(&status, md, "args"), "a string", MAX_STRING_LENGTH)) {
    30993250            psFree(md);
    31003251            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/objectfrommetadata.c

    r16177 r16587  
    214214    {
    215215        psMetadata      *md;
    216         pzPendingExpRow *object;
     216        pzDownloadExpRow *object;
    217217
    218218        md = psMetadataAlloc();
     
    229229            exit(EXIT_FAILURE);
    230230        }
    231 
    232         object = pzPendingExpObjectFromMetadata(md);
     231        if (!psMetadataAddStr(md, PS_LIST_TAIL, "state", 0, NULL, "a string")) {
     232            psFree(md);
     233            exit(EXIT_FAILURE);
     234        }
     235
     236        object = pzDownloadExpObjectFromMetadata(md);
    233237        if (!object) {
    234238            psFree(md);
     
    247251        }
    248252        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
     253            psFree(object);
     254            exit(EXIT_FAILURE);
     255        }
     256        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    249257            psFree(object);
    250258            exit(EXIT_FAILURE);
     
    256264    {
    257265        psMetadata      *md;
    258         pzPendingImfileRow *object;
     266        pzDownloadImfileRow *object;
    259267
    260268        md = psMetadataAlloc();
     
    279287            exit(EXIT_FAILURE);
    280288        }
    281 
    282         object = pzPendingImfileObjectFromMetadata(md);
     289        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
     290            psFree(md);
     291            exit(EXIT_FAILURE);
     292        }
     293            psFree(md);
     294            exit(EXIT_FAILURE);
     295        }
     296
     297        object = pzDownloadImfileObjectFromMetadata(md);
    283298        if (!object) {
    284299            psFree(md);
     
    308323            exit(EXIT_FAILURE);
    309324        }
    310 
    311         psFree(object);
    312     }
    313 
    314     {
    315         psMetadata      *md;
    316         pzDoneExpRow    *object;
    317 
    318         md = psMetadataAlloc();
    319         if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_name", 0, NULL, "a string")) {
    320             psFree(md);
    321             exit(EXIT_FAILURE);
    322         }
    323         if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "a string")) {
    324             psFree(md);
    325             exit(EXIT_FAILURE);
    326         }
    327         if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "a string")) {
    328             psFree(md);
    329             exit(EXIT_FAILURE);
    330         }
    331 
    332         object = pzDoneExpObjectFromMetadata(md);
    333         if (!object) {
    334             psFree(md);
    335             exit(EXIT_FAILURE);
    336         }
    337 
    338         psFree(md);
    339 
    340         if (strncmp(object->exp_name, "a string", MAX_STRING_LENGTH)) {
    341             psFree(object);
    342             exit(EXIT_FAILURE);
    343         }
    344         if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
    345             psFree(object);
    346             exit(EXIT_FAILURE);
    347         }
    348         if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
    349             psFree(object);
    350             exit(EXIT_FAILURE);
    351         }
    352 
    353         psFree(object);
    354     }
    355 
    356     {
    357         psMetadata      *md;
    358         pzDoneImfileRow *object;
    359 
    360         md = psMetadataAlloc();
    361         if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_name", 0, NULL, "a string")) {
    362             psFree(md);
    363             exit(EXIT_FAILURE);
    364         }
    365         if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "a string")) {
    366             psFree(md);
    367             exit(EXIT_FAILURE);
    368         }
    369         if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "a string")) {
    370             psFree(md);
    371             exit(EXIT_FAILURE);
    372         }
    373         if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, NULL, "a string")) {
    374             psFree(md);
    375             exit(EXIT_FAILURE);
    376         }
    377         if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
    378             psFree(md);
    379             exit(EXIT_FAILURE);
    380         }
    381         if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
    382             psFree(md);
    383             exit(EXIT_FAILURE);
    384         }
    385 
    386         object = pzDoneImfileObjectFromMetadata(md);
    387         if (!object) {
    388             psFree(md);
    389             exit(EXIT_FAILURE);
    390         }
    391 
    392         psFree(md);
    393 
    394         if (strncmp(object->exp_name, "a string", MAX_STRING_LENGTH)) {
    395             psFree(object);
    396             exit(EXIT_FAILURE);
    397         }
    398         if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
    399             psFree(object);
    400             exit(EXIT_FAILURE);
    401         }
    402         if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
    403             psFree(object);
    404             exit(EXIT_FAILURE);
    405         }
    406         if (strncmp(object->class, "a string", MAX_STRING_LENGTH)) {
    407             psFree(object);
    408             exit(EXIT_FAILURE);
    409         }
    410         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    411             psFree(object);
    412             exit(EXIT_FAILURE);
    413         }
    414325        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     326            psFree(object);
     327            exit(EXIT_FAILURE);
     328        }
    415329            psFree(object);
    416330            exit(EXIT_FAILURE);
     
    468382            exit(EXIT_FAILURE);
    469383        }
     384        if (!psMetadataAddStr(md, PS_LIST_TAIL, "label", 0, NULL, "a string")) {
     385            psFree(md);
     386            exit(EXIT_FAILURE);
     387        }
    470388
    471389        object = newExpObjectFromMetadata(md);
     
    517435        }
    518436        if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
     437            psFree(object);
     438            exit(EXIT_FAILURE);
     439        }
     440        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    519441            psFree(object);
    520442            exit(EXIT_FAILURE);
     
    16591581            exit(EXIT_FAILURE);
    16601582        }
    1661         if (!psMetadataAddF32(md, PS_LIST_TAIL, "fwhm", 0, NULL, 32.32)) {
    1662             psFree(md);
    1663             exit(EXIT_FAILURE);
    1664         }
    1665         if (!psMetadataAddF32(md, PS_LIST_TAIL, "fwhm_range", 0, NULL, 32.32)) {
     1583        if (!psMetadataAddF32(md, PS_LIST_TAIL, "zp_mean", 0, NULL, 32.32)) {
     1584            psFree(md);
     1585            exit(EXIT_FAILURE);
     1586        }
     1587        if (!psMetadataAddF32(md, PS_LIST_TAIL, "zp_stdev", 0, NULL, 32.32)) {
     1588            psFree(md);
     1589            exit(EXIT_FAILURE);
     1590        }
     1591        if (!psMetadataAddF32(md, PS_LIST_TAIL, "fwhm_major", 0, NULL, 32.32)) {
     1592            psFree(md);
     1593            exit(EXIT_FAILURE);
     1594        }
     1595        if (!psMetadataAddF32(md, PS_LIST_TAIL, "fwhm_minor", 0, NULL, 32.32)) {
     1596            psFree(md);
     1597            exit(EXIT_FAILURE);
     1598        }
     1599        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_detrend", 0, NULL, 32.32)) {
     1600            psFree(md);
     1601            exit(EXIT_FAILURE);
     1602        }
     1603        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_photom", 0, NULL, 32.32)) {
     1604            psFree(md);
     1605            exit(EXIT_FAILURE);
     1606        }
     1607        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_astrom", 0, NULL, 32.32)) {
     1608            psFree(md);
     1609            exit(EXIT_FAILURE);
     1610        }
     1611        if (!psMetadataAddStr(md, PS_LIST_TAIL, "hostname", 0, NULL, "a string")) {
    16661612            psFree(md);
    16671613            exit(EXIT_FAILURE);
     
    17611707            exit(EXIT_FAILURE);
    17621708        }
    1763         if (!object->fwhm == 32.32) {
    1764             psFree(object);
    1765             exit(EXIT_FAILURE);
    1766         }
    1767         if (!object->fwhm_range == 32.32) {
     1709        if (!object->zp_mean == 32.32) {
     1710            psFree(object);
     1711            exit(EXIT_FAILURE);
     1712        }
     1713        if (!object->zp_stdev == 32.32) {
     1714            psFree(object);
     1715            exit(EXIT_FAILURE);
     1716        }
     1717        if (!object->fwhm_major == 32.32) {
     1718            psFree(object);
     1719            exit(EXIT_FAILURE);
     1720        }
     1721        if (!object->fwhm_minor == 32.32) {
     1722            psFree(object);
     1723            exit(EXIT_FAILURE);
     1724        }
     1725        if (!object->dtime_detrend == 32.32) {
     1726            psFree(object);
     1727            exit(EXIT_FAILURE);
     1728        }
     1729        if (!object->dtime_photom == 32.32) {
     1730            psFree(object);
     1731            exit(EXIT_FAILURE);
     1732        }
     1733        if (!object->dtime_astrom == 32.32) {
     1734            psFree(object);
     1735            exit(EXIT_FAILURE);
     1736        }
     1737        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    17681738            psFree(object);
    17691739            exit(EXIT_FAILURE);
     
    19511921            exit(EXIT_FAILURE);
    19521922        }
     1923        if (!psMetadataAddF32(md, PS_LIST_TAIL, "bias", 0, NULL, 32.32)) {
     1924            psFree(md);
     1925            exit(EXIT_FAILURE);
     1926        }
     1927        if (!psMetadataAddF32(md, PS_LIST_TAIL, "bias_stdev", 0, NULL, 32.32)) {
     1928            psFree(md);
     1929            exit(EXIT_FAILURE);
     1930        }
     1931        if (!psMetadataAddF32(md, PS_LIST_TAIL, "fringe_0", 0, NULL, 32.32)) {
     1932            psFree(md);
     1933            exit(EXIT_FAILURE);
     1934        }
     1935        if (!psMetadataAddF32(md, PS_LIST_TAIL, "fringe_1", 0, NULL, 32.32)) {
     1936            psFree(md);
     1937            exit(EXIT_FAILURE);
     1938        }
     1939        if (!psMetadataAddF32(md, PS_LIST_TAIL, "fringe_2", 0, NULL, 32.32)) {
     1940            psFree(md);
     1941            exit(EXIT_FAILURE);
     1942        }
    19531943        if (!psMetadataAddF32(md, PS_LIST_TAIL, "sigma_ra", 0, NULL, 32.32)) {
    19541944            psFree(md);
     
    19591949            exit(EXIT_FAILURE);
    19601950        }
     1951        if (!psMetadataAddF32(md, PS_LIST_TAIL, "ap_resid", 0, NULL, 32.32)) {
     1952            psFree(md);
     1953            exit(EXIT_FAILURE);
     1954        }
     1955        if (!psMetadataAddF32(md, PS_LIST_TAIL, "ap_resid_stdev", 0, NULL, 32.32)) {
     1956            psFree(md);
     1957            exit(EXIT_FAILURE);
     1958        }
    19611959        if (!psMetadataAddF32(md, PS_LIST_TAIL, "zp_mean", 0, NULL, 32.32)) {
    19621960            psFree(md);
     
    19671965            exit(EXIT_FAILURE);
    19681966        }
    1969         if (!psMetadataAddF32(md, PS_LIST_TAIL, "fwhm", 0, NULL, 32.32)) {
    1970             psFree(md);
    1971             exit(EXIT_FAILURE);
    1972         }
    1973         if (!psMetadataAddF32(md, PS_LIST_TAIL, "fwhm_range", 0, NULL, 32.32)) {
     1967        if (!psMetadataAddF32(md, PS_LIST_TAIL, "fwhm_major", 0, NULL, 32.32)) {
     1968            psFree(md);
     1969            exit(EXIT_FAILURE);
     1970        }
     1971        if (!psMetadataAddF32(md, PS_LIST_TAIL, "fwhm_minor", 0, NULL, 32.32)) {
     1972            psFree(md);
     1973            exit(EXIT_FAILURE);
     1974        }
     1975        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_detrend", 0, NULL, 32.32)) {
     1976            psFree(md);
     1977            exit(EXIT_FAILURE);
     1978        }
     1979        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_photom", 0, NULL, 32.32)) {
     1980            psFree(md);
     1981            exit(EXIT_FAILURE);
     1982        }
     1983        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_astrom", 0, NULL, 32.32)) {
     1984            psFree(md);
     1985            exit(EXIT_FAILURE);
     1986        }
     1987        if (!psMetadataAddStr(md, PS_LIST_TAIL, "hostname", 0, NULL, "a string")) {
    19741988            psFree(md);
    19751989            exit(EXIT_FAILURE);
     
    20292043            exit(EXIT_FAILURE);
    20302044        }
     2045        if (!object->bias == 32.32) {
     2046            psFree(object);
     2047            exit(EXIT_FAILURE);
     2048        }
     2049        if (!object->bias_stdev == 32.32) {
     2050            psFree(object);
     2051            exit(EXIT_FAILURE);
     2052        }
     2053        if (!object->fringe_0 == 32.32) {
     2054            psFree(object);
     2055            exit(EXIT_FAILURE);
     2056        }
     2057        if (!object->fringe_1 == 32.32) {
     2058            psFree(object);
     2059            exit(EXIT_FAILURE);
     2060        }
     2061        if (!object->fringe_2 == 32.32) {
     2062            psFree(object);
     2063            exit(EXIT_FAILURE);
     2064        }
    20312065        if (!object->sigma_ra == 32.32) {
    20322066            psFree(object);
     
    20372071            exit(EXIT_FAILURE);
    20382072        }
     2073        if (!object->ap_resid == 32.32) {
     2074            psFree(object);
     2075            exit(EXIT_FAILURE);
     2076        }
     2077        if (!object->ap_resid_stdev == 32.32) {
     2078            psFree(object);
     2079            exit(EXIT_FAILURE);
     2080        }
    20392081        if (!object->zp_mean == 32.32) {
    20402082            psFree(object);
     
    20452087            exit(EXIT_FAILURE);
    20462088        }
    2047         if (!object->fwhm == 32.32) {
    2048             psFree(object);
    2049             exit(EXIT_FAILURE);
    2050         }
    2051         if (!object->fwhm_range == 32.32) {
     2089        if (!object->fwhm_major == 32.32) {
     2090            psFree(object);
     2091            exit(EXIT_FAILURE);
     2092        }
     2093        if (!object->fwhm_minor == 32.32) {
     2094            psFree(object);
     2095            exit(EXIT_FAILURE);
     2096        }
     2097        if (!object->dtime_detrend == 32.32) {
     2098            psFree(object);
     2099            exit(EXIT_FAILURE);
     2100        }
     2101        if (!object->dtime_photom == 32.32) {
     2102            psFree(object);
     2103            exit(EXIT_FAILURE);
     2104        }
     2105        if (!object->dtime_astrom == 32.32) {
     2106            psFree(object);
     2107            exit(EXIT_FAILURE);
     2108        }
     2109        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    20522110            psFree(object);
    20532111            exit(EXIT_FAILURE);
     
    23222380            exit(EXIT_FAILURE);
    23232381        }
    2324         if (!psMetadataAddF64(md, PS_LIST_TAIL, "good_frac", 0, NULL, 64.64)) {
     2382        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_warp", 0, NULL, 32.32)) {
     2383            psFree(md);
     2384            exit(EXIT_FAILURE);
     2385        }
     2386        if (!psMetadataAddStr(md, PS_LIST_TAIL, "hostname", 0, NULL, "a string")) {
     2387            psFree(md);
     2388            exit(EXIT_FAILURE);
     2389        }
     2390        if (!psMetadataAddF32(md, PS_LIST_TAIL, "good_frac", 0, NULL, 32.32)) {
    23252391            psFree(md);
    23262392            exit(EXIT_FAILURE);
     
    23692435            exit(EXIT_FAILURE);
    23702436        }
    2371         if (!object->good_frac == 64.64) {
     2437        if (!object->dtime_warp == 32.32) {
     2438            psFree(object);
     2439            exit(EXIT_FAILURE);
     2440        }
     2441        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     2442            psFree(object);
     2443            exit(EXIT_FAILURE);
     2444        }
     2445        if (!object->good_frac == 32.32) {
    23722446            psFree(object);
    23732447            exit(EXIT_FAILURE);
     
    25462620            exit(EXIT_FAILURE);
    25472621        }
    2548         if (!psMetadataAddF64(md, PS_LIST_TAIL, "good_frac", 0, NULL, 64.64)) {
     2622        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_diff", 0, NULL, 32.32)) {
     2623            psFree(md);
     2624            exit(EXIT_FAILURE);
     2625        }
     2626        if (!psMetadataAddStr(md, PS_LIST_TAIL, "hostname", 0, NULL, "a string")) {
     2627            psFree(md);
     2628            exit(EXIT_FAILURE);
     2629        }
     2630        if (!psMetadataAddF32(md, PS_LIST_TAIL, "good_frac", 0, NULL, 32.32)) {
    25492631            psFree(md);
    25502632            exit(EXIT_FAILURE);
     
    25812663            exit(EXIT_FAILURE);
    25822664        }
    2583         if (!object->good_frac == 64.64) {
     2665        if (!object->dtime_diff == 32.32) {
     2666            psFree(object);
     2667            exit(EXIT_FAILURE);
     2668        }
     2669        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     2670            psFree(object);
     2671            exit(EXIT_FAILURE);
     2672        }
     2673        if (!object->good_frac == 32.32) {
    25842674            psFree(object);
    25852675            exit(EXIT_FAILURE);
     
    27162806            exit(EXIT_FAILURE);
    27172807        }
    2718         if (!psMetadataAddF64(md, PS_LIST_TAIL, "good_frac", 0, NULL, 64.64)) {
     2808        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_stack", 0, NULL, 32.32)) {
     2809            psFree(md);
     2810            exit(EXIT_FAILURE);
     2811        }
     2812        if (!psMetadataAddStr(md, PS_LIST_TAIL, "hostname", 0, NULL, "a string")) {
     2813            psFree(md);
     2814            exit(EXIT_FAILURE);
     2815        }
     2816        if (!psMetadataAddF32(md, PS_LIST_TAIL, "good_frac", 0, NULL, 32.32)) {
    27192817            psFree(md);
    27202818            exit(EXIT_FAILURE);
     
    27512849            exit(EXIT_FAILURE);
    27522850        }
    2753         if (!object->good_frac == 64.64) {
     2851        if (!object->dtime_stack == 32.32) {
     2852            psFree(object);
     2853            exit(EXIT_FAILURE);
     2854        }
     2855        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     2856            psFree(object);
     2857            exit(EXIT_FAILURE);
     2858        }
     2859        if (!object->good_frac == 32.32) {
    27542860            psFree(object);
    27552861            exit(EXIT_FAILURE);
     
    47784884            exit(EXIT_FAILURE);
    47794885        }
    4780         if (!psMetadataAddStr(md, PS_LIST_TAIL, "catdir", 0, NULL, "a string")) {
     4886        if (!psMetadataAddStr(md, PS_LIST_TAIL, "dvodb", 0, NULL, "a string")) {
    47814887            psFree(md);
    47824888            exit(EXIT_FAILURE);
     
    47984904            exit(EXIT_FAILURE);
    47994905        }
    4800         if (strncmp(object->catdir, "a string", MAX_STRING_LENGTH)) {
     4906        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    48014907            psFree(object);
    48024908            exit(EXIT_FAILURE);
     
    48704976            exit(EXIT_FAILURE);
    48714977        }
     4978        if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "a string")) {
     4979            psFree(md);
     4980            exit(EXIT_FAILURE);
     4981        }
    48724982        if (!psMetadataAddStr(md, PS_LIST_TAIL, "state", 0, NULL, "a string")) {
    48734983            psFree(md);
     
    48995009        }
    49005010        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     5011            psFree(object);
     5012            exit(EXIT_FAILURE);
     5013        }
     5014        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
    49015015            psFree(object);
    49025016            exit(EXIT_FAILURE);
     
    49525066    }
    49535067
     5068    {
     5069        psMetadata      *md;
     5070        pstampDataStoreRow *object;
     5071
     5072        md = psMetadataAlloc();
     5073            psFree(md);
     5074            exit(EXIT_FAILURE);
     5075        }
     5076        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
     5077            psFree(md);
     5078            exit(EXIT_FAILURE);
     5079        }
     5080        if (!psMetadataAddStr(md, PS_LIST_TAIL, "lastFileset", 0, NULL, "a string")) {
     5081            psFree(md);
     5082            exit(EXIT_FAILURE);
     5083        }
     5084        if (!psMetadataAddStr(md, PS_LIST_TAIL, "state", 0, NULL, "a string")) {
     5085            psFree(md);
     5086            exit(EXIT_FAILURE);
     5087        }
     5088
     5089        object = pstampDataStoreObjectFromMetadata(md);
     5090        if (!object) {
     5091            psFree(md);
     5092            exit(EXIT_FAILURE);
     5093        }
     5094
     5095        psFree(md);
     5096
     5097            psFree(object);
     5098            exit(EXIT_FAILURE);
     5099        }
     5100        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     5101            psFree(object);
     5102            exit(EXIT_FAILURE);
     5103        }
     5104        if (strncmp(object->lastFileset, "a string", MAX_STRING_LENGTH)) {
     5105            psFree(object);
     5106            exit(EXIT_FAILURE);
     5107        }
     5108        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     5109            psFree(object);
     5110            exit(EXIT_FAILURE);
     5111        }
     5112
     5113        psFree(object);
     5114    }
     5115
     5116    {
     5117        psMetadata      *md;
     5118        pstampRequestRow *object;
     5119
     5120        md = psMetadataAlloc();
     5121            psFree(md);
     5122            exit(EXIT_FAILURE);
     5123        }
     5124            psFree(md);
     5125            exit(EXIT_FAILURE);
     5126        }
     5127        if (!psMetadataAddStr(md, PS_LIST_TAIL, "state", 0, NULL, "a string")) {
     5128            psFree(md);
     5129            exit(EXIT_FAILURE);
     5130        }
     5131        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
     5132            psFree(md);
     5133            exit(EXIT_FAILURE);
     5134        }
     5135
     5136        object = pstampRequestObjectFromMetadata(md);
     5137        if (!object) {
     5138            psFree(md);
     5139            exit(EXIT_FAILURE);
     5140        }
     5141
     5142        psFree(md);
     5143
     5144            psFree(object);
     5145            exit(EXIT_FAILURE);
     5146        }
     5147            psFree(object);
     5148            exit(EXIT_FAILURE);
     5149        }
     5150        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     5151            psFree(object);
     5152            exit(EXIT_FAILURE);
     5153        }
     5154        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     5155            psFree(object);
     5156            exit(EXIT_FAILURE);
     5157        }
     5158
     5159        psFree(object);
     5160    }
     5161
     5162    {
     5163        psMetadata      *md;
     5164        pstampJobRow    *object;
     5165
     5166        md = psMetadataAlloc();
     5167            psFree(md);
     5168            exit(EXIT_FAILURE);
     5169        }
     5170            psFree(md);
     5171            exit(EXIT_FAILURE);
     5172        }
     5173        if (!psMetadataAddStr(md, PS_LIST_TAIL, "state", 0, NULL, "a string")) {
     5174            psFree(md);
     5175            exit(EXIT_FAILURE);
     5176        }
     5177        if (!psMetadataAddS32(md, PS_LIST_TAIL, "result", 0, NULL, -32)) {
     5178            psFree(md);
     5179            exit(EXIT_FAILURE);
     5180        }
     5181        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
     5182            psFree(md);
     5183            exit(EXIT_FAILURE);
     5184        }
     5185        if (!psMetadataAddStr(md, PS_LIST_TAIL, "outputBase", 0, NULL, "a string")) {
     5186            psFree(md);
     5187            exit(EXIT_FAILURE);
     5188        }
     5189        if (!psMetadataAddStr(md, PS_LIST_TAIL, "args", 0, NULL, "a string")) {
     5190            psFree(md);
     5191            exit(EXIT_FAILURE);
     5192        }
     5193
     5194        object = pstampJobObjectFromMetadata(md);
     5195        if (!object) {
     5196            psFree(md);
     5197            exit(EXIT_FAILURE);
     5198        }
     5199
     5200        psFree(md);
     5201
     5202            psFree(object);
     5203            exit(EXIT_FAILURE);
     5204        }
     5205            psFree(object);
     5206            exit(EXIT_FAILURE);
     5207        }
     5208        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     5209            psFree(object);
     5210            exit(EXIT_FAILURE);
     5211        }
     5212        if (!object->result == -32) {
     5213            psFree(object);
     5214            exit(EXIT_FAILURE);
     5215        }
     5216        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     5217            psFree(object);
     5218            exit(EXIT_FAILURE);
     5219        }
     5220        if (strncmp(object->outputBase, "a string", MAX_STRING_LENGTH)) {
     5221            psFree(object);
     5222            exit(EXIT_FAILURE);
     5223        }
     5224        if (strncmp(object->args, "a string", MAX_STRING_LENGTH)) {
     5225            psFree(object);
     5226            exit(EXIT_FAILURE);
     5227        }
     5228
     5229        psFree(object);
     5230    }
     5231
    49545232    exit(EXIT_SUCCESS);
    49555233}
  • trunk/ippdb/tests/selectrowsfits.c

    r15576 r16587  
    8787        }
    8888
    89         if (!pzPendingExpSelectRowsFits(dbh, fits, NULL, 1)) {
    90             exit(EXIT_FAILURE);
    91         }
    92 
    93         psFree(fits);
    94         psDBCleanup(dbh);
    95     }
    96 
    97     {
    98         psDB            *dbh;
    99         psFits          *fits;
    100 
    101         dbh = psDBInit("localhost", "test", NULL, "test");
    102         if (!dbh) {
    103             exit(EXIT_FAILURE);
    104         }
    105 
    106         fits = psFitsOpen(TMP_FILENAME, "w");
    107         if (!fits) {
    108             exit(EXIT_FAILURE);
    109         }
    110 
    111         if (!pzPendingImfileSelectRowsFits(dbh, fits, NULL, 1)) {
    112             exit(EXIT_FAILURE);
    113         }
    114 
    115         psFree(fits);
    116         psDBCleanup(dbh);
    117     }
    118 
    119     {
    120         psDB            *dbh;
    121         psFits          *fits;
    122 
    123         dbh = psDBInit("localhost", "test", NULL, "test");
    124         if (!dbh) {
    125             exit(EXIT_FAILURE);
    126         }
    127 
    128         fits = psFitsOpen(TMP_FILENAME, "w");
    129         if (!fits) {
    130             exit(EXIT_FAILURE);
    131         }
    132 
    133         if (!pzDoneExpSelectRowsFits(dbh, fits, NULL, 1)) {
    134             exit(EXIT_FAILURE);
    135         }
    136 
    137         psFree(fits);
    138         psDBCleanup(dbh);
    139     }
    140 
    141     {
    142         psDB            *dbh;
    143         psFits          *fits;
    144 
    145         dbh = psDBInit("localhost", "test", NULL, "test");
    146         if (!dbh) {
    147             exit(EXIT_FAILURE);
    148         }
    149 
    150         fits = psFitsOpen(TMP_FILENAME, "w");
    151         if (!fits) {
    152             exit(EXIT_FAILURE);
    153         }
    154 
    155         if (!pzDoneImfileSelectRowsFits(dbh, fits, NULL, 1)) {
     89        if (!pzDownloadExpSelectRowsFits(dbh, fits, NULL, 1)) {
     90            exit(EXIT_FAILURE);
     91        }
     92
     93        psFree(fits);
     94        psDBCleanup(dbh);
     95    }
     96
     97    {
     98        psDB            *dbh;
     99        psFits          *fits;
     100
     101        dbh = psDBInit("localhost", "test", NULL, "test");
     102        if (!dbh) {
     103            exit(EXIT_FAILURE);
     104        }
     105
     106        fits = psFitsOpen(TMP_FILENAME, "w");
     107        if (!fits) {
     108            exit(EXIT_FAILURE);
     109        }
     110
     111        if (!pzDownloadImfileSelectRowsFits(dbh, fits, NULL, 1)) {
    156112            exit(EXIT_FAILURE);
    157113        }
     
    11441100
    11451101        if (!flatcorrExpSelectRowsFits(dbh, fits, NULL, 1)) {
     1102            exit(EXIT_FAILURE);
     1103        }
     1104
     1105        psFree(fits);
     1106        psDBCleanup(dbh);
     1107    }
     1108
     1109    {
     1110        psDB            *dbh;
     1111        psFits          *fits;
     1112
     1113        dbh = psDBInit("localhost", "test", NULL, "test");
     1114        if (!dbh) {
     1115            exit(EXIT_FAILURE);
     1116        }
     1117
     1118        fits = psFitsOpen(TMP_FILENAME, "w");
     1119        if (!fits) {
     1120            exit(EXIT_FAILURE);
     1121        }
     1122
     1123        if (!pstampDataStoreSelectRowsFits(dbh, fits, NULL, 1)) {
     1124            exit(EXIT_FAILURE);
     1125        }
     1126
     1127        psFree(fits);
     1128        psDBCleanup(dbh);
     1129    }
     1130
     1131    {
     1132        psDB            *dbh;
     1133        psFits          *fits;
     1134
     1135        dbh = psDBInit("localhost", "test", NULL, "test");
     1136        if (!dbh) {
     1137            exit(EXIT_FAILURE);
     1138        }
     1139
     1140        fits = psFitsOpen(TMP_FILENAME, "w");
     1141        if (!fits) {
     1142            exit(EXIT_FAILURE);
     1143        }
     1144
     1145        if (!pstampRequestSelectRowsFits(dbh, fits, NULL, 1)) {
     1146            exit(EXIT_FAILURE);
     1147        }
     1148
     1149        psFree(fits);
     1150        psDBCleanup(dbh);
     1151    }
     1152
     1153    {
     1154        psDB            *dbh;
     1155        psFits          *fits;
     1156
     1157        dbh = psDBInit("localhost", "test", NULL, "test");
     1158        if (!dbh) {
     1159            exit(EXIT_FAILURE);
     1160        }
     1161
     1162        fits = psFitsOpen(TMP_FILENAME, "w");
     1163        if (!fits) {
     1164            exit(EXIT_FAILURE);
     1165        }
     1166
     1167        if (!pstampJobSelectRowsFits(dbh, fits, NULL, 1)) {
    11461168            exit(EXIT_FAILURE);
    11471169        }
Note: See TracChangeset for help on using the changeset viewer.