IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 20205


Ignore:
Timestamp:
Oct 16, 2008, 12:32:27 PM (18 years ago)
Author:
jhoblitt
Message:

update

Location:
trunk/ippdb
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippdb/Makefile.am

    r18595 r20205  
    6161    $(top_builddir)/docs/man/man3/calRunRow.3 \
    6262    $(top_builddir)/docs/man/man3/flatcorrRunRow.3 \
    63     $(top_builddir)/docs/man/man3/flatcorrExpRow.3 \
     63    $(top_builddir)/docs/man/man3/flatcorrChipLinkRow.3 \
     64    $(top_builddir)/docs/man/man3/flatcorrCamLinkRow.3 \
    6465    $(top_builddir)/docs/man/man3/pstampDataStoreRow.3 \
     66    $(top_builddir)/docs/man/man3/pstampProjectRow.3 \
    6567    $(top_builddir)/docs/man/man3/pstampRequestRow.3 \
    6668    $(top_builddir)/docs/man/man3/pstampJobRow.3
    6769
    6870
    69 docs/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/fakeRunRow.3 docs/man/man3/fakeProcessedImfileRow.3 docs/man/man3/fakeMaskRow.3 docs/man/man3/warpRunRow.3 docs/man/man3/warpSkyCellMapRow.3 docs/man/man3/warpSkyfileRow.3 docs/man/man3/warpMaskRow.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/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:
     71docs/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/fakeRunRow.3 docs/man/man3/fakeProcessedImfileRow.3 docs/man/man3/fakeMaskRow.3 docs/man/man3/warpRunRow.3 docs/man/man3/warpSkyCellMapRow.3 docs/man/man3/warpSkyfileRow.3 docs/man/man3/warpMaskRow.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/calDBRow.3 docs/man/man3/calRunRow.3 docs/man/man3/flatcorrRunRow.3 docs/man/man3/flatcorrChipLinkRow.3 docs/man/man3/flatcorrCamLinkRow.3 docs/man/man3/pstampDataStoreRow.3 docs/man/man3/pstampProjectRow.3 docs/man/man3/pstampRequestRow.3 docs/man/man3/pstampJobRow.3:
    7072        $(DOXYGEN)
    7173
  • trunk/ippdb/autogen.sh

    r19244 r20205  
    2323($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || {
    2424        echo
    25         echo "You must have $LIBTOOLIZE installed to compile $PROJECT."
     25        echo "You must have $LIBTOOlIZE installed to compile $PROJECT."
    2626        echo "Download the appropriate package for your distribution,"
    2727        echo "or get the source tarball at http://ftp.gnu.org/gnu/libtool/"
     
    7575fi
    7676
    77 $LIBTOOLIZE --copy --force || echo "$LIBTOOLIZE failed"
     77$LIBTOOLIZE --copy --force || echo "$LIBTOOlIZE failed"
    7878$ACLOCAL || echo "$ACLOCAL failed"
    7979$AUTOHEADER || echo "$AUTOHEADER failed"
  • trunk/ippdb/configure.ac

    r18796 r20205  
    77AC_PREREQ(2.61)
    88
    9 AC_INIT([ippdb], [1.1.39], [pan-starrs.ifa.hawaii.edu])
     9AC_INIT([ippdb], [1.1.44], [pan-starrs.ifa.hawaii.edu])
    1010AC_CONFIG_SRCDIR([ippdb.pc.in])
    1111
  • trunk/ippdb/src/ippdb.c

    r18796 r20205  
    8282#define CALRUN_TABLE_NAME "calRun"
    8383#define FLATCORRRUN_TABLE_NAME "flatcorrRun"
    84 #define FLATCORREXP_TABLE_NAME "flatcorrExp"
     84#define FLATCORRCHIPLINK_TABLE_NAME "flatcorrChipLink"
     85#define FLATCORRCAMLINK_TABLE_NAME "flatcorrCamLink"
    8586#define PSTAMPDATASTORE_TABLE_NAME "pstampDataStore"
     87#define PSTAMPPROJECT_TABLE_NAME "pstampProject"
    8688#define PSTAMPREQUEST_TABLE_NAME "pstampRequest"
    8789#define PSTAMPJOB_TABLE_NAME "pstampJob"
     
    32303232static void rawExpRowFree(rawExpRow *object);
    32313233
    3232 rawExpRow *rawExpRowAlloc(psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_tag, const char *exp_type, const char *filelevel, const char *workdir, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 solang, const char *hostname, psS16 fault, psTime* epoch)
     3234rawExpRow *rawExpRowAlloc(psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_tag, const char *exp_type, const char *filelevel, const char *workdir, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *filter, const char *comment, const char *obs_mode, const char *obs_group, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 sun_angle, psF32 sun_alt, psF32 moon_angle, psF32 moon_alt, psF32 moon_phase, const char *hostname, psS16 fault, psTime* epoch)
    32333235{
    32343236    rawExpRow       *_object;
     
    32523254    _object->filter = psStringCopy(filter);
    32533255    _object->comment = psStringCopy(comment);
     3256    _object->obs_mode = psStringCopy(obs_mode);
     3257    _object->obs_group = psStringCopy(obs_group);
    32543258    _object->airmass = airmass;
    32553259    _object->ra = ra;
     
    32913295    _object->user_5 = user_5;
    32923296    _object->object = psStringCopy(object);
    3293     _object->solang = solang;
     3297    _object->sun_angle = sun_angle;
     3298    _object->sun_alt = sun_alt;
     3299    _object->moon_angle = moon_angle;
     3300    _object->moon_alt = moon_alt;
     3301    _object->moon_phase = moon_phase;
    32943302    _object->hostname = psStringCopy(hostname);
    32953303    _object->fault = fault;
     
    33153323    psFree(object->filter);
    33163324    psFree(object->comment);
     3325    psFree(object->obs_mode);
     3326    psFree(object->obs_group);
    33173327    psFree(object->object);
    33183328    psFree(object->hostname);
     
    33983408        return false;
    33993409    }
     3410    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_mode", PS_DATA_STRING, "data usage goal (eg, survey name, engineering, etc)", "64")) {
     3411        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_mode");
     3412        psFree(md);
     3413        return false;
     3414    }
     3415    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_group", PS_DATA_STRING, "identifier for data block (eg, observation sequence)", "64")) {
     3416        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_group");
     3417        psFree(md);
     3418        return false;
     3419    }
    34003420    if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, 0.0)) {
    34013421        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     
    35933613        return false;
    35943614    }
    3595     if (!psMetadataAdd(md, PS_LIST_TAIL, "solang", PS_DATA_F32, NULL, 0.0)) {
    3596         psError(PS_ERR_UNKNOWN, false, "failed to add item solang");
     3615    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_angle", PS_DATA_F32, NULL, 0.0)) {
     3616        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_angle");
     3617        psFree(md);
     3618        return false;
     3619    }
     3620    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_alt", PS_DATA_F32, NULL, 0.0)) {
     3621        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_alt");
     3622        psFree(md);
     3623        return false;
     3624    }
     3625    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_angle", PS_DATA_F32, NULL, 0.0)) {
     3626        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_angle");
     3627        psFree(md);
     3628        return false;
     3629    }
     3630    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_alt", PS_DATA_F32, NULL, 0.0)) {
     3631        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_alt");
     3632        psFree(md);
     3633        return false;
     3634    }
     3635    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_phase", PS_DATA_F32, NULL, 0.0)) {
     3636        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_phase");
    35973637        psFree(md);
    35983638        return false;
     
    36263666}
    36273667
    3628 bool rawExpInsert(psDB * dbh, psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_tag, const char *exp_type, const char *filelevel, const char *workdir, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 solang, const char *hostname, psS16 fault, psTime* epoch)
     3668bool rawExpInsert(psDB * dbh, psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *exp_tag, const char *exp_type, const char *filelevel, const char *workdir, const char *reduction, const char *dvodb, const char *tess_id, const char *end_stage, const char *filter, const char *comment, const char *obs_mode, const char *obs_group, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 sun_angle, psF32 sun_alt, psF32 moon_angle, psF32 moon_alt, psF32 moon_phase, const char *hostname, psS16 fault, psTime* epoch)
    36293669{
    36303670    psMetadata *md = psMetadataAlloc();
     
    37043744        return false;
    37053745    }
     3746    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_mode", PS_DATA_STRING, NULL, obs_mode)) {
     3747        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_mode");
     3748        psFree(md);
     3749        return false;
     3750    }
     3751    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_group", PS_DATA_STRING, NULL, obs_group)) {
     3752        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_group");
     3753        psFree(md);
     3754        return false;
     3755    }
    37063756    if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, airmass)) {
    37073757        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     
    38993949        return false;
    39003950    }
    3901     if (!psMetadataAdd(md, PS_LIST_TAIL, "solang", PS_DATA_F32, NULL, solang)) {
    3902         psError(PS_ERR_UNKNOWN, false, "failed to add item solang");
     3951    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_angle", PS_DATA_F32, NULL, sun_angle)) {
     3952        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_angle");
     3953        psFree(md);
     3954        return false;
     3955    }
     3956    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_alt", PS_DATA_F32, NULL, sun_alt)) {
     3957        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_alt");
     3958        psFree(md);
     3959        return false;
     3960    }
     3961    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_angle", PS_DATA_F32, NULL, moon_angle)) {
     3962        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_angle");
     3963        psFree(md);
     3964        return false;
     3965    }
     3966    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_alt", PS_DATA_F32, NULL, moon_alt)) {
     3967        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_alt");
     3968        psFree(md);
     3969        return false;
     3970    }
     3971    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_phase", PS_DATA_F32, NULL, moon_phase)) {
     3972        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_phase");
    39033973        psFree(md);
    39043974        return false;
     
    39424012bool rawExpInsertObject(psDB *dbh, rawExpRow *object)
    39434013{
    3944     return rawExpInsert(dbh, object->exp_id, object->exp_name, object->camera, object->telescope, object->dateobs, object->exp_tag, object->exp_type, object->filelevel, object->workdir, object->reduction, object->dvodb, object->tess_id, object->end_stage, object->filter, object->comment, object->airmass, object->ra, object->decl, object->exp_time, object->sat_pixel_frac, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->m1_x, object->m1_y, object->m1_z, object->m1_tip, object->m1_tilt, object->m2_x, object->m2_y, object->m2_z, object->m2_tip, object->m2_tilt, object->env_temperature, object->env_humidity, object->env_wind_speed, object->env_wind_dir, object->teltemp_m1, object->teltemp_m1cell, object->teltemp_m2, object->teltemp_spider, object->teltemp_truss, object->teltemp_extra, object->pon_time, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->object, object->solang, object->hostname, object->fault, object->epoch);
     4014    return rawExpInsert(dbh, object->exp_id, object->exp_name, object->camera, object->telescope, object->dateobs, object->exp_tag, object->exp_type, object->filelevel, object->workdir, object->reduction, object->dvodb, object->tess_id, object->end_stage, object->filter, object->comment, object->obs_mode, object->obs_group, object->airmass, object->ra, object->decl, object->exp_time, object->sat_pixel_frac, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->m1_x, object->m1_y, object->m1_z, object->m1_tip, object->m1_tilt, object->m2_x, object->m2_y, object->m2_z, object->m2_tip, object->m2_tilt, object->env_temperature, object->env_humidity, object->env_wind_speed, object->env_wind_dir, object->teltemp_m1, object->teltemp_m1cell, object->teltemp_m2, object->teltemp_spider, object->teltemp_truss, object->teltemp_extra, object->pon_time, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->object, object->sun_angle, object->sun_alt, object->moon_angle, object->moon_alt, object->moon_phase, object->hostname, object->fault, object->epoch);
    39454015}
    39464016
     
    40904160        return false;
    40914161    }
     4162    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_mode", PS_DATA_STRING, NULL, object->obs_mode)) {
     4163        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_mode");
     4164        psFree(md);
     4165        return false;
     4166    }
     4167    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_group", PS_DATA_STRING, NULL, object->obs_group)) {
     4168        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_group");
     4169        psFree(md);
     4170        return false;
     4171    }
    40924172    if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, object->airmass)) {
    40934173        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     
    42854365        return false;
    42864366    }
    4287     if (!psMetadataAdd(md, PS_LIST_TAIL, "solang", PS_DATA_F32, NULL, object->solang)) {
    4288         psError(PS_ERR_UNKNOWN, false, "failed to add item solang");
     4367    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_angle", PS_DATA_F32, NULL, object->sun_angle)) {
     4368        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_angle");
     4369        psFree(md);
     4370        return false;
     4371    }
     4372    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_alt", PS_DATA_F32, NULL, object->sun_alt)) {
     4373        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_alt");
     4374        psFree(md);
     4375        return false;
     4376    }
     4377    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_angle", PS_DATA_F32, NULL, object->moon_angle)) {
     4378        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_angle");
     4379        psFree(md);
     4380        return false;
     4381    }
     4382    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_alt", PS_DATA_F32, NULL, object->moon_alt)) {
     4383        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_alt");
     4384        psFree(md);
     4385        return false;
     4386    }
     4387    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_phase", PS_DATA_F32, NULL, object->moon_phase)) {
     4388        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_phase");
    42894389        psFree(md);
    42904390        return false;
     
    43894489        return false;
    43904490    }
     4491    char* obs_mode = psMetadataLookupPtr(&status, md, "obs_mode");
     4492    if (!status) {
     4493        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item obs_mode");
     4494        return false;
     4495    }
     4496    char* obs_group = psMetadataLookupPtr(&status, md, "obs_group");
     4497    if (!status) {
     4498        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item obs_group");
     4499        return false;
     4500    }
    43914501    psF32 airmass = psMetadataLookupF32(&status, md, "airmass");
    43924502    if (!status) {
     
    45844694        return false;
    45854695    }
    4586     psF32 solang = psMetadataLookupF32(&status, md, "solang");
    4587     if (!status) {
    4588         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item solang");
     4696    psF32 sun_angle = psMetadataLookupF32(&status, md, "sun_angle");
     4697    if (!status) {
     4698        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item sun_angle");
     4699        return false;
     4700    }
     4701    psF32 sun_alt = psMetadataLookupF32(&status, md, "sun_alt");
     4702    if (!status) {
     4703        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item sun_alt");
     4704        return false;
     4705    }
     4706    psF32 moon_angle = psMetadataLookupF32(&status, md, "moon_angle");
     4707    if (!status) {
     4708        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item moon_angle");
     4709        return false;
     4710    }
     4711    psF32 moon_alt = psMetadataLookupF32(&status, md, "moon_alt");
     4712    if (!status) {
     4713        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item moon_alt");
     4714        return false;
     4715    }
     4716    psF32 moon_phase = psMetadataLookupF32(&status, md, "moon_phase");
     4717    if (!status) {
     4718        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item moon_phase");
    45894719        return false;
    45904720    }
     
    46054735    }
    46064736
    4607     return rawExpRowAlloc(exp_id, exp_name, camera, telescope, dateobs, exp_tag, exp_type, filelevel, workdir, reduction, dvodb, tess_id, end_stage, filter, comment, airmass, ra, decl, exp_time, sat_pixel_frac, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, m1_x, m1_y, m1_z, m1_tip, m1_tilt, m2_x, m2_y, m2_z, m2_tip, m2_tilt, env_temperature, env_humidity, env_wind_speed, env_wind_dir, teltemp_m1, teltemp_m1cell, teltemp_m2, teltemp_spider, teltemp_truss, teltemp_extra, pon_time, user_1, user_2, user_3, user_4, user_5, object, solang, hostname, fault, epoch);
     4737    return rawExpRowAlloc(exp_id, exp_name, camera, telescope, dateobs, exp_tag, exp_type, filelevel, workdir, reduction, dvodb, tess_id, end_stage, filter, comment, obs_mode, obs_group, airmass, ra, decl, exp_time, sat_pixel_frac, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, m1_x, m1_y, m1_z, m1_tip, m1_tilt, m2_x, m2_y, m2_z, m2_tip, m2_tilt, env_temperature, env_humidity, env_wind_speed, env_wind_dir, teltemp_m1, teltemp_m1cell, teltemp_m2, teltemp_spider, teltemp_truss, teltemp_extra, pon_time, user_1, user_2, user_3, user_4, user_5, object, sun_angle, sun_alt, moon_angle, moon_alt, moon_phase, hostname, fault, epoch);
    46084738}
    46094739psArray *rawExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    47234853static void rawImfileRowFree(rawImfileRow *object);
    47244854
    4725 rawImfileRow *rawImfileRowAlloc(psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *tmp_class_id, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, const char *hostname, psS16 fault, psTime* epoch)
     4855rawImfileRow *rawImfileRowAlloc(psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *tmp_class_id, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, const char *comment, const char *obs_mode, const char *obs_group, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 sun_angle, psF32 sun_alt, psF32 moon_angle, psF32 moon_alt, psF32 moon_phase, const char *hostname, psS16 fault, psTime* epoch)
    47264856{
    47274857    rawImfileRow    *_object;
     
    47424872    _object->filter = psStringCopy(filter);
    47434873    _object->comment = psStringCopy(comment);
     4874    _object->obs_mode = psStringCopy(obs_mode);
     4875    _object->obs_group = psStringCopy(obs_group);
    47444876    _object->airmass = airmass;
    47454877    _object->ra = ra;
     
    47814913    _object->user_5 = user_5;
    47824914    _object->object = psStringCopy(object);
     4915    _object->sun_angle = sun_angle;
     4916    _object->sun_alt = sun_alt;
     4917    _object->moon_angle = moon_angle;
     4918    _object->moon_alt = moon_alt;
     4919    _object->moon_phase = moon_phase;
    47834920    _object->hostname = psStringCopy(hostname);
    47844921    _object->fault = fault;
     
    48014938    psFree(object->filter);
    48024939    psFree(object->comment);
     4940    psFree(object->obs_mode);
     4941    psFree(object->obs_group);
    48034942    psFree(object->object);
    48044943    psFree(object->hostname);
     
    48695008        return false;
    48705009    }
     5010    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_mode", PS_DATA_STRING, "data usage goal (eg, survey name, engineering, etc)", "64")) {
     5011        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_mode");
     5012        psFree(md);
     5013        return false;
     5014    }
     5015    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_group", PS_DATA_STRING, "identifier for data block (eg, observation sequence)", "64")) {
     5016        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_group");
     5017        psFree(md);
     5018        return false;
     5019    }
    48715020    if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, 0.0)) {
    48725021        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     
    50645213        return false;
    50655214    }
     5215    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_angle", PS_DATA_F32, NULL, 0.0)) {
     5216        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_angle");
     5217        psFree(md);
     5218        return false;
     5219    }
     5220    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_alt", PS_DATA_F32, NULL, 0.0)) {
     5221        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_alt");
     5222        psFree(md);
     5223        return false;
     5224    }
     5225    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_angle", PS_DATA_F32, NULL, 0.0)) {
     5226        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_angle");
     5227        psFree(md);
     5228        return false;
     5229    }
     5230    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_alt", PS_DATA_F32, NULL, 0.0)) {
     5231        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_alt");
     5232        psFree(md);
     5233        return false;
     5234    }
     5235    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_phase", PS_DATA_F32, NULL, 0.0)) {
     5236        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_phase");
     5237        psFree(md);
     5238        return false;
     5239    }
    50665240    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
    50675241        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    50925266}
    50935267
    5094 bool rawImfileInsert(psDB * dbh, psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *tmp_class_id, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, const char *comment, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, const char *hostname, psS16 fault, psTime* epoch)
     5268bool rawImfileInsert(psDB * dbh, psS64 exp_id, const char *exp_name, const char *camera, const char *telescope, psTime* dateobs, const char *tmp_class_id, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, const char *comment, const char *obs_mode, const char *obs_group, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF32 m1_x, psF32 m1_y, psF32 m1_z, psF32 m1_tip, psF32 m1_tilt, psF32 m2_x, psF32 m2_y, psF32 m2_z, psF32 m2_tip, psF32 m2_tilt, psF32 env_temperature, psF32 env_humidity, psF32 env_wind_speed, psF32 env_wind_dir, psF32 teltemp_m1, psF32 teltemp_m1cell, psF32 teltemp_m2, psF32 teltemp_spider, psF32 teltemp_truss, psF32 teltemp_extra, psF32 pon_time, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 sun_angle, psF32 sun_alt, psF32 moon_angle, psF32 moon_alt, psF32 moon_phase, const char *hostname, psS16 fault, psTime* epoch)
    50955269{
    50965270    psMetadata *md = psMetadataAlloc();
     
    51555329        return false;
    51565330    }
     5331    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_mode", PS_DATA_STRING, NULL, obs_mode)) {
     5332        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_mode");
     5333        psFree(md);
     5334        return false;
     5335    }
     5336    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_group", PS_DATA_STRING, NULL, obs_group)) {
     5337        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_group");
     5338        psFree(md);
     5339        return false;
     5340    }
    51575341    if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, airmass)) {
    51585342        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     
    53475531    if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, object)) {
    53485532        psError(PS_ERR_UNKNOWN, false, "failed to add item object");
     5533        psFree(md);
     5534        return false;
     5535    }
     5536    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_angle", PS_DATA_F32, NULL, sun_angle)) {
     5537        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_angle");
     5538        psFree(md);
     5539        return false;
     5540    }
     5541    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_alt", PS_DATA_F32, NULL, sun_alt)) {
     5542        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_alt");
     5543        psFree(md);
     5544        return false;
     5545    }
     5546    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_angle", PS_DATA_F32, NULL, moon_angle)) {
     5547        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_angle");
     5548        psFree(md);
     5549        return false;
     5550    }
     5551    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_alt", PS_DATA_F32, NULL, moon_alt)) {
     5552        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_alt");
     5553        psFree(md);
     5554        return false;
     5555    }
     5556    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_phase", PS_DATA_F32, NULL, moon_phase)) {
     5557        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_phase");
    53495558        psFree(md);
    53505559        return false;
     
    53885597bool rawImfileInsertObject(psDB *dbh, rawImfileRow *object)
    53895598{
    5390     return rawImfileInsert(dbh, object->exp_id, object->exp_name, object->camera, object->telescope, object->dateobs, object->tmp_class_id, object->class_id, object->uri, object->exp_type, object->filelevel, object->filter, object->comment, object->airmass, object->ra, object->decl, object->exp_time, object->sat_pixel_frac, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->m1_x, object->m1_y, object->m1_z, object->m1_tip, object->m1_tilt, object->m2_x, object->m2_y, object->m2_z, object->m2_tip, object->m2_tilt, object->env_temperature, object->env_humidity, object->env_wind_speed, object->env_wind_dir, object->teltemp_m1, object->teltemp_m1cell, object->teltemp_m2, object->teltemp_spider, object->teltemp_truss, object->teltemp_extra, object->pon_time, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->object, object->hostname, object->fault, object->epoch);
     5599    return rawImfileInsert(dbh, object->exp_id, object->exp_name, object->camera, object->telescope, object->dateobs, object->tmp_class_id, object->class_id, object->uri, object->exp_type, object->filelevel, object->filter, object->comment, object->obs_mode, object->obs_group, object->airmass, object->ra, object->decl, object->exp_time, object->sat_pixel_frac, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->m1_x, object->m1_y, object->m1_z, object->m1_tip, object->m1_tilt, object->m2_x, object->m2_y, object->m2_z, object->m2_tip, object->m2_tilt, object->env_temperature, object->env_humidity, object->env_wind_speed, object->env_wind_dir, object->teltemp_m1, object->teltemp_m1cell, object->teltemp_m2, object->teltemp_spider, object->teltemp_truss, object->teltemp_extra, object->pon_time, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->object, object->sun_angle, object->sun_alt, object->moon_angle, object->moon_alt, object->moon_phase, object->hostname, object->fault, object->epoch);
    53915600}
    53925601
     
    55215730        return false;
    55225731    }
     5732    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_mode", PS_DATA_STRING, NULL, object->obs_mode)) {
     5733        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_mode");
     5734        psFree(md);
     5735        return false;
     5736    }
     5737    if (!psMetadataAdd(md, PS_LIST_TAIL, "obs_group", PS_DATA_STRING, NULL, object->obs_group)) {
     5738        psError(PS_ERR_UNKNOWN, false, "failed to add item obs_group");
     5739        psFree(md);
     5740        return false;
     5741    }
    55235742    if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, object->airmass)) {
    55245743        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     
    57165935        return false;
    57175936    }
     5937    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_angle", PS_DATA_F32, NULL, object->sun_angle)) {
     5938        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_angle");
     5939        psFree(md);
     5940        return false;
     5941    }
     5942    if (!psMetadataAdd(md, PS_LIST_TAIL, "sun_alt", PS_DATA_F32, NULL, object->sun_alt)) {
     5943        psError(PS_ERR_UNKNOWN, false, "failed to add item sun_alt");
     5944        psFree(md);
     5945        return false;
     5946    }
     5947    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_angle", PS_DATA_F32, NULL, object->moon_angle)) {
     5948        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_angle");
     5949        psFree(md);
     5950        return false;
     5951    }
     5952    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_alt", PS_DATA_F32, NULL, object->moon_alt)) {
     5953        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_alt");
     5954        psFree(md);
     5955        return false;
     5956    }
     5957    if (!psMetadataAdd(md, PS_LIST_TAIL, "moon_phase", PS_DATA_F32, NULL, object->moon_phase)) {
     5958        psError(PS_ERR_UNKNOWN, false, "failed to add item moon_phase");
     5959        psFree(md);
     5960        return false;
     5961    }
    57185962    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
    57195963        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    58006044        return false;
    58016045    }
     6046    char* obs_mode = psMetadataLookupPtr(&status, md, "obs_mode");
     6047    if (!status) {
     6048        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item obs_mode");
     6049        return false;
     6050    }
     6051    char* obs_group = psMetadataLookupPtr(&status, md, "obs_group");
     6052    if (!status) {
     6053        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item obs_group");
     6054        return false;
     6055    }
    58026056    psF32 airmass = psMetadataLookupF32(&status, md, "airmass");
    58036057    if (!status) {
     
    59956249        return false;
    59966250    }
     6251    psF32 sun_angle = psMetadataLookupF32(&status, md, "sun_angle");
     6252    if (!status) {
     6253        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item sun_angle");
     6254        return false;
     6255    }
     6256    psF32 sun_alt = psMetadataLookupF32(&status, md, "sun_alt");
     6257    if (!status) {
     6258        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item sun_alt");
     6259        return false;
     6260    }
     6261    psF32 moon_angle = psMetadataLookupF32(&status, md, "moon_angle");
     6262    if (!status) {
     6263        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item moon_angle");
     6264        return false;
     6265    }
     6266    psF32 moon_alt = psMetadataLookupF32(&status, md, "moon_alt");
     6267    if (!status) {
     6268        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item moon_alt");
     6269        return false;
     6270    }
     6271    psF32 moon_phase = psMetadataLookupF32(&status, md, "moon_phase");
     6272    if (!status) {
     6273        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item moon_phase");
     6274        return false;
     6275    }
    59976276    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
    59986277    if (!status) {
     
    60116290    }
    60126291
    6013     return rawImfileRowAlloc(exp_id, exp_name, camera, telescope, dateobs, tmp_class_id, class_id, uri, exp_type, filelevel, filter, comment, airmass, ra, decl, exp_time, sat_pixel_frac, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, m1_x, m1_y, m1_z, m1_tip, m1_tilt, m2_x, m2_y, m2_z, m2_tip, m2_tilt, env_temperature, env_humidity, env_wind_speed, env_wind_dir, teltemp_m1, teltemp_m1cell, teltemp_m2, teltemp_spider, teltemp_truss, teltemp_extra, pon_time, user_1, user_2, user_3, user_4, user_5, object, hostname, fault, epoch);
     6292    return rawImfileRowAlloc(exp_id, exp_name, camera, telescope, dateobs, tmp_class_id, class_id, uri, exp_type, filelevel, filter, comment, obs_mode, obs_group, airmass, ra, decl, exp_time, sat_pixel_frac, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, m1_x, m1_y, m1_z, m1_tip, m1_tilt, m2_x, m2_y, m2_z, m2_tip, m2_tilt, env_temperature, env_humidity, env_wind_speed, env_wind_dir, teltemp_m1, teltemp_m1cell, teltemp_m2, teltemp_spider, teltemp_truss, teltemp_extra, pon_time, user_1, user_2, user_3, user_4, user_5, object, sun_angle, sun_alt, moon_angle, moon_alt, moon_phase, hostname, fault, epoch);
    60146293}
    60156294psArray *rawImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    69497228static void chipProcessedImfileRowFree(chipProcessedImfileRow *object);
    69507229
    6951 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 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)
     7230chipProcessedImfileRow *chipProcessedImfileRowAlloc(psS64 chip_id, psS64 exp_id, const char *class_id, const char *data_state, 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 ap_resid, psF32 ap_resid_stdev, psF32 fwhm_major, psF32 fwhm_minor, psF32 iq_m2, psF32 iq_m2_err, psF32 iq_m2_lq, psF32 iq_m2_uq, psF32 iq_m2c, psF32 iq_m2c_err, psF32 iq_m2c_lq, psF32 iq_m2c_uq, psF32 iq_m2s, psF32 iq_m2s_err, psF32 iq_m2s_lq, psF32 iq_m2s_uq, psF32 iq_m3, psF32 iq_m3_err, psF32 iq_m3_lq, psF32 iq_m3_uq, psF32 iq_m4, psF32 iq_m4_err, psF32 iq_m4_lq, psF32 iq_m4_uq, psF32 dtime_detrend, psF32 dtime_photom, psF32 dtime_total, psF32 dtime_script, const char *hostname, psS32 n_stars, psS32 n_psfstars, psS32 n_iqstars, psS32 n_extended, psS32 n_cr, const char *path_base, psS16 fault)
    69527231{
    69537232    chipProcessedImfileRow *_object;
     
    69597238    _object->exp_id = exp_id;
    69607239    _object->class_id = psStringCopy(class_id);
     7240    _object->data_state = psStringCopy(data_state);
    69617241    _object->uri = psStringCopy(uri);
    69627242    _object->bg = bg;
     
    69687248    _object->fringe_1 = fringe_1;
    69697249    _object->fringe_2 = fringe_2;
    6970     _object->sigma_ra = sigma_ra;
    6971     _object->sigma_dec = sigma_dec;
    69727250    _object->ap_resid = ap_resid;
    69737251    _object->ap_resid_stdev = ap_resid_stdev;
    6974     _object->zp_mean = zp_mean;
    6975     _object->zp_stdev = zp_stdev;
    69767252    _object->fwhm_major = fwhm_major;
    69777253    _object->fwhm_minor = fwhm_minor;
     7254    _object->iq_m2 = iq_m2;
     7255    _object->iq_m2_err = iq_m2_err;
     7256    _object->iq_m2_lq = iq_m2_lq;
     7257    _object->iq_m2_uq = iq_m2_uq;
     7258    _object->iq_m2c = iq_m2c;
     7259    _object->iq_m2c_err = iq_m2c_err;
     7260    _object->iq_m2c_lq = iq_m2c_lq;
     7261    _object->iq_m2c_uq = iq_m2c_uq;
     7262    _object->iq_m2s = iq_m2s;
     7263    _object->iq_m2s_err = iq_m2s_err;
     7264    _object->iq_m2s_lq = iq_m2s_lq;
     7265    _object->iq_m2s_uq = iq_m2s_uq;
     7266    _object->iq_m3 = iq_m3;
     7267    _object->iq_m3_err = iq_m3_err;
     7268    _object->iq_m3_lq = iq_m3_lq;
     7269    _object->iq_m3_uq = iq_m3_uq;
     7270    _object->iq_m4 = iq_m4;
     7271    _object->iq_m4_err = iq_m4_err;
     7272    _object->iq_m4_lq = iq_m4_lq;
     7273    _object->iq_m4_uq = iq_m4_uq;
    69787274    _object->dtime_detrend = dtime_detrend;
    69797275    _object->dtime_photom = dtime_photom;
    6980     _object->dtime_astrom = dtime_astrom;
     7276    _object->dtime_total = dtime_total;
     7277    _object->dtime_script = dtime_script;
    69817278    _object->hostname = psStringCopy(hostname);
    69827279    _object->n_stars = n_stars;
     7280    _object->n_psfstars = n_psfstars;
     7281    _object->n_iqstars = n_iqstars;
    69837282    _object->n_extended = n_extended;
    69847283    _object->n_cr = n_cr;
    6985     _object->n_astrom = n_astrom;
    69867284    _object->path_base = psStringCopy(path_base);
    69877285    _object->fault = fault;
     
    69937291{
    69947292    psFree(object->class_id);
     7293    psFree(object->data_state);
    69957294    psFree(object->uri);
    69967295    psFree(object->hostname);
     
    70167315        return false;
    70177316    }
     7317    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "Key", "64")) {
     7318        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     7319        psFree(md);
     7320        return false;
     7321    }
    70187322    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, "255")) {
    70197323        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     
    70617365        return false;
    70627366    }
    7063     if (!psMetadataAdd(md, PS_LIST_TAIL, "sigma_ra", PS_DATA_F32, NULL, 0.0)) {
    7064         psError(PS_ERR_UNKNOWN, false, "failed to add item sigma_ra");
    7065         psFree(md);
    7066         return false;
    7067     }
    7068     if (!psMetadataAdd(md, PS_LIST_TAIL, "sigma_dec", PS_DATA_F32, NULL, 0.0)) {
    7069         psError(PS_ERR_UNKNOWN, false, "failed to add item sigma_dec");
    7070         psFree(md);
    7071         return false;
    7072     }
    70737367    if (!psMetadataAdd(md, PS_LIST_TAIL, "ap_resid", PS_DATA_F32, NULL, 0.0)) {
    70747368        psError(PS_ERR_UNKNOWN, false, "failed to add item ap_resid");
     
    70817375        return false;
    70827376    }
    7083     if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_mean", PS_DATA_F32, NULL, 0.0)) {
    7084         psError(PS_ERR_UNKNOWN, false, "failed to add item zp_mean");
    7085         psFree(md);
    7086         return false;
    7087     }
    7088     if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_stdev", PS_DATA_F32, NULL, 0.0)) {
    7089         psError(PS_ERR_UNKNOWN, false, "failed to add item zp_stdev");
    7090         psFree(md);
    7091         return false;
    7092     }
    70937377    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_major", PS_DATA_F32, NULL, 0.0)) {
    70947378        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_major");
     
    71017385        return false;
    71027386    }
     7387    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2", PS_DATA_F32, NULL, 0.0)) {
     7388        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2");
     7389        psFree(md);
     7390        return false;
     7391    }
     7392    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_err", PS_DATA_F32, NULL, 0.0)) {
     7393        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_err");
     7394        psFree(md);
     7395        return false;
     7396    }
     7397    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_lq", PS_DATA_F32, NULL, 0.0)) {
     7398        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_lq");
     7399        psFree(md);
     7400        return false;
     7401    }
     7402    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_uq", PS_DATA_F32, NULL, 0.0)) {
     7403        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_uq");
     7404        psFree(md);
     7405        return false;
     7406    }
     7407    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c", PS_DATA_F32, NULL, 0.0)) {
     7408        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c");
     7409        psFree(md);
     7410        return false;
     7411    }
     7412    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_err", PS_DATA_F32, NULL, 0.0)) {
     7413        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_err");
     7414        psFree(md);
     7415        return false;
     7416    }
     7417    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_lq", PS_DATA_F32, NULL, 0.0)) {
     7418        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_lq");
     7419        psFree(md);
     7420        return false;
     7421    }
     7422    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_uq", PS_DATA_F32, NULL, 0.0)) {
     7423        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_uq");
     7424        psFree(md);
     7425        return false;
     7426    }
     7427    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s", PS_DATA_F32, NULL, 0.0)) {
     7428        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s");
     7429        psFree(md);
     7430        return false;
     7431    }
     7432    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_err", PS_DATA_F32, NULL, 0.0)) {
     7433        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_err");
     7434        psFree(md);
     7435        return false;
     7436    }
     7437    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_lq", PS_DATA_F32, NULL, 0.0)) {
     7438        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_lq");
     7439        psFree(md);
     7440        return false;
     7441    }
     7442    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_uq", PS_DATA_F32, NULL, 0.0)) {
     7443        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_uq");
     7444        psFree(md);
     7445        return false;
     7446    }
     7447    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3", PS_DATA_F32, NULL, 0.0)) {
     7448        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3");
     7449        psFree(md);
     7450        return false;
     7451    }
     7452    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_err", PS_DATA_F32, NULL, 0.0)) {
     7453        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_err");
     7454        psFree(md);
     7455        return false;
     7456    }
     7457    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_lq", PS_DATA_F32, NULL, 0.0)) {
     7458        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_lq");
     7459        psFree(md);
     7460        return false;
     7461    }
     7462    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_uq", PS_DATA_F32, NULL, 0.0)) {
     7463        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_uq");
     7464        psFree(md);
     7465        return false;
     7466    }
     7467    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4", PS_DATA_F32, NULL, 0.0)) {
     7468        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4");
     7469        psFree(md);
     7470        return false;
     7471    }
     7472    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_err", PS_DATA_F32, NULL, 0.0)) {
     7473        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_err");
     7474        psFree(md);
     7475        return false;
     7476    }
     7477    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_lq", PS_DATA_F32, NULL, 0.0)) {
     7478        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_lq");
     7479        psFree(md);
     7480        return false;
     7481    }
     7482    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_uq", PS_DATA_F32, NULL, 0.0)) {
     7483        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_uq");
     7484        psFree(md);
     7485        return false;
     7486    }
    71037487    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, 0.0)) {
    71047488        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
     
    71117495        return false;
    71127496    }
    7113     if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_astrom", PS_DATA_F32, NULL, 0.0)) {
    7114         psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_astrom");
     7497    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_total", PS_DATA_F32, NULL, 0.0)) {
     7498        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_total");
     7499        psFree(md);
     7500        return false;
     7501    }
     7502    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, 0.0)) {
     7503        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
    71157504        psFree(md);
    71167505        return false;
     
    71267515        return false;
    71277516    }
     7517    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_psfstars", PS_DATA_S32, NULL, 0)) {
     7518        psError(PS_ERR_UNKNOWN, false, "failed to add item n_psfstars");
     7519        psFree(md);
     7520        return false;
     7521    }
     7522    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_iqstars", PS_DATA_S32, NULL, 0)) {
     7523        psError(PS_ERR_UNKNOWN, false, "failed to add item n_iqstars");
     7524        psFree(md);
     7525        return false;
     7526    }
    71287527    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_extended", PS_DATA_S32, NULL, 0)) {
    71297528        psError(PS_ERR_UNKNOWN, false, "failed to add item n_extended");
     
    71367535        return false;
    71377536    }
    7138     if (!psMetadataAdd(md, PS_LIST_TAIL, "n_astrom", PS_DATA_S32, NULL, 0)) {
    7139         psError(PS_ERR_UNKNOWN, false, "failed to add item n_astrom");
    7140         psFree(md);
    7141         return false;
    7142     }
    71437537    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
    71447538        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    71647558}
    71657559
    7166 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 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)
     7560bool chipProcessedImfileInsert(psDB * dbh, psS64 chip_id, psS64 exp_id, const char *class_id, const char *data_state, 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 ap_resid, psF32 ap_resid_stdev, psF32 fwhm_major, psF32 fwhm_minor, psF32 iq_m2, psF32 iq_m2_err, psF32 iq_m2_lq, psF32 iq_m2_uq, psF32 iq_m2c, psF32 iq_m2c_err, psF32 iq_m2c_lq, psF32 iq_m2c_uq, psF32 iq_m2s, psF32 iq_m2s_err, psF32 iq_m2s_lq, psF32 iq_m2s_uq, psF32 iq_m3, psF32 iq_m3_err, psF32 iq_m3_lq, psF32 iq_m3_uq, psF32 iq_m4, psF32 iq_m4_err, psF32 iq_m4_lq, psF32 iq_m4_uq, psF32 dtime_detrend, psF32 dtime_photom, psF32 dtime_total, psF32 dtime_script, const char *hostname, psS32 n_stars, psS32 n_psfstars, psS32 n_iqstars, psS32 n_extended, psS32 n_cr, const char *path_base, psS16 fault)
    71677561{
    71687562    psMetadata *md = psMetadataAlloc();
     
    71827576        return false;
    71837577    }
     7578    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     7579        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     7580        psFree(md);
     7581        return false;
     7582    }
    71847583    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
    71857584        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     
    72277626        return false;
    72287627    }
    7229     if (!psMetadataAdd(md, PS_LIST_TAIL, "sigma_ra", PS_DATA_F32, NULL, sigma_ra)) {
    7230         psError(PS_ERR_UNKNOWN, false, "failed to add item sigma_ra");
    7231         psFree(md);
    7232         return false;
    7233     }
    7234     if (!psMetadataAdd(md, PS_LIST_TAIL, "sigma_dec", PS_DATA_F32, NULL, sigma_dec)) {
    7235         psError(PS_ERR_UNKNOWN, false, "failed to add item sigma_dec");
    7236         psFree(md);
    7237         return false;
    7238     }
    72397628    if (!psMetadataAdd(md, PS_LIST_TAIL, "ap_resid", PS_DATA_F32, NULL, ap_resid)) {
    72407629        psError(PS_ERR_UNKNOWN, false, "failed to add item ap_resid");
     
    72477636        return false;
    72487637    }
    7249     if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_mean", PS_DATA_F32, NULL, zp_mean)) {
    7250         psError(PS_ERR_UNKNOWN, false, "failed to add item zp_mean");
    7251         psFree(md);
    7252         return false;
    7253     }
    7254     if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_stdev", PS_DATA_F32, NULL, zp_stdev)) {
    7255         psError(PS_ERR_UNKNOWN, false, "failed to add item zp_stdev");
    7256         psFree(md);
    7257         return false;
    7258     }
    72597638    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_major", PS_DATA_F32, NULL, fwhm_major)) {
    72607639        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_major");
     
    72677646        return false;
    72687647    }
     7648    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2", PS_DATA_F32, NULL, iq_m2)) {
     7649        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2");
     7650        psFree(md);
     7651        return false;
     7652    }
     7653    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_err", PS_DATA_F32, NULL, iq_m2_err)) {
     7654        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_err");
     7655        psFree(md);
     7656        return false;
     7657    }
     7658    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_lq", PS_DATA_F32, NULL, iq_m2_lq)) {
     7659        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_lq");
     7660        psFree(md);
     7661        return false;
     7662    }
     7663    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_uq", PS_DATA_F32, NULL, iq_m2_uq)) {
     7664        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_uq");
     7665        psFree(md);
     7666        return false;
     7667    }
     7668    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c", PS_DATA_F32, NULL, iq_m2c)) {
     7669        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c");
     7670        psFree(md);
     7671        return false;
     7672    }
     7673    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_err", PS_DATA_F32, NULL, iq_m2c_err)) {
     7674        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_err");
     7675        psFree(md);
     7676        return false;
     7677    }
     7678    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_lq", PS_DATA_F32, NULL, iq_m2c_lq)) {
     7679        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_lq");
     7680        psFree(md);
     7681        return false;
     7682    }
     7683    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_uq", PS_DATA_F32, NULL, iq_m2c_uq)) {
     7684        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_uq");
     7685        psFree(md);
     7686        return false;
     7687    }
     7688    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s", PS_DATA_F32, NULL, iq_m2s)) {
     7689        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s");
     7690        psFree(md);
     7691        return false;
     7692    }
     7693    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_err", PS_DATA_F32, NULL, iq_m2s_err)) {
     7694        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_err");
     7695        psFree(md);
     7696        return false;
     7697    }
     7698    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_lq", PS_DATA_F32, NULL, iq_m2s_lq)) {
     7699        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_lq");
     7700        psFree(md);
     7701        return false;
     7702    }
     7703    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_uq", PS_DATA_F32, NULL, iq_m2s_uq)) {
     7704        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_uq");
     7705        psFree(md);
     7706        return false;
     7707    }
     7708    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3", PS_DATA_F32, NULL, iq_m3)) {
     7709        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3");
     7710        psFree(md);
     7711        return false;
     7712    }
     7713    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_err", PS_DATA_F32, NULL, iq_m3_err)) {
     7714        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_err");
     7715        psFree(md);
     7716        return false;
     7717    }
     7718    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_lq", PS_DATA_F32, NULL, iq_m3_lq)) {
     7719        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_lq");
     7720        psFree(md);
     7721        return false;
     7722    }
     7723    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_uq", PS_DATA_F32, NULL, iq_m3_uq)) {
     7724        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_uq");
     7725        psFree(md);
     7726        return false;
     7727    }
     7728    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4", PS_DATA_F32, NULL, iq_m4)) {
     7729        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4");
     7730        psFree(md);
     7731        return false;
     7732    }
     7733    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_err", PS_DATA_F32, NULL, iq_m4_err)) {
     7734        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_err");
     7735        psFree(md);
     7736        return false;
     7737    }
     7738    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_lq", PS_DATA_F32, NULL, iq_m4_lq)) {
     7739        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_lq");
     7740        psFree(md);
     7741        return false;
     7742    }
     7743    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_uq", PS_DATA_F32, NULL, iq_m4_uq)) {
     7744        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_uq");
     7745        psFree(md);
     7746        return false;
     7747    }
    72697748    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, dtime_detrend)) {
    72707749        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
     
    72777756        return false;
    72787757    }
    7279     if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_astrom", PS_DATA_F32, NULL, dtime_astrom)) {
    7280         psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_astrom");
     7758    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_total", PS_DATA_F32, NULL, dtime_total)) {
     7759        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_total");
     7760        psFree(md);
     7761        return false;
     7762    }
     7763    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, dtime_script)) {
     7764        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
    72817765        psFree(md);
    72827766        return false;
     
    72927776        return false;
    72937777    }
     7778    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_psfstars", PS_DATA_S32, NULL, n_psfstars)) {
     7779        psError(PS_ERR_UNKNOWN, false, "failed to add item n_psfstars");
     7780        psFree(md);
     7781        return false;
     7782    }
     7783    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_iqstars", PS_DATA_S32, NULL, n_iqstars)) {
     7784        psError(PS_ERR_UNKNOWN, false, "failed to add item n_iqstars");
     7785        psFree(md);
     7786        return false;
     7787    }
    72947788    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_extended", PS_DATA_S32, NULL, n_extended)) {
    72957789        psError(PS_ERR_UNKNOWN, false, "failed to add item n_extended");
     
    72997793    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_cr", PS_DATA_S32, NULL, n_cr)) {
    73007794        psError(PS_ERR_UNKNOWN, false, "failed to add item n_cr");
    7301         psFree(md);
    7302         return false;
    7303     }
    7304     if (!psMetadataAdd(md, PS_LIST_TAIL, "n_astrom", PS_DATA_S32, NULL, n_astrom)) {
    7305         psError(PS_ERR_UNKNOWN, false, "failed to add item n_astrom");
    73067795        psFree(md);
    73077796        return false;
     
    73407829bool chipProcessedImfileInsertObject(psDB *dbh, chipProcessedImfileRow *object)
    73417830{
    7342     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);
     7831    return chipProcessedImfileInsert(dbh, object->chip_id, object->exp_id, object->class_id, object->data_state, 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->ap_resid, object->ap_resid_stdev, object->fwhm_major, object->fwhm_minor, object->iq_m2, object->iq_m2_err, object->iq_m2_lq, object->iq_m2_uq, object->iq_m2c, object->iq_m2c_err, object->iq_m2c_lq, object->iq_m2c_uq, object->iq_m2s, object->iq_m2s_err, object->iq_m2s_lq, object->iq_m2s_uq, object->iq_m3, object->iq_m3_err, object->iq_m3_lq, object->iq_m3_uq, object->iq_m4, object->iq_m4_err, object->iq_m4_lq, object->iq_m4_uq, object->dtime_detrend, object->dtime_photom, object->dtime_total, object->dtime_script, object->hostname, object->n_stars, object->n_psfstars, object->n_iqstars, object->n_extended, object->n_cr, object->path_base, object->fault);
    73437832}
    73447833
     
    74287917        return false;
    74297918    }
     7919    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     7920        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     7921        psFree(md);
     7922        return false;
     7923    }
    74307924    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, object->uri)) {
    74317925        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     
    74737967        return false;
    74747968    }
    7475     if (!psMetadataAdd(md, PS_LIST_TAIL, "sigma_ra", PS_DATA_F32, NULL, object->sigma_ra)) {
    7476         psError(PS_ERR_UNKNOWN, false, "failed to add item sigma_ra");
    7477         psFree(md);
    7478         return false;
    7479     }
    7480     if (!psMetadataAdd(md, PS_LIST_TAIL, "sigma_dec", PS_DATA_F32, NULL, object->sigma_dec)) {
    7481         psError(PS_ERR_UNKNOWN, false, "failed to add item sigma_dec");
    7482         psFree(md);
    7483         return false;
    7484     }
    74857969    if (!psMetadataAdd(md, PS_LIST_TAIL, "ap_resid", PS_DATA_F32, NULL, object->ap_resid)) {
    74867970        psError(PS_ERR_UNKNOWN, false, "failed to add item ap_resid");
     
    74937977        return false;
    74947978    }
    7495     if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_mean", PS_DATA_F32, NULL, object->zp_mean)) {
    7496         psError(PS_ERR_UNKNOWN, false, "failed to add item zp_mean");
    7497         psFree(md);
    7498         return false;
    7499     }
    7500     if (!psMetadataAdd(md, PS_LIST_TAIL, "zp_stdev", PS_DATA_F32, NULL, object->zp_stdev)) {
    7501         psError(PS_ERR_UNKNOWN, false, "failed to add item zp_stdev");
    7502         psFree(md);
    7503         return false;
    7504     }
    75057979    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_major", PS_DATA_F32, NULL, object->fwhm_major)) {
    75067980        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_major");
     
    75137987        return false;
    75147988    }
     7989    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2", PS_DATA_F32, NULL, object->iq_m2)) {
     7990        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2");
     7991        psFree(md);
     7992        return false;
     7993    }
     7994    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_err", PS_DATA_F32, NULL, object->iq_m2_err)) {
     7995        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_err");
     7996        psFree(md);
     7997        return false;
     7998    }
     7999    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_lq", PS_DATA_F32, NULL, object->iq_m2_lq)) {
     8000        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_lq");
     8001        psFree(md);
     8002        return false;
     8003    }
     8004    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_uq", PS_DATA_F32, NULL, object->iq_m2_uq)) {
     8005        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_uq");
     8006        psFree(md);
     8007        return false;
     8008    }
     8009    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c", PS_DATA_F32, NULL, object->iq_m2c)) {
     8010        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c");
     8011        psFree(md);
     8012        return false;
     8013    }
     8014    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_err", PS_DATA_F32, NULL, object->iq_m2c_err)) {
     8015        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_err");
     8016        psFree(md);
     8017        return false;
     8018    }
     8019    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_lq", PS_DATA_F32, NULL, object->iq_m2c_lq)) {
     8020        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_lq");
     8021        psFree(md);
     8022        return false;
     8023    }
     8024    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_uq", PS_DATA_F32, NULL, object->iq_m2c_uq)) {
     8025        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_uq");
     8026        psFree(md);
     8027        return false;
     8028    }
     8029    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s", PS_DATA_F32, NULL, object->iq_m2s)) {
     8030        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s");
     8031        psFree(md);
     8032        return false;
     8033    }
     8034    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_err", PS_DATA_F32, NULL, object->iq_m2s_err)) {
     8035        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_err");
     8036        psFree(md);
     8037        return false;
     8038    }
     8039    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_lq", PS_DATA_F32, NULL, object->iq_m2s_lq)) {
     8040        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_lq");
     8041        psFree(md);
     8042        return false;
     8043    }
     8044    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_uq", PS_DATA_F32, NULL, object->iq_m2s_uq)) {
     8045        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_uq");
     8046        psFree(md);
     8047        return false;
     8048    }
     8049    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3", PS_DATA_F32, NULL, object->iq_m3)) {
     8050        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3");
     8051        psFree(md);
     8052        return false;
     8053    }
     8054    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_err", PS_DATA_F32, NULL, object->iq_m3_err)) {
     8055        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_err");
     8056        psFree(md);
     8057        return false;
     8058    }
     8059    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_lq", PS_DATA_F32, NULL, object->iq_m3_lq)) {
     8060        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_lq");
     8061        psFree(md);
     8062        return false;
     8063    }
     8064    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_uq", PS_DATA_F32, NULL, object->iq_m3_uq)) {
     8065        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_uq");
     8066        psFree(md);
     8067        return false;
     8068    }
     8069    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4", PS_DATA_F32, NULL, object->iq_m4)) {
     8070        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4");
     8071        psFree(md);
     8072        return false;
     8073    }
     8074    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_err", PS_DATA_F32, NULL, object->iq_m4_err)) {
     8075        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_err");
     8076        psFree(md);
     8077        return false;
     8078    }
     8079    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_lq", PS_DATA_F32, NULL, object->iq_m4_lq)) {
     8080        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_lq");
     8081        psFree(md);
     8082        return false;
     8083    }
     8084    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_uq", PS_DATA_F32, NULL, object->iq_m4_uq)) {
     8085        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_uq");
     8086        psFree(md);
     8087        return false;
     8088    }
    75158089    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, object->dtime_detrend)) {
    75168090        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
     
    75238097        return false;
    75248098    }
    7525     if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_astrom", PS_DATA_F32, NULL, object->dtime_astrom)) {
    7526         psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_astrom");
     8099    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_total", PS_DATA_F32, NULL, object->dtime_total)) {
     8100        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_total");
     8101        psFree(md);
     8102        return false;
     8103    }
     8104    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, object->dtime_script)) {
     8105        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
    75278106        psFree(md);
    75288107        return false;
     
    75388117        return false;
    75398118    }
     8119    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_psfstars", PS_DATA_S32, NULL, object->n_psfstars)) {
     8120        psError(PS_ERR_UNKNOWN, false, "failed to add item n_psfstars");
     8121        psFree(md);
     8122        return false;
     8123    }
     8124    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_iqstars", PS_DATA_S32, NULL, object->n_iqstars)) {
     8125        psError(PS_ERR_UNKNOWN, false, "failed to add item n_iqstars");
     8126        psFree(md);
     8127        return false;
     8128    }
    75408129    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_extended", PS_DATA_S32, NULL, object->n_extended)) {
    75418130        psError(PS_ERR_UNKNOWN, false, "failed to add item n_extended");
     
    75488137        return false;
    75498138    }
    7550     if (!psMetadataAdd(md, PS_LIST_TAIL, "n_astrom", PS_DATA_S32, NULL, object->n_astrom)) {
    7551         psError(PS_ERR_UNKNOWN, false, "failed to add item n_astrom");
    7552         psFree(md);
    7553         return false;
    7554     }
    75558139    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
    75568140        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    75878171        return false;
    75888172    }
     8173    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     8174    if (!status) {
     8175        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     8176        return false;
     8177    }
    75898178    char* uri = psMetadataLookupPtr(&status, md, "uri");
    75908179    if (!status) {
     
    76328221        return false;
    76338222    }
    7634     psF32 sigma_ra = psMetadataLookupF32(&status, md, "sigma_ra");
    7635     if (!status) {
    7636         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item sigma_ra");
    7637         return false;
    7638     }
    7639     psF32 sigma_dec = psMetadataLookupF32(&status, md, "sigma_dec");
    7640     if (!status) {
    7641         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item sigma_dec");
    7642         return false;
    7643     }
    76448223    psF32 ap_resid = psMetadataLookupF32(&status, md, "ap_resid");
    76458224    if (!status) {
     
    76528231        return false;
    76538232    }
    7654     psF32 zp_mean = psMetadataLookupF32(&status, md, "zp_mean");
    7655     if (!status) {
    7656         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item zp_mean");
    7657         return false;
    7658     }
    7659     psF32 zp_stdev = psMetadataLookupF32(&status, md, "zp_stdev");
    7660     if (!status) {
    7661         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item zp_stdev");
    7662         return false;
    7663     }
    76648233    psF32 fwhm_major = psMetadataLookupF32(&status, md, "fwhm_major");
    76658234    if (!status) {
     
    76728241        return false;
    76738242    }
     8243    psF32 iq_m2 = psMetadataLookupF32(&status, md, "iq_m2");
     8244    if (!status) {
     8245        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2");
     8246        return false;
     8247    }
     8248    psF32 iq_m2_err = psMetadataLookupF32(&status, md, "iq_m2_err");
     8249    if (!status) {
     8250        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2_err");
     8251        return false;
     8252    }
     8253    psF32 iq_m2_lq = psMetadataLookupF32(&status, md, "iq_m2_lq");
     8254    if (!status) {
     8255        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2_lq");
     8256        return false;
     8257    }
     8258    psF32 iq_m2_uq = psMetadataLookupF32(&status, md, "iq_m2_uq");
     8259    if (!status) {
     8260        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2_uq");
     8261        return false;
     8262    }
     8263    psF32 iq_m2c = psMetadataLookupF32(&status, md, "iq_m2c");
     8264    if (!status) {
     8265        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2c");
     8266        return false;
     8267    }
     8268    psF32 iq_m2c_err = psMetadataLookupF32(&status, md, "iq_m2c_err");
     8269    if (!status) {
     8270        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2c_err");
     8271        return false;
     8272    }
     8273    psF32 iq_m2c_lq = psMetadataLookupF32(&status, md, "iq_m2c_lq");
     8274    if (!status) {
     8275        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2c_lq");
     8276        return false;
     8277    }
     8278    psF32 iq_m2c_uq = psMetadataLookupF32(&status, md, "iq_m2c_uq");
     8279    if (!status) {
     8280        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2c_uq");
     8281        return false;
     8282    }
     8283    psF32 iq_m2s = psMetadataLookupF32(&status, md, "iq_m2s");
     8284    if (!status) {
     8285        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2s");
     8286        return false;
     8287    }
     8288    psF32 iq_m2s_err = psMetadataLookupF32(&status, md, "iq_m2s_err");
     8289    if (!status) {
     8290        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2s_err");
     8291        return false;
     8292    }
     8293    psF32 iq_m2s_lq = psMetadataLookupF32(&status, md, "iq_m2s_lq");
     8294    if (!status) {
     8295        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2s_lq");
     8296        return false;
     8297    }
     8298    psF32 iq_m2s_uq = psMetadataLookupF32(&status, md, "iq_m2s_uq");
     8299    if (!status) {
     8300        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2s_uq");
     8301        return false;
     8302    }
     8303    psF32 iq_m3 = psMetadataLookupF32(&status, md, "iq_m3");
     8304    if (!status) {
     8305        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m3");
     8306        return false;
     8307    }
     8308    psF32 iq_m3_err = psMetadataLookupF32(&status, md, "iq_m3_err");
     8309    if (!status) {
     8310        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m3_err");
     8311        return false;
     8312    }
     8313    psF32 iq_m3_lq = psMetadataLookupF32(&status, md, "iq_m3_lq");
     8314    if (!status) {
     8315        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m3_lq");
     8316        return false;
     8317    }
     8318    psF32 iq_m3_uq = psMetadataLookupF32(&status, md, "iq_m3_uq");
     8319    if (!status) {
     8320        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m3_uq");
     8321        return false;
     8322    }
     8323    psF32 iq_m4 = psMetadataLookupF32(&status, md, "iq_m4");
     8324    if (!status) {
     8325        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m4");
     8326        return false;
     8327    }
     8328    psF32 iq_m4_err = psMetadataLookupF32(&status, md, "iq_m4_err");
     8329    if (!status) {
     8330        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m4_err");
     8331        return false;
     8332    }
     8333    psF32 iq_m4_lq = psMetadataLookupF32(&status, md, "iq_m4_lq");
     8334    if (!status) {
     8335        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m4_lq");
     8336        return false;
     8337    }
     8338    psF32 iq_m4_uq = psMetadataLookupF32(&status, md, "iq_m4_uq");
     8339    if (!status) {
     8340        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m4_uq");
     8341        return false;
     8342    }
    76748343    psF32 dtime_detrend = psMetadataLookupF32(&status, md, "dtime_detrend");
    76758344    if (!status) {
     
    76828351        return false;
    76838352    }
    7684     psF32 dtime_astrom = psMetadataLookupF32(&status, md, "dtime_astrom");
    7685     if (!status) {
    7686         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_astrom");
     8353    psF32 dtime_total = psMetadataLookupF32(&status, md, "dtime_total");
     8354    if (!status) {
     8355        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_total");
     8356        return false;
     8357    }
     8358    psF32 dtime_script = psMetadataLookupF32(&status, md, "dtime_script");
     8359    if (!status) {
     8360        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_script");
    76878361        return false;
    76888362    }
     
    76978371        return false;
    76988372    }
     8373    psS32 n_psfstars = psMetadataLookupS32(&status, md, "n_psfstars");
     8374    if (!status) {
     8375        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item n_psfstars");
     8376        return false;
     8377    }
     8378    psS32 n_iqstars = psMetadataLookupS32(&status, md, "n_iqstars");
     8379    if (!status) {
     8380        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item n_iqstars");
     8381        return false;
     8382    }
    76998383    psS32 n_extended = psMetadataLookupS32(&status, md, "n_extended");
    77008384    if (!status) {
     
    77078391        return false;
    77088392    }
    7709     psS32 n_astrom = psMetadataLookupS32(&status, md, "n_astrom");
    7710     if (!status) {
    7711         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item n_astrom");
    7712         return false;
    7713     }
    77148393    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
    77158394    if (!status) {
     
    77238402    }
    77248403
    7725     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);
     8404    return chipProcessedImfileRowAlloc(chip_id, exp_id, class_id, data_state, uri, bg, bg_stdev, bg_mean_stdev, bias, bias_stdev, fringe_0, fringe_1, fringe_2, ap_resid, ap_resid_stdev, fwhm_major, fwhm_minor, iq_m2, iq_m2_err, iq_m2_lq, iq_m2_uq, iq_m2c, iq_m2c_err, iq_m2c_lq, iq_m2c_uq, iq_m2s, iq_m2s_err, iq_m2s_lq, iq_m2s_uq, iq_m3, iq_m3_err, iq_m3_lq, iq_m3_uq, iq_m4, iq_m4_err, iq_m4_lq, iq_m4_uq, dtime_detrend, dtime_photom, dtime_total, dtime_script, hostname, n_stars, n_psfstars, n_iqstars, n_extended, n_cr, path_base, fault);
    77268405}
    77278406psArray *chipProcessedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    86199298static void camProcessedExpRowFree(camProcessedExpRow *object);
    86209299
    8621 camProcessedExpRow *camProcessedExpRowAlloc(psS64 cam_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)
     9300camProcessedExpRow *camProcessedExpRowAlloc(psS64 cam_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 iq_m2, psF32 iq_m2_err, psF32 iq_m2_lq, psF32 iq_m2_uq, psF32 iq_m2c, psF32 iq_m2c_err, psF32 iq_m2c_lq, psF32 iq_m2c_uq, psF32 iq_m2s, psF32 iq_m2s_err, psF32 iq_m2s_lq, psF32 iq_m2s_uq, psF32 iq_m3, psF32 iq_m3_err, psF32 iq_m3_lq, psF32 iq_m3_uq, psF32 iq_m4, psF32 iq_m4_err, psF32 iq_m4_lq, psF32 iq_m4_uq, psF32 dtime_script, psF32 dtime_astrom, psF32 dtime_addstar, const char *hostname, psS32 n_stars, psS32 n_psfstars, psS32 n_iqstars, psS32 n_extended, psS32 n_cr, psS32 n_astrom, const char *path_base, psS16 fault)
    86229301{
    86239302    camProcessedExpRow *_object;
     
    86449323    _object->fwhm_major = fwhm_major;
    86459324    _object->fwhm_minor = fwhm_minor;
    8646     _object->dtime_detrend = dtime_detrend;
    8647     _object->dtime_photom = dtime_photom;
     9325    _object->iq_m2 = iq_m2;
     9326    _object->iq_m2_err = iq_m2_err;
     9327    _object->iq_m2_lq = iq_m2_lq;
     9328    _object->iq_m2_uq = iq_m2_uq;
     9329    _object->iq_m2c = iq_m2c;
     9330    _object->iq_m2c_err = iq_m2c_err;
     9331    _object->iq_m2c_lq = iq_m2c_lq;
     9332    _object->iq_m2c_uq = iq_m2c_uq;
     9333    _object->iq_m2s = iq_m2s;
     9334    _object->iq_m2s_err = iq_m2s_err;
     9335    _object->iq_m2s_lq = iq_m2s_lq;
     9336    _object->iq_m2s_uq = iq_m2s_uq;
     9337    _object->iq_m3 = iq_m3;
     9338    _object->iq_m3_err = iq_m3_err;
     9339    _object->iq_m3_lq = iq_m3_lq;
     9340    _object->iq_m3_uq = iq_m3_uq;
     9341    _object->iq_m4 = iq_m4;
     9342    _object->iq_m4_err = iq_m4_err;
     9343    _object->iq_m4_lq = iq_m4_lq;
     9344    _object->iq_m4_uq = iq_m4_uq;
     9345    _object->dtime_script = dtime_script;
    86489346    _object->dtime_astrom = dtime_astrom;
     9347    _object->dtime_addstar = dtime_addstar;
    86499348    _object->hostname = psStringCopy(hostname);
    86509349    _object->n_stars = n_stars;
     9350    _object->n_psfstars = n_psfstars;
     9351    _object->n_iqstars = n_iqstars;
    86519352    _object->n_extended = n_extended;
    86529353    _object->n_cr = n_cr;
     
    87589459        return false;
    87599460    }
    8760     if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, 0.0)) {
    8761         psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
    8762         psFree(md);
    8763         return false;
    8764     }
    8765     if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_photom", PS_DATA_F32, NULL, 0.0)) {
    8766         psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_photom");
     9461    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2", PS_DATA_F32, NULL, 0.0)) {
     9462        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2");
     9463        psFree(md);
     9464        return false;
     9465    }
     9466    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_err", PS_DATA_F32, NULL, 0.0)) {
     9467        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_err");
     9468        psFree(md);
     9469        return false;
     9470    }
     9471    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_lq", PS_DATA_F32, NULL, 0.0)) {
     9472        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_lq");
     9473        psFree(md);
     9474        return false;
     9475    }
     9476    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_uq", PS_DATA_F32, NULL, 0.0)) {
     9477        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_uq");
     9478        psFree(md);
     9479        return false;
     9480    }
     9481    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c", PS_DATA_F32, NULL, 0.0)) {
     9482        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c");
     9483        psFree(md);
     9484        return false;
     9485    }
     9486    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_err", PS_DATA_F32, NULL, 0.0)) {
     9487        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_err");
     9488        psFree(md);
     9489        return false;
     9490    }
     9491    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_lq", PS_DATA_F32, NULL, 0.0)) {
     9492        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_lq");
     9493        psFree(md);
     9494        return false;
     9495    }
     9496    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_uq", PS_DATA_F32, NULL, 0.0)) {
     9497        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_uq");
     9498        psFree(md);
     9499        return false;
     9500    }
     9501    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s", PS_DATA_F32, NULL, 0.0)) {
     9502        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s");
     9503        psFree(md);
     9504        return false;
     9505    }
     9506    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_err", PS_DATA_F32, NULL, 0.0)) {
     9507        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_err");
     9508        psFree(md);
     9509        return false;
     9510    }
     9511    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_lq", PS_DATA_F32, NULL, 0.0)) {
     9512        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_lq");
     9513        psFree(md);
     9514        return false;
     9515    }
     9516    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_uq", PS_DATA_F32, NULL, 0.0)) {
     9517        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_uq");
     9518        psFree(md);
     9519        return false;
     9520    }
     9521    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3", PS_DATA_F32, NULL, 0.0)) {
     9522        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3");
     9523        psFree(md);
     9524        return false;
     9525    }
     9526    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_err", PS_DATA_F32, NULL, 0.0)) {
     9527        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_err");
     9528        psFree(md);
     9529        return false;
     9530    }
     9531    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_lq", PS_DATA_F32, NULL, 0.0)) {
     9532        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_lq");
     9533        psFree(md);
     9534        return false;
     9535    }
     9536    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_uq", PS_DATA_F32, NULL, 0.0)) {
     9537        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_uq");
     9538        psFree(md);
     9539        return false;
     9540    }
     9541    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4", PS_DATA_F32, NULL, 0.0)) {
     9542        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4");
     9543        psFree(md);
     9544        return false;
     9545    }
     9546    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_err", PS_DATA_F32, NULL, 0.0)) {
     9547        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_err");
     9548        psFree(md);
     9549        return false;
     9550    }
     9551    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_lq", PS_DATA_F32, NULL, 0.0)) {
     9552        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_lq");
     9553        psFree(md);
     9554        return false;
     9555    }
     9556    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_uq", PS_DATA_F32, NULL, 0.0)) {
     9557        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_uq");
     9558        psFree(md);
     9559        return false;
     9560    }
     9561    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, 0.0)) {
     9562        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
    87679563        psFree(md);
    87689564        return false;
     
    87739569        return false;
    87749570    }
     9571    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_addstar", PS_DATA_F32, NULL, 0.0)) {
     9572        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_addstar");
     9573        psFree(md);
     9574        return false;
     9575    }
    87759576    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
    87769577        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    87839584        return false;
    87849585    }
     9586    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_psfstars", PS_DATA_S32, NULL, 0)) {
     9587        psError(PS_ERR_UNKNOWN, false, "failed to add item n_psfstars");
     9588        psFree(md);
     9589        return false;
     9590    }
     9591    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_iqstars", PS_DATA_S32, NULL, 0)) {
     9592        psError(PS_ERR_UNKNOWN, false, "failed to add item n_iqstars");
     9593        psFree(md);
     9594        return false;
     9595    }
    87859596    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_extended", PS_DATA_S32, NULL, 0)) {
    87869597        psError(PS_ERR_UNKNOWN, false, "failed to add item n_extended");
     
    88219632}
    88229633
    8823 bool camProcessedExpInsert(psDB * dbh, psS64 cam_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)
     9634bool camProcessedExpInsert(psDB * dbh, psS64 cam_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 iq_m2, psF32 iq_m2_err, psF32 iq_m2_lq, psF32 iq_m2_uq, psF32 iq_m2c, psF32 iq_m2c_err, psF32 iq_m2c_lq, psF32 iq_m2c_uq, psF32 iq_m2s, psF32 iq_m2s_err, psF32 iq_m2s_lq, psF32 iq_m2s_uq, psF32 iq_m3, psF32 iq_m3_err, psF32 iq_m3_lq, psF32 iq_m3_uq, psF32 iq_m4, psF32 iq_m4_err, psF32 iq_m4_lq, psF32 iq_m4_uq, psF32 dtime_script, psF32 dtime_astrom, psF32 dtime_addstar, const char *hostname, psS32 n_stars, psS32 n_psfstars, psS32 n_iqstars, psS32 n_extended, psS32 n_cr, psS32 n_astrom, const char *path_base, psS16 fault)
    88249635{
    88259636    psMetadata *md = psMetadataAlloc();
     
    89149725        return false;
    89159726    }
    8916     if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, dtime_detrend)) {
    8917         psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
    8918         psFree(md);
    8919         return false;
    8920     }
    8921     if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_photom", PS_DATA_F32, NULL, dtime_photom)) {
    8922         psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_photom");
     9727    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2", PS_DATA_F32, NULL, iq_m2)) {
     9728        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2");
     9729        psFree(md);
     9730        return false;
     9731    }
     9732    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_err", PS_DATA_F32, NULL, iq_m2_err)) {
     9733        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_err");
     9734        psFree(md);
     9735        return false;
     9736    }
     9737    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_lq", PS_DATA_F32, NULL, iq_m2_lq)) {
     9738        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_lq");
     9739        psFree(md);
     9740        return false;
     9741    }
     9742    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_uq", PS_DATA_F32, NULL, iq_m2_uq)) {
     9743        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_uq");
     9744        psFree(md);
     9745        return false;
     9746    }
     9747    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c", PS_DATA_F32, NULL, iq_m2c)) {
     9748        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c");
     9749        psFree(md);
     9750        return false;
     9751    }
     9752    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_err", PS_DATA_F32, NULL, iq_m2c_err)) {
     9753        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_err");
     9754        psFree(md);
     9755        return false;
     9756    }
     9757    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_lq", PS_DATA_F32, NULL, iq_m2c_lq)) {
     9758        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_lq");
     9759        psFree(md);
     9760        return false;
     9761    }
     9762    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_uq", PS_DATA_F32, NULL, iq_m2c_uq)) {
     9763        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_uq");
     9764        psFree(md);
     9765        return false;
     9766    }
     9767    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s", PS_DATA_F32, NULL, iq_m2s)) {
     9768        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s");
     9769        psFree(md);
     9770        return false;
     9771    }
     9772    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_err", PS_DATA_F32, NULL, iq_m2s_err)) {
     9773        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_err");
     9774        psFree(md);
     9775        return false;
     9776    }
     9777    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_lq", PS_DATA_F32, NULL, iq_m2s_lq)) {
     9778        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_lq");
     9779        psFree(md);
     9780        return false;
     9781    }
     9782    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_uq", PS_DATA_F32, NULL, iq_m2s_uq)) {
     9783        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_uq");
     9784        psFree(md);
     9785        return false;
     9786    }
     9787    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3", PS_DATA_F32, NULL, iq_m3)) {
     9788        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3");
     9789        psFree(md);
     9790        return false;
     9791    }
     9792    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_err", PS_DATA_F32, NULL, iq_m3_err)) {
     9793        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_err");
     9794        psFree(md);
     9795        return false;
     9796    }
     9797    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_lq", PS_DATA_F32, NULL, iq_m3_lq)) {
     9798        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_lq");
     9799        psFree(md);
     9800        return false;
     9801    }
     9802    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_uq", PS_DATA_F32, NULL, iq_m3_uq)) {
     9803        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_uq");
     9804        psFree(md);
     9805        return false;
     9806    }
     9807    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4", PS_DATA_F32, NULL, iq_m4)) {
     9808        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4");
     9809        psFree(md);
     9810        return false;
     9811    }
     9812    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_err", PS_DATA_F32, NULL, iq_m4_err)) {
     9813        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_err");
     9814        psFree(md);
     9815        return false;
     9816    }
     9817    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_lq", PS_DATA_F32, NULL, iq_m4_lq)) {
     9818        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_lq");
     9819        psFree(md);
     9820        return false;
     9821    }
     9822    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_uq", PS_DATA_F32, NULL, iq_m4_uq)) {
     9823        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_uq");
     9824        psFree(md);
     9825        return false;
     9826    }
     9827    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, dtime_script)) {
     9828        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
    89239829        psFree(md);
    89249830        return false;
     
    89299835        return false;
    89309836    }
     9837    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_addstar", PS_DATA_F32, NULL, dtime_addstar)) {
     9838        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_addstar");
     9839        psFree(md);
     9840        return false;
     9841    }
    89319842    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, hostname)) {
    89329843        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    89369847    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_stars", PS_DATA_S32, NULL, n_stars)) {
    89379848        psError(PS_ERR_UNKNOWN, false, "failed to add item n_stars");
     9849        psFree(md);
     9850        return false;
     9851    }
     9852    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_psfstars", PS_DATA_S32, NULL, n_psfstars)) {
     9853        psError(PS_ERR_UNKNOWN, false, "failed to add item n_psfstars");
     9854        psFree(md);
     9855        return false;
     9856    }
     9857    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_iqstars", PS_DATA_S32, NULL, n_iqstars)) {
     9858        psError(PS_ERR_UNKNOWN, false, "failed to add item n_iqstars");
    89389859        psFree(md);
    89399860        return false;
     
    89879908bool camProcessedExpInsertObject(psDB *dbh, camProcessedExpRow *object)
    89889909{
    8989     return camProcessedExpInsert(dbh, object->cam_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);
     9910    return camProcessedExpInsert(dbh, object->cam_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->iq_m2, object->iq_m2_err, object->iq_m2_lq, object->iq_m2_uq, object->iq_m2c, object->iq_m2c_err, object->iq_m2c_lq, object->iq_m2c_uq, object->iq_m2s, object->iq_m2s_err, object->iq_m2s_lq, object->iq_m2s_uq, object->iq_m3, object->iq_m3_err, object->iq_m3_lq, object->iq_m3_uq, object->iq_m4, object->iq_m4_err, object->iq_m4_lq, object->iq_m4_uq, object->dtime_script, object->dtime_astrom, object->dtime_addstar, object->hostname, object->n_stars, object->n_psfstars, object->n_iqstars, object->n_extended, object->n_cr, object->n_astrom, object->path_base, object->fault);
    89909911}
    89919912
     
    915010071        return false;
    915110072    }
    9152     if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_detrend", PS_DATA_F32, NULL, object->dtime_detrend)) {
    9153         psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_detrend");
    9154         psFree(md);
    9155         return false;
    9156     }
    9157     if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_photom", PS_DATA_F32, NULL, object->dtime_photom)) {
    9158         psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_photom");
     10073    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2", PS_DATA_F32, NULL, object->iq_m2)) {
     10074        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2");
     10075        psFree(md);
     10076        return false;
     10077    }
     10078    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_err", PS_DATA_F32, NULL, object->iq_m2_err)) {
     10079        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_err");
     10080        psFree(md);
     10081        return false;
     10082    }
     10083    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_lq", PS_DATA_F32, NULL, object->iq_m2_lq)) {
     10084        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_lq");
     10085        psFree(md);
     10086        return false;
     10087    }
     10088    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2_uq", PS_DATA_F32, NULL, object->iq_m2_uq)) {
     10089        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2_uq");
     10090        psFree(md);
     10091        return false;
     10092    }
     10093    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c", PS_DATA_F32, NULL, object->iq_m2c)) {
     10094        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c");
     10095        psFree(md);
     10096        return false;
     10097    }
     10098    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_err", PS_DATA_F32, NULL, object->iq_m2c_err)) {
     10099        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_err");
     10100        psFree(md);
     10101        return false;
     10102    }
     10103    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_lq", PS_DATA_F32, NULL, object->iq_m2c_lq)) {
     10104        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_lq");
     10105        psFree(md);
     10106        return false;
     10107    }
     10108    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2c_uq", PS_DATA_F32, NULL, object->iq_m2c_uq)) {
     10109        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2c_uq");
     10110        psFree(md);
     10111        return false;
     10112    }
     10113    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s", PS_DATA_F32, NULL, object->iq_m2s)) {
     10114        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s");
     10115        psFree(md);
     10116        return false;
     10117    }
     10118    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_err", PS_DATA_F32, NULL, object->iq_m2s_err)) {
     10119        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_err");
     10120        psFree(md);
     10121        return false;
     10122    }
     10123    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_lq", PS_DATA_F32, NULL, object->iq_m2s_lq)) {
     10124        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_lq");
     10125        psFree(md);
     10126        return false;
     10127    }
     10128    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m2s_uq", PS_DATA_F32, NULL, object->iq_m2s_uq)) {
     10129        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m2s_uq");
     10130        psFree(md);
     10131        return false;
     10132    }
     10133    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3", PS_DATA_F32, NULL, object->iq_m3)) {
     10134        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3");
     10135        psFree(md);
     10136        return false;
     10137    }
     10138    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_err", PS_DATA_F32, NULL, object->iq_m3_err)) {
     10139        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_err");
     10140        psFree(md);
     10141        return false;
     10142    }
     10143    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_lq", PS_DATA_F32, NULL, object->iq_m3_lq)) {
     10144        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_lq");
     10145        psFree(md);
     10146        return false;
     10147    }
     10148    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m3_uq", PS_DATA_F32, NULL, object->iq_m3_uq)) {
     10149        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m3_uq");
     10150        psFree(md);
     10151        return false;
     10152    }
     10153    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4", PS_DATA_F32, NULL, object->iq_m4)) {
     10154        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4");
     10155        psFree(md);
     10156        return false;
     10157    }
     10158    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_err", PS_DATA_F32, NULL, object->iq_m4_err)) {
     10159        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_err");
     10160        psFree(md);
     10161        return false;
     10162    }
     10163    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_lq", PS_DATA_F32, NULL, object->iq_m4_lq)) {
     10164        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_lq");
     10165        psFree(md);
     10166        return false;
     10167    }
     10168    if (!psMetadataAdd(md, PS_LIST_TAIL, "iq_m4_uq", PS_DATA_F32, NULL, object->iq_m4_uq)) {
     10169        psError(PS_ERR_UNKNOWN, false, "failed to add item iq_m4_uq");
     10170        psFree(md);
     10171        return false;
     10172    }
     10173    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, object->dtime_script)) {
     10174        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
    915910175        psFree(md);
    916010176        return false;
     
    916510181        return false;
    916610182    }
     10183    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_addstar", PS_DATA_F32, NULL, object->dtime_addstar)) {
     10184        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_addstar");
     10185        psFree(md);
     10186        return false;
     10187    }
    916710188    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
    916810189        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    917510196        return false;
    917610197    }
     10198    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_psfstars", PS_DATA_S32, NULL, object->n_psfstars)) {
     10199        psError(PS_ERR_UNKNOWN, false, "failed to add item n_psfstars");
     10200        psFree(md);
     10201        return false;
     10202    }
     10203    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_iqstars", PS_DATA_S32, NULL, object->n_iqstars)) {
     10204        psError(PS_ERR_UNKNOWN, false, "failed to add item n_iqstars");
     10205        psFree(md);
     10206        return false;
     10207    }
    917710208    if (!psMetadataAdd(md, PS_LIST_TAIL, "n_extended", PS_DATA_S32, NULL, object->n_extended)) {
    917810209        psError(PS_ERR_UNKNOWN, false, "failed to add item n_extended");
     
    929910330        return false;
    930010331    }
    9301     psF32 dtime_detrend = psMetadataLookupF32(&status, md, "dtime_detrend");
    9302     if (!status) {
    9303         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_detrend");
    9304         return false;
    9305     }
    9306     psF32 dtime_photom = psMetadataLookupF32(&status, md, "dtime_photom");
    9307     if (!status) {
    9308         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_photom");
     10332    psF32 iq_m2 = psMetadataLookupF32(&status, md, "iq_m2");
     10333    if (!status) {
     10334        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2");
     10335        return false;
     10336    }
     10337    psF32 iq_m2_err = psMetadataLookupF32(&status, md, "iq_m2_err");
     10338    if (!status) {
     10339        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2_err");
     10340        return false;
     10341    }
     10342    psF32 iq_m2_lq = psMetadataLookupF32(&status, md, "iq_m2_lq");
     10343    if (!status) {
     10344        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2_lq");
     10345        return false;
     10346    }
     10347    psF32 iq_m2_uq = psMetadataLookupF32(&status, md, "iq_m2_uq");
     10348    if (!status) {
     10349        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2_uq");
     10350        return false;
     10351    }
     10352    psF32 iq_m2c = psMetadataLookupF32(&status, md, "iq_m2c");
     10353    if (!status) {
     10354        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2c");
     10355        return false;
     10356    }
     10357    psF32 iq_m2c_err = psMetadataLookupF32(&status, md, "iq_m2c_err");
     10358    if (!status) {
     10359        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2c_err");
     10360        return false;
     10361    }
     10362    psF32 iq_m2c_lq = psMetadataLookupF32(&status, md, "iq_m2c_lq");
     10363    if (!status) {
     10364        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2c_lq");
     10365        return false;
     10366    }
     10367    psF32 iq_m2c_uq = psMetadataLookupF32(&status, md, "iq_m2c_uq");
     10368    if (!status) {
     10369        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2c_uq");
     10370        return false;
     10371    }
     10372    psF32 iq_m2s = psMetadataLookupF32(&status, md, "iq_m2s");
     10373    if (!status) {
     10374        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2s");
     10375        return false;
     10376    }
     10377    psF32 iq_m2s_err = psMetadataLookupF32(&status, md, "iq_m2s_err");
     10378    if (!status) {
     10379        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2s_err");
     10380        return false;
     10381    }
     10382    psF32 iq_m2s_lq = psMetadataLookupF32(&status, md, "iq_m2s_lq");
     10383    if (!status) {
     10384        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2s_lq");
     10385        return false;
     10386    }
     10387    psF32 iq_m2s_uq = psMetadataLookupF32(&status, md, "iq_m2s_uq");
     10388    if (!status) {
     10389        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m2s_uq");
     10390        return false;
     10391    }
     10392    psF32 iq_m3 = psMetadataLookupF32(&status, md, "iq_m3");
     10393    if (!status) {
     10394        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m3");
     10395        return false;
     10396    }
     10397    psF32 iq_m3_err = psMetadataLookupF32(&status, md, "iq_m3_err");
     10398    if (!status) {
     10399        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m3_err");
     10400        return false;
     10401    }
     10402    psF32 iq_m3_lq = psMetadataLookupF32(&status, md, "iq_m3_lq");
     10403    if (!status) {
     10404        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m3_lq");
     10405        return false;
     10406    }
     10407    psF32 iq_m3_uq = psMetadataLookupF32(&status, md, "iq_m3_uq");
     10408    if (!status) {
     10409        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m3_uq");
     10410        return false;
     10411    }
     10412    psF32 iq_m4 = psMetadataLookupF32(&status, md, "iq_m4");
     10413    if (!status) {
     10414        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m4");
     10415        return false;
     10416    }
     10417    psF32 iq_m4_err = psMetadataLookupF32(&status, md, "iq_m4_err");
     10418    if (!status) {
     10419        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m4_err");
     10420        return false;
     10421    }
     10422    psF32 iq_m4_lq = psMetadataLookupF32(&status, md, "iq_m4_lq");
     10423    if (!status) {
     10424        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m4_lq");
     10425        return false;
     10426    }
     10427    psF32 iq_m4_uq = psMetadataLookupF32(&status, md, "iq_m4_uq");
     10428    if (!status) {
     10429        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iq_m4_uq");
     10430        return false;
     10431    }
     10432    psF32 dtime_script = psMetadataLookupF32(&status, md, "dtime_script");
     10433    if (!status) {
     10434        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_script");
    930910435        return false;
    931010436    }
     
    931410440        return false;
    931510441    }
     10442    psF32 dtime_addstar = psMetadataLookupF32(&status, md, "dtime_addstar");
     10443    if (!status) {
     10444        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_addstar");
     10445        return false;
     10446    }
    931610447    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
    931710448    if (!status) {
     
    932410455        return false;
    932510456    }
     10457    psS32 n_psfstars = psMetadataLookupS32(&status, md, "n_psfstars");
     10458    if (!status) {
     10459        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item n_psfstars");
     10460        return false;
     10461    }
     10462    psS32 n_iqstars = psMetadataLookupS32(&status, md, "n_iqstars");
     10463    if (!status) {
     10464        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item n_iqstars");
     10465        return false;
     10466    }
    932610467    psS32 n_extended = psMetadataLookupS32(&status, md, "n_extended");
    932710468    if (!status) {
     
    935010491    }
    935110492
    9352     return camProcessedExpRowAlloc(cam_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);
     10493    return camProcessedExpRowAlloc(cam_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, iq_m2, iq_m2_err, iq_m2_lq, iq_m2_uq, iq_m2c, iq_m2c_err, iq_m2c_lq, iq_m2c_uq, iq_m2s, iq_m2s_err, iq_m2s_lq, iq_m2s_uq, iq_m3, iq_m3_err, iq_m3_lq, iq_m3_uq, iq_m4, iq_m4_err, iq_m4_lq, iq_m4_uq, dtime_script, dtime_astrom, dtime_addstar, hostname, n_stars, n_psfstars, n_iqstars, n_extended, n_cr, n_astrom, path_base, fault);
    935310494}
    935410495psArray *camProcessedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1024611387static void fakeProcessedImfileRowFree(fakeProcessedImfileRow *object);
    1024711388
    10248 fakeProcessedImfileRow *fakeProcessedImfileRowAlloc(psS64 fake_id, psS64 exp_id, const char *class_id, const char *uri, psF32 dtime_fake, const char *hostname, const char *path_base, psS16 fault, psTime* epoch)
     11389fakeProcessedImfileRow *fakeProcessedImfileRowAlloc(psS64 fake_id, psS64 exp_id, const char *class_id, const char *uri, psF32 dtime_fake, psF32 dtime_script, const char *hostname, const char *path_base, const char *data_state, psS16 fault, psTime* epoch)
    1024911390{
    1025011391    fakeProcessedImfileRow *_object;
     
    1025811399    _object->uri = psStringCopy(uri);
    1025911400    _object->dtime_fake = dtime_fake;
     11401    _object->dtime_script = dtime_script;
    1026011402    _object->hostname = psStringCopy(hostname);
    1026111403    _object->path_base = psStringCopy(path_base);
     11404    _object->data_state = psStringCopy(data_state);
    1026211405    _object->fault = fault;
    1026311406    _object->epoch = psTimeCopy(epoch);
     
    1027211415    psFree(object->hostname);
    1027311416    psFree(object->path_base);
     11417    psFree(object->data_state);
    1027411418    psFree(object->epoch);
    1027511419}
     
    1030311447        return false;
    1030411448    }
     11449    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, 0.0)) {
     11450        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
     11451        psFree(md);
     11452        return false;
     11453    }
    1030511454    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
    1030611455        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    1031311462        return false;
    1031411463    }
     11464    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "Key", "64")) {
     11465        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     11466        psFree(md);
     11467        return false;
     11468    }
    1031511469    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
    1031611470        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1033611490}
    1033711491
    10338 bool fakeProcessedImfileInsert(psDB * dbh, psS64 fake_id, psS64 exp_id, const char *class_id, const char *uri, psF32 dtime_fake, const char *hostname, const char *path_base, psS16 fault, psTime* epoch)
     11492bool fakeProcessedImfileInsert(psDB * dbh, psS64 fake_id, psS64 exp_id, const char *class_id, const char *uri, psF32 dtime_fake, psF32 dtime_script, const char *hostname, const char *path_base, const char *data_state, psS16 fault, psTime* epoch)
    1033911493{
    1034011494    psMetadata *md = psMetadataAlloc();
     
    1036411518        return false;
    1036511519    }
     11520    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, dtime_script)) {
     11521        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
     11522        psFree(md);
     11523        return false;
     11524    }
    1036611525    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, hostname)) {
    1036711526        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    1037111530    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
    1037211531        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     11532        psFree(md);
     11533        return false;
     11534    }
     11535    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     11536        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    1037311537        psFree(md);
    1037411538        return false;
     
    1040711571bool fakeProcessedImfileInsertObject(psDB *dbh, fakeProcessedImfileRow *object)
    1040811572{
    10409     return fakeProcessedImfileInsert(dbh, object->fake_id, object->exp_id, object->class_id, object->uri, object->dtime_fake, object->hostname, object->path_base, object->fault, object->epoch);
     11573    return fakeProcessedImfileInsert(dbh, object->fake_id, object->exp_id, object->class_id, object->uri, object->dtime_fake, object->dtime_script, object->hostname, object->path_base, object->data_state, object->fault, object->epoch);
    1041011574}
    1041111575
     
    1050511669        return false;
    1050611670    }
     11671    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, object->dtime_script)) {
     11672        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
     11673        psFree(md);
     11674        return false;
     11675    }
    1050711676    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
    1050811677        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    1051511684        return false;
    1051611685    }
     11686    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     11687        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     11688        psFree(md);
     11689        return false;
     11690    }
    1051711691    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
    1051811692        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1055911733        return false;
    1056011734    }
     11735    psF32 dtime_script = psMetadataLookupF32(&status, md, "dtime_script");
     11736    if (!status) {
     11737        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_script");
     11738        return false;
     11739    }
    1056111740    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
    1056211741    if (!status) {
     
    1056911748        return false;
    1057011749    }
     11750    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     11751    if (!status) {
     11752        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     11753        return false;
     11754    }
    1057111755    psS16 fault = psMetadataLookupS16(&status, md, "fault");
    1057211756    if (!status) {
     
    1058011764    }
    1058111765
    10582     return fakeProcessedImfileRowAlloc(fake_id, exp_id, class_id, uri, dtime_fake, hostname, path_base, fault, epoch);
     11766    return fakeProcessedImfileRowAlloc(fake_id, exp_id, class_id, uri, dtime_fake, dtime_script, hostname, path_base, data_state, fault, epoch);
    1058311767}
    1058411768psArray *fakeProcessedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1186313047static void warpSkyfileRowFree(warpSkyfileRow *object);
    1186413048
    11865 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, psF32 dtime_warp, const char *hostname, psF32 good_frac, psS32 xmin, psS32 xmax, psS32 ymin, psS32 ymax, bool ignored, psS16 fault)
     13049warpSkyfileRow *warpSkyfileRowAlloc(psS64 warp_id, const char *skycell_id, const char *tess_id, const char *uri, const char *path_base, const char *data_state, psF64 bg, psF64 bg_stdev, psF32 dtime_warp, psF32 dtime_script, const char *hostname, psF32 good_frac, psS32 xmin, psS32 xmax, psS32 ymin, psS32 ymax, bool ignored, psS16 fault)
    1186613050{
    1186713051    warpSkyfileRow  *_object;
     
    1187513059    _object->uri = psStringCopy(uri);
    1187613060    _object->path_base = psStringCopy(path_base);
     13061    _object->data_state = psStringCopy(data_state);
    1187713062    _object->bg = bg;
    1187813063    _object->bg_stdev = bg_stdev;
    1187913064    _object->dtime_warp = dtime_warp;
     13065    _object->dtime_script = dtime_script;
    1188013066    _object->hostname = psStringCopy(hostname);
    1188113067    _object->good_frac = good_frac;
     
    1189613082    psFree(object->uri);
    1189713083    psFree(object->path_base);
     13084    psFree(object->data_state);
    1189813085    psFree(object->hostname);
    1189913086}
     
    1192713114        return false;
    1192813115    }
     13116    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "Key", "64")) {
     13117        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     13118        psFree(md);
     13119        return false;
     13120    }
    1192913121    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, 0.0)) {
    1193013122        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    1194213134        return false;
    1194313135    }
     13136    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, 0.0)) {
     13137        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
     13138        psFree(md);
     13139        return false;
     13140    }
    1194413141    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
    1194513142        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    1199513192}
    1199613193
    11997 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, psF32 dtime_warp, const char *hostname, psF32 good_frac, psS32 xmin, psS32 xmax, psS32 ymin, psS32 ymax, bool ignored, psS16 fault)
     13194bool warpSkyfileInsert(psDB * dbh, psS64 warp_id, const char *skycell_id, const char *tess_id, const char *uri, const char *path_base, const char *data_state, psF64 bg, psF64 bg_stdev, psF32 dtime_warp, psF32 dtime_script, const char *hostname, psF32 good_frac, psS32 xmin, psS32 xmax, psS32 ymin, psS32 ymax, bool ignored, psS16 fault)
    1199813195{
    1199913196    psMetadata *md = psMetadataAlloc();
     
    1202313220        return false;
    1202413221    }
     13222    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     13223        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     13224        psFree(md);
     13225        return false;
     13226    }
    1202513227    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, bg)) {
    1202613228        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    1203513237    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_warp", PS_DATA_F32, NULL, dtime_warp)) {
    1203613238        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_warp");
     13239        psFree(md);
     13240        return false;
     13241    }
     13242    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, dtime_script)) {
     13243        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
    1203713244        psFree(md);
    1203813245        return false;
     
    1210113308bool warpSkyfileInsertObject(psDB *dbh, warpSkyfileRow *object)
    1210213309{
    12103     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->xmin, object->xmax, object->ymin, object->ymax, object->ignored, object->fault);
     13310    return warpSkyfileInsert(dbh, object->warp_id, object->skycell_id, object->tess_id, object->uri, object->path_base, object->data_state, object->bg, object->bg_stdev, object->dtime_warp, object->dtime_script, object->hostname, object->good_frac, object->xmin, object->xmax, object->ymin, object->ymax, object->ignored, object->fault);
    1210413311}
    1210513312
     
    1219913406        return false;
    1220013407    }
     13408    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     13409        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     13410        psFree(md);
     13411        return false;
     13412    }
    1220113413    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, object->bg)) {
    1220213414        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    1221413426        return false;
    1221513427    }
     13428    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, object->dtime_script)) {
     13429        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
     13430        psFree(md);
     13431        return false;
     13432    }
    1221613433    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
    1221713434        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    1228813505        return false;
    1228913506    }
     13507    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     13508    if (!status) {
     13509        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     13510        return false;
     13511    }
    1229013512    psF64 bg = psMetadataLookupF64(&status, md, "bg");
    1229113513    if (!status) {
     
    1230313525        return false;
    1230413526    }
     13527    psF32 dtime_script = psMetadataLookupF32(&status, md, "dtime_script");
     13528    if (!status) {
     13529        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_script");
     13530        return false;
     13531    }
    1230513532    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
    1230613533    if (!status) {
     
    1234413571    }
    1234513572
    12346     return warpSkyfileRowAlloc(warp_id, skycell_id, tess_id, uri, path_base, bg, bg_stdev, dtime_warp, hostname, good_frac, xmin, xmax, ymin, ymax, ignored, fault);
     13573    return warpSkyfileRowAlloc(warp_id, skycell_id, tess_id, uri, path_base, data_state, bg, bg_stdev, dtime_warp, dtime_script, hostname, good_frac, xmin, xmax, ymin, ymax, ignored, fault);
    1234713574}
    1234813575psArray *warpSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1274213969static void diffRunRowFree(diffRunRow *object);
    1274313970
    12744 diffRunRow *diffRunRowAlloc(psS64 diff_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
     13971diffRunRow *diffRunRowAlloc(psS64 diff_id, const char *state, const char *label, const char *reduction, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
    1274513972{
    1274613973    diffRunRow      *_object;
     
    1275113978    _object->diff_id = diff_id;
    1275213979    _object->state = psStringCopy(state);
     13980    _object->label = psStringCopy(label);
     13981    _object->reduction = psStringCopy(reduction);
    1275313982    _object->workdir = psStringCopy(workdir);
    1275413983    _object->dvodb = psStringCopy(dvodb);
     
    1276313992{
    1276413993    psFree(object->state);
     13994    psFree(object->label);
     13995    psFree(object->reduction);
    1276513996    psFree(object->workdir);
    1276613997    psFree(object->dvodb);
     
    1278314014        return false;
    1278414015    }
     14016    if (!psMetadataAdd(md, PS_LIST_TAIL, "label", PS_DATA_STRING, "Key", "64")) {
     14017        psError(PS_ERR_UNKNOWN, false, "failed to add item label");
     14018        psFree(md);
     14019        return false;
     14020    }
     14021    if (!psMetadataAdd(md, PS_LIST_TAIL, "reduction", PS_DATA_STRING, "Reduction class", "64")) {
     14022        psError(PS_ERR_UNKNOWN, false, "failed to add item reduction");
     14023        psFree(md);
     14024        return false;
     14025    }
    1278514026    if (!psMetadataAdd(md, PS_LIST_TAIL, "workdir", PS_DATA_STRING, NULL, "255")) {
    1278614027        psError(PS_ERR_UNKNOWN, false, "failed to add item workdir");
     
    1282114062}
    1282214063
    12823 bool diffRunInsert(psDB * dbh, psS64 diff_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
     14064bool diffRunInsert(psDB * dbh, psS64 diff_id, const char *state, const char *label, const char *reduction, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
    1282414065{
    1282514066    psMetadata *md = psMetadataAlloc();
     
    1283114072    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, state)) {
    1283214073        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     14074        psFree(md);
     14075        return false;
     14076    }
     14077    if (!psMetadataAdd(md, PS_LIST_TAIL, "label", PS_DATA_STRING, NULL, label)) {
     14078        psError(PS_ERR_UNKNOWN, false, "failed to add item label");
     14079        psFree(md);
     14080        return false;
     14081    }
     14082    if (!psMetadataAdd(md, PS_LIST_TAIL, "reduction", PS_DATA_STRING, NULL, reduction)) {
     14083        psError(PS_ERR_UNKNOWN, false, "failed to add item reduction");
    1283314084        psFree(md);
    1283414085        return false;
     
    1288214133bool diffRunInsertObject(psDB *dbh, diffRunRow *object)
    1288314134{
    12884     return diffRunInsert(dbh, object->diff_id, object->state, object->workdir, object->dvodb, object->registered, object->skycell_id, object->tess_id);
     14135    return diffRunInsert(dbh, object->diff_id, object->state, object->label, object->reduction, object->workdir, object->dvodb, object->registered, object->skycell_id, object->tess_id);
    1288514136}
    1288614137
     
    1296514216        return false;
    1296614217    }
     14218    if (!psMetadataAdd(md, PS_LIST_TAIL, "label", PS_DATA_STRING, NULL, object->label)) {
     14219        psError(PS_ERR_UNKNOWN, false, "failed to add item label");
     14220        psFree(md);
     14221        return false;
     14222    }
     14223    if (!psMetadataAdd(md, PS_LIST_TAIL, "reduction", PS_DATA_STRING, NULL, object->reduction)) {
     14224        psError(PS_ERR_UNKNOWN, false, "failed to add item reduction");
     14225        psFree(md);
     14226        return false;
     14227    }
    1296714228    if (!psMetadataAdd(md, PS_LIST_TAIL, "workdir", PS_DATA_STRING, NULL, object->workdir)) {
    1296814229        psError(PS_ERR_UNKNOWN, false, "failed to add item workdir");
     
    1300914270        return false;
    1301014271    }
     14272    char* label = psMetadataLookupPtr(&status, md, "label");
     14273    if (!status) {
     14274        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item label");
     14275        return false;
     14276    }
     14277    char* reduction = psMetadataLookupPtr(&status, md, "reduction");
     14278    if (!status) {
     14279        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item reduction");
     14280        return false;
     14281    }
    1301114282    char* workdir = psMetadataLookupPtr(&status, md, "workdir");
    1301214283    if (!status) {
     
    1303514306    }
    1303614307
    13037     return diffRunRowAlloc(diff_id, state, workdir, dvodb, registered, skycell_id, tess_id);
     14308    return diffRunRowAlloc(diff_id, state, label, reduction, workdir, dvodb, registered, skycell_id, tess_id);
    1303814309}
    1303914310psArray *diffRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1356114832static void diffSkyfileRowFree(diffSkyfileRow *object);
    1356214833
    13563 diffSkyfileRow *diffSkyfileRowAlloc(psS64 diff_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psS32 stamps_num, psF32 stamps_rms, psS32 sources, psF32 dtime_diff, const char *hostname, psF32 good_frac, psS16 fault)
     14834diffSkyfileRow *diffSkyfileRowAlloc(psS64 diff_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psS32 stamps_num, psF32 stamps_mean, psF32 stamps_rms, psF32 norm, psF32 bg_diff, psF32 kernel_x, psF32 kernel_y, psF32 kernel_xx, psF32 kernel_xy, psF32 kernel_yy, psS32 sources, psF32 dtime_diff, psF32 dtime_match, psF32 dtime_phot, psF32 dtime_script, const char *hostname, psF32 good_frac, psS16 fault)
    1356414835{
    1356514836    diffSkyfileRow  *_object;
     
    1357414845    _object->bg_stdev = bg_stdev;
    1357514846    _object->stamps_num = stamps_num;
     14847    _object->stamps_mean = stamps_mean;
    1357614848    _object->stamps_rms = stamps_rms;
     14849    _object->norm = norm;
     14850    _object->bg_diff = bg_diff;
     14851    _object->kernel_x = kernel_x;
     14852    _object->kernel_y = kernel_y;
     14853    _object->kernel_xx = kernel_xx;
     14854    _object->kernel_xy = kernel_xy;
     14855    _object->kernel_yy = kernel_yy;
    1357714856    _object->sources = sources;
    1357814857    _object->dtime_diff = dtime_diff;
     14858    _object->dtime_match = dtime_match;
     14859    _object->dtime_phot = dtime_phot;
     14860    _object->dtime_script = dtime_script;
    1357914861    _object->hostname = psStringCopy(hostname);
    1358014862    _object->good_frac = good_frac;
     
    1362414906        return false;
    1362514907    }
     14908    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_mean", PS_DATA_F32, NULL, 0.0)) {
     14909        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_mean");
     14910        psFree(md);
     14911        return false;
     14912    }
    1362614913    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_rms", PS_DATA_F32, NULL, 0.0)) {
    1362714914        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_rms");
     
    1362914916        return false;
    1363014917    }
     14918    if (!psMetadataAdd(md, PS_LIST_TAIL, "norm", PS_DATA_F32, NULL, 0.0)) {
     14919        psError(PS_ERR_UNKNOWN, false, "failed to add item norm");
     14920        psFree(md);
     14921        return false;
     14922    }
     14923    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_diff", PS_DATA_F32, NULL, 0.0)) {
     14924        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_diff");
     14925        psFree(md);
     14926        return false;
     14927    }
     14928    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_x", PS_DATA_F32, NULL, 0.0)) {
     14929        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_x");
     14930        psFree(md);
     14931        return false;
     14932    }
     14933    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_y", PS_DATA_F32, NULL, 0.0)) {
     14934        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_y");
     14935        psFree(md);
     14936        return false;
     14937    }
     14938    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_xx", PS_DATA_F32, NULL, 0.0)) {
     14939        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_xx");
     14940        psFree(md);
     14941        return false;
     14942    }
     14943    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_xy", PS_DATA_F32, NULL, 0.0)) {
     14944        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_xy");
     14945        psFree(md);
     14946        return false;
     14947    }
     14948    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_yy", PS_DATA_F32, NULL, 0.0)) {
     14949        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_yy");
     14950        psFree(md);
     14951        return false;
     14952    }
    1363114953    if (!psMetadataAdd(md, PS_LIST_TAIL, "sources", PS_DATA_S32, NULL, 0)) {
    1363214954        psError(PS_ERR_UNKNOWN, false, "failed to add item sources");
     
    1363914961        return false;
    1364014962    }
     14963    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_match", PS_DATA_F32, NULL, 0.0)) {
     14964        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_match");
     14965        psFree(md);
     14966        return false;
     14967    }
     14968    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_phot", PS_DATA_F32, NULL, 0.0)) {
     14969        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_phot");
     14970        psFree(md);
     14971        return false;
     14972    }
     14973    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, 0.0)) {
     14974        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
     14975        psFree(md);
     14976        return false;
     14977    }
    1364114978    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
    1364214979        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    1366715004}
    1366815005
    13669 bool diffSkyfileInsert(psDB * dbh, psS64 diff_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psS32 stamps_num, psF32 stamps_rms, psS32 sources, psF32 dtime_diff, const char *hostname, psF32 good_frac, psS16 fault)
     15006bool diffSkyfileInsert(psDB * dbh, psS64 diff_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psS32 stamps_num, psF32 stamps_mean, psF32 stamps_rms, psF32 norm, psF32 bg_diff, psF32 kernel_x, psF32 kernel_y, psF32 kernel_xx, psF32 kernel_xy, psF32 kernel_yy, psS32 sources, psF32 dtime_diff, psF32 dtime_match, psF32 dtime_phot, psF32 dtime_script, const char *hostname, psF32 good_frac, psS16 fault)
    1367015007{
    1367115008    psMetadata *md = psMetadataAlloc();
     
    1370015037        return false;
    1370115038    }
     15039    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_mean", PS_DATA_F32, NULL, stamps_mean)) {
     15040        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_mean");
     15041        psFree(md);
     15042        return false;
     15043    }
    1370215044    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_rms", PS_DATA_F32, NULL, stamps_rms)) {
    1370315045        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_rms");
     
    1370515047        return false;
    1370615048    }
     15049    if (!psMetadataAdd(md, PS_LIST_TAIL, "norm", PS_DATA_F32, NULL, norm)) {
     15050        psError(PS_ERR_UNKNOWN, false, "failed to add item norm");
     15051        psFree(md);
     15052        return false;
     15053    }
     15054    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_diff", PS_DATA_F32, NULL, bg_diff)) {
     15055        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_diff");
     15056        psFree(md);
     15057        return false;
     15058    }
     15059    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_x", PS_DATA_F32, NULL, kernel_x)) {
     15060        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_x");
     15061        psFree(md);
     15062        return false;
     15063    }
     15064    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_y", PS_DATA_F32, NULL, kernel_y)) {
     15065        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_y");
     15066        psFree(md);
     15067        return false;
     15068    }
     15069    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_xx", PS_DATA_F32, NULL, kernel_xx)) {
     15070        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_xx");
     15071        psFree(md);
     15072        return false;
     15073    }
     15074    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_xy", PS_DATA_F32, NULL, kernel_xy)) {
     15075        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_xy");
     15076        psFree(md);
     15077        return false;
     15078    }
     15079    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_yy", PS_DATA_F32, NULL, kernel_yy)) {
     15080        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_yy");
     15081        psFree(md);
     15082        return false;
     15083    }
    1370715084    if (!psMetadataAdd(md, PS_LIST_TAIL, "sources", PS_DATA_S32, NULL, sources)) {
    1370815085        psError(PS_ERR_UNKNOWN, false, "failed to add item sources");
     
    1371215089    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_diff", PS_DATA_F32, NULL, dtime_diff)) {
    1371315090        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_diff");
     15091        psFree(md);
     15092        return false;
     15093    }
     15094    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_match", PS_DATA_F32, NULL, dtime_match)) {
     15095        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_match");
     15096        psFree(md);
     15097        return false;
     15098    }
     15099    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_phot", PS_DATA_F32, NULL, dtime_phot)) {
     15100        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_phot");
     15101        psFree(md);
     15102        return false;
     15103    }
     15104    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, dtime_script)) {
     15105        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
    1371415106        psFree(md);
    1371515107        return false;
     
    1375315145bool diffSkyfileInsertObject(psDB *dbh, diffSkyfileRow *object)
    1375415146{
    13755     return diffSkyfileInsert(dbh, object->diff_id, object->uri, object->path_base, object->bg, object->bg_stdev, object->stamps_num, object->stamps_rms, object->sources, object->dtime_diff, object->hostname, object->good_frac, object->fault);
     15147    return diffSkyfileInsert(dbh, object->diff_id, object->uri, object->path_base, object->bg, object->bg_stdev, object->stamps_num, object->stamps_mean, object->stamps_rms, object->norm, object->bg_diff, object->kernel_x, object->kernel_y, object->kernel_xx, object->kernel_xy, object->kernel_yy, object->sources, object->dtime_diff, object->dtime_match, object->dtime_phot, object->dtime_script, object->hostname, object->good_frac, object->fault);
    1375615148}
    1375715149
     
    1385615248        return false;
    1385715249    }
     15250    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_mean", PS_DATA_F32, NULL, object->stamps_mean)) {
     15251        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_mean");
     15252        psFree(md);
     15253        return false;
     15254    }
    1385815255    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_rms", PS_DATA_F32, NULL, object->stamps_rms)) {
    1385915256        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_rms");
     
    1386115258        return false;
    1386215259    }
     15260    if (!psMetadataAdd(md, PS_LIST_TAIL, "norm", PS_DATA_F32, NULL, object->norm)) {
     15261        psError(PS_ERR_UNKNOWN, false, "failed to add item norm");
     15262        psFree(md);
     15263        return false;
     15264    }
     15265    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_diff", PS_DATA_F32, NULL, object->bg_diff)) {
     15266        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_diff");
     15267        psFree(md);
     15268        return false;
     15269    }
     15270    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_x", PS_DATA_F32, NULL, object->kernel_x)) {
     15271        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_x");
     15272        psFree(md);
     15273        return false;
     15274    }
     15275    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_y", PS_DATA_F32, NULL, object->kernel_y)) {
     15276        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_y");
     15277        psFree(md);
     15278        return false;
     15279    }
     15280    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_xx", PS_DATA_F32, NULL, object->kernel_xx)) {
     15281        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_xx");
     15282        psFree(md);
     15283        return false;
     15284    }
     15285    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_xy", PS_DATA_F32, NULL, object->kernel_xy)) {
     15286        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_xy");
     15287        psFree(md);
     15288        return false;
     15289    }
     15290    if (!psMetadataAdd(md, PS_LIST_TAIL, "kernel_yy", PS_DATA_F32, NULL, object->kernel_yy)) {
     15291        psError(PS_ERR_UNKNOWN, false, "failed to add item kernel_yy");
     15292        psFree(md);
     15293        return false;
     15294    }
    1386315295    if (!psMetadataAdd(md, PS_LIST_TAIL, "sources", PS_DATA_S32, NULL, object->sources)) {
    1386415296        psError(PS_ERR_UNKNOWN, false, "failed to add item sources");
     
    1387115303        return false;
    1387215304    }
     15305    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_match", PS_DATA_F32, NULL, object->dtime_match)) {
     15306        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_match");
     15307        psFree(md);
     15308        return false;
     15309    }
     15310    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_phot", PS_DATA_F32, NULL, object->dtime_phot)) {
     15311        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_phot");
     15312        psFree(md);
     15313        return false;
     15314    }
     15315    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, object->dtime_script)) {
     15316        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
     15317        psFree(md);
     15318        return false;
     15319    }
    1387315320    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
    1387415321        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    1392515372        return false;
    1392615373    }
     15374    psF32 stamps_mean = psMetadataLookupF32(&status, md, "stamps_mean");
     15375    if (!status) {
     15376        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item stamps_mean");
     15377        return false;
     15378    }
    1392715379    psF32 stamps_rms = psMetadataLookupF32(&status, md, "stamps_rms");
    1392815380    if (!status) {
     
    1393015382        return false;
    1393115383    }
     15384    psF32 norm = psMetadataLookupF32(&status, md, "norm");
     15385    if (!status) {
     15386        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item norm");
     15387        return false;
     15388    }
     15389    psF32 bg_diff = psMetadataLookupF32(&status, md, "bg_diff");
     15390    if (!status) {
     15391        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_diff");
     15392        return false;
     15393    }
     15394    psF32 kernel_x = psMetadataLookupF32(&status, md, "kernel_x");
     15395    if (!status) {
     15396        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item kernel_x");
     15397        return false;
     15398    }
     15399    psF32 kernel_y = psMetadataLookupF32(&status, md, "kernel_y");
     15400    if (!status) {
     15401        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item kernel_y");
     15402        return false;
     15403    }
     15404    psF32 kernel_xx = psMetadataLookupF32(&status, md, "kernel_xx");
     15405    if (!status) {
     15406        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item kernel_xx");
     15407        return false;
     15408    }
     15409    psF32 kernel_xy = psMetadataLookupF32(&status, md, "kernel_xy");
     15410    if (!status) {
     15411        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item kernel_xy");
     15412        return false;
     15413    }
     15414    psF32 kernel_yy = psMetadataLookupF32(&status, md, "kernel_yy");
     15415    if (!status) {
     15416        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item kernel_yy");
     15417        return false;
     15418    }
    1393215419    psS32 sources = psMetadataLookupS32(&status, md, "sources");
    1393315420    if (!status) {
     
    1394015427        return false;
    1394115428    }
     15429    psF32 dtime_match = psMetadataLookupF32(&status, md, "dtime_match");
     15430    if (!status) {
     15431        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_match");
     15432        return false;
     15433    }
     15434    psF32 dtime_phot = psMetadataLookupF32(&status, md, "dtime_phot");
     15435    if (!status) {
     15436        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_phot");
     15437        return false;
     15438    }
     15439    psF32 dtime_script = psMetadataLookupF32(&status, md, "dtime_script");
     15440    if (!status) {
     15441        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_script");
     15442        return false;
     15443    }
    1394215444    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
    1394315445    if (!status) {
     
    1395615458    }
    1395715459
    13958     return diffSkyfileRowAlloc(diff_id, uri, path_base, bg, bg_stdev, stamps_num, stamps_rms, sources, dtime_diff, hostname, good_frac, fault);
     15460    return diffSkyfileRowAlloc(diff_id, uri, path_base, bg, bg_stdev, stamps_num, stamps_mean, stamps_rms, norm, bg_diff, kernel_x, kernel_y, kernel_xx, kernel_xy, kernel_yy, sources, dtime_diff, dtime_match, dtime_phot, dtime_script, hostname, good_frac, fault);
    1395915461}
    1396015462psArray *diffSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1407415576static void stackRunRowFree(stackRunRow *object);
    1407515577
    14076 stackRunRow *stackRunRowAlloc(psS64 stack_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id, const char *filter)
     15578stackRunRow *stackRunRowAlloc(psS64 stack_id, const char *state, const char *workdir, const char *label, const char *reduction, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id, const char *filter)
    1407715579{
    1407815580    stackRunRow     *_object;
     
    1408415586    _object->state = psStringCopy(state);
    1408515587    _object->workdir = psStringCopy(workdir);
     15588    _object->label = psStringCopy(label);
     15589    _object->reduction = psStringCopy(reduction);
    1408615590    _object->dvodb = psStringCopy(dvodb);
    1408715591    _object->registered = psTimeCopy(registered);
     
    1409715601    psFree(object->state);
    1409815602    psFree(object->workdir);
     15603    psFree(object->label);
     15604    psFree(object->reduction);
    1409915605    psFree(object->dvodb);
    1410015606    psFree(object->registered);
     
    1412215628        return false;
    1412315629    }
     15630    if (!psMetadataAdd(md, PS_LIST_TAIL, "label", PS_DATA_STRING, "Key", "64")) {
     15631        psError(PS_ERR_UNKNOWN, false, "failed to add item label");
     15632        psFree(md);
     15633        return false;
     15634    }
     15635    if (!psMetadataAdd(md, PS_LIST_TAIL, "reduction", PS_DATA_STRING, "Reduction class", "64")) {
     15636        psError(PS_ERR_UNKNOWN, false, "failed to add item reduction");
     15637        psFree(md);
     15638        return false;
     15639    }
    1412415640    if (!psMetadataAdd(md, PS_LIST_TAIL, "dvodb", PS_DATA_STRING, NULL, "255")) {
    1412515641        psError(PS_ERR_UNKNOWN, false, "failed to add item dvodb");
     
    1416015676}
    1416115677
    14162 bool stackRunInsert(psDB * dbh, psS64 stack_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id, const char *filter)
     15678bool stackRunInsert(psDB * dbh, psS64 stack_id, const char *state, const char *workdir, const char *label, const char *reduction, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id, const char *filter)
    1416315679{
    1416415680    psMetadata *md = psMetadataAlloc();
     
    1417515691    if (!psMetadataAdd(md, PS_LIST_TAIL, "workdir", PS_DATA_STRING, NULL, workdir)) {
    1417615692        psError(PS_ERR_UNKNOWN, false, "failed to add item workdir");
     15693        psFree(md);
     15694        return false;
     15695    }
     15696    if (!psMetadataAdd(md, PS_LIST_TAIL, "label", PS_DATA_STRING, NULL, label)) {
     15697        psError(PS_ERR_UNKNOWN, false, "failed to add item label");
     15698        psFree(md);
     15699        return false;
     15700    }
     15701    if (!psMetadataAdd(md, PS_LIST_TAIL, "reduction", PS_DATA_STRING, NULL, reduction)) {
     15702        psError(PS_ERR_UNKNOWN, false, "failed to add item reduction");
    1417715703        psFree(md);
    1417815704        return false;
     
    1422615752bool stackRunInsertObject(psDB *dbh, stackRunRow *object)
    1422715753{
    14228     return stackRunInsert(dbh, object->stack_id, object->state, object->workdir, object->dvodb, object->registered, object->skycell_id, object->tess_id, object->filter);
     15754    return stackRunInsert(dbh, object->stack_id, object->state, object->workdir, object->label, object->reduction, object->dvodb, object->registered, object->skycell_id, object->tess_id, object->filter);
    1422915755}
    1423015756
     
    1431415840        return false;
    1431515841    }
     15842    if (!psMetadataAdd(md, PS_LIST_TAIL, "label", PS_DATA_STRING, NULL, object->label)) {
     15843        psError(PS_ERR_UNKNOWN, false, "failed to add item label");
     15844        psFree(md);
     15845        return false;
     15846    }
     15847    if (!psMetadataAdd(md, PS_LIST_TAIL, "reduction", PS_DATA_STRING, NULL, object->reduction)) {
     15848        psError(PS_ERR_UNKNOWN, false, "failed to add item reduction");
     15849        psFree(md);
     15850        return false;
     15851    }
    1431615852    if (!psMetadataAdd(md, PS_LIST_TAIL, "dvodb", PS_DATA_STRING, NULL, object->dvodb)) {
    1431715853        psError(PS_ERR_UNKNOWN, false, "failed to add item dvodb");
     
    1436315899        return false;
    1436415900    }
     15901    char* label = psMetadataLookupPtr(&status, md, "label");
     15902    if (!status) {
     15903        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item label");
     15904        return false;
     15905    }
     15906    char* reduction = psMetadataLookupPtr(&status, md, "reduction");
     15907    if (!status) {
     15908        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item reduction");
     15909        return false;
     15910    }
    1436515911    char* dvodb = psMetadataLookupPtr(&status, md, "dvodb");
    1436615912    if (!status) {
     
    1438915935    }
    1439015936
    14391     return stackRunRowAlloc(stack_id, state, workdir, dvodb, registered, skycell_id, tess_id, filter);
     15937    return stackRunRowAlloc(stack_id, state, workdir, label, reduction, dvodb, registered, skycell_id, tess_id, filter);
    1439215938}
    1439315939psArray *stackRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1480716353static void stackSumSkyfileRowFree(stackSumSkyfileRow *object);
    1480816354
    14809 stackSumSkyfileRow *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)
     16355stackSumSkyfileRow *stackSumSkyfileRowAlloc(psS64 stack_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF32 dtime_stack, psF32 dtime_match_mean, psF32 dtime_match_stdev, psF32 dtime_initial, psF32 dtime_reject, psF32 dtime_final, psF32 dtime_phot, psF32 dtime_script, psF32 match_mean, psF32 match_stdev, psF32 match_rms, psF32 stamps_mean, psF32 stamps_stdev, psS32 stamps_min, psS32 reject_images, psF32 reject_pix_mean, psF32 reject_pix_stdev, psS32 sources, const char *hostname, psF32 good_frac, psS16 fault)
    1481016356{
    1481116357    stackSumSkyfileRow *_object;
     
    1482016366    _object->bg_stdev = bg_stdev;
    1482116367    _object->dtime_stack = dtime_stack;
     16368    _object->dtime_match_mean = dtime_match_mean;
     16369    _object->dtime_match_stdev = dtime_match_stdev;
     16370    _object->dtime_initial = dtime_initial;
     16371    _object->dtime_reject = dtime_reject;
     16372    _object->dtime_final = dtime_final;
     16373    _object->dtime_phot = dtime_phot;
     16374    _object->dtime_script = dtime_script;
     16375    _object->match_mean = match_mean;
     16376    _object->match_stdev = match_stdev;
     16377    _object->match_rms = match_rms;
     16378    _object->stamps_mean = stamps_mean;
     16379    _object->stamps_stdev = stamps_stdev;
     16380    _object->stamps_min = stamps_min;
     16381    _object->reject_images = reject_images;
     16382    _object->reject_pix_mean = reject_pix_mean;
     16383    _object->reject_pix_stdev = reject_pix_stdev;
     16384    _object->sources = sources;
    1482216385    _object->hostname = psStringCopy(hostname);
    1482316386    _object->good_frac = good_frac;
     
    1486716430        return false;
    1486816431    }
     16432    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_match_mean", PS_DATA_F32, "Key", 0.0)) {
     16433        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_match_mean");
     16434        psFree(md);
     16435        return false;
     16436    }
     16437    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_match_stdev", PS_DATA_F32, "Key", 0.0)) {
     16438        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_match_stdev");
     16439        psFree(md);
     16440        return false;
     16441    }
     16442    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_initial", PS_DATA_F32, "Key", 0.0)) {
     16443        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_initial");
     16444        psFree(md);
     16445        return false;
     16446    }
     16447    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_reject", PS_DATA_F32, "Key", 0.0)) {
     16448        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_reject");
     16449        psFree(md);
     16450        return false;
     16451    }
     16452    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_final", PS_DATA_F32, "Key", 0.0)) {
     16453        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_final");
     16454        psFree(md);
     16455        return false;
     16456    }
     16457    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_phot", PS_DATA_F32, "Key", 0.0)) {
     16458        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_phot");
     16459        psFree(md);
     16460        return false;
     16461    }
     16462    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, 0.0)) {
     16463        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
     16464        psFree(md);
     16465        return false;
     16466    }
     16467    if (!psMetadataAdd(md, PS_LIST_TAIL, "match_mean", PS_DATA_F32, NULL, 0.0)) {
     16468        psError(PS_ERR_UNKNOWN, false, "failed to add item match_mean");
     16469        psFree(md);
     16470        return false;
     16471    }
     16472    if (!psMetadataAdd(md, PS_LIST_TAIL, "match_stdev", PS_DATA_F32, NULL, 0.0)) {
     16473        psError(PS_ERR_UNKNOWN, false, "failed to add item match_stdev");
     16474        psFree(md);
     16475        return false;
     16476    }
     16477    if (!psMetadataAdd(md, PS_LIST_TAIL, "match_rms", PS_DATA_F32, NULL, 0.0)) {
     16478        psError(PS_ERR_UNKNOWN, false, "failed to add item match_rms");
     16479        psFree(md);
     16480        return false;
     16481    }
     16482    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_mean", PS_DATA_F32, NULL, 0.0)) {
     16483        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_mean");
     16484        psFree(md);
     16485        return false;
     16486    }
     16487    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_stdev", PS_DATA_F32, NULL, 0.0)) {
     16488        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_stdev");
     16489        psFree(md);
     16490        return false;
     16491    }
     16492    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_min", PS_DATA_S32, NULL, 0)) {
     16493        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_min");
     16494        psFree(md);
     16495        return false;
     16496    }
     16497    if (!psMetadataAdd(md, PS_LIST_TAIL, "reject_images", PS_DATA_S32, NULL, 0)) {
     16498        psError(PS_ERR_UNKNOWN, false, "failed to add item reject_images");
     16499        psFree(md);
     16500        return false;
     16501    }
     16502    if (!psMetadataAdd(md, PS_LIST_TAIL, "reject_pix_mean", PS_DATA_F32, NULL, 0.0)) {
     16503        psError(PS_ERR_UNKNOWN, false, "failed to add item reject_pix_mean");
     16504        psFree(md);
     16505        return false;
     16506    }
     16507    if (!psMetadataAdd(md, PS_LIST_TAIL, "reject_pix_stdev", PS_DATA_F32, NULL, 0.0)) {
     16508        psError(PS_ERR_UNKNOWN, false, "failed to add item reject_pix_stdev");
     16509        psFree(md);
     16510        return false;
     16511    }
     16512    if (!psMetadataAdd(md, PS_LIST_TAIL, "sources", PS_DATA_S32, NULL, 0)) {
     16513        psError(PS_ERR_UNKNOWN, false, "failed to add item sources");
     16514        psFree(md);
     16515        return false;
     16516    }
    1486916517    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
    1487016518        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    1489516543}
    1489616544
    14897 bool 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)
     16545bool stackSumSkyfileInsert(psDB * dbh, psS64 stack_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev, psF32 dtime_stack, psF32 dtime_match_mean, psF32 dtime_match_stdev, psF32 dtime_initial, psF32 dtime_reject, psF32 dtime_final, psF32 dtime_phot, psF32 dtime_script, psF32 match_mean, psF32 match_stdev, psF32 match_rms, psF32 stamps_mean, psF32 stamps_stdev, psS32 stamps_min, psS32 reject_images, psF32 reject_pix_mean, psF32 reject_pix_stdev, psS32 sources, const char *hostname, psF32 good_frac, psS16 fault)
    1489816546{
    1489916547    psMetadata *md = psMetadataAlloc();
     
    1492516573    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_stack", PS_DATA_F32, NULL, dtime_stack)) {
    1492616574        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_stack");
     16575        psFree(md);
     16576        return false;
     16577    }
     16578    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_match_mean", PS_DATA_F32, NULL, dtime_match_mean)) {
     16579        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_match_mean");
     16580        psFree(md);
     16581        return false;
     16582    }
     16583    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_match_stdev", PS_DATA_F32, NULL, dtime_match_stdev)) {
     16584        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_match_stdev");
     16585        psFree(md);
     16586        return false;
     16587    }
     16588    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_initial", PS_DATA_F32, NULL, dtime_initial)) {
     16589        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_initial");
     16590        psFree(md);
     16591        return false;
     16592    }
     16593    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_reject", PS_DATA_F32, NULL, dtime_reject)) {
     16594        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_reject");
     16595        psFree(md);
     16596        return false;
     16597    }
     16598    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_final", PS_DATA_F32, NULL, dtime_final)) {
     16599        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_final");
     16600        psFree(md);
     16601        return false;
     16602    }
     16603    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_phot", PS_DATA_F32, NULL, dtime_phot)) {
     16604        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_phot");
     16605        psFree(md);
     16606        return false;
     16607    }
     16608    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, dtime_script)) {
     16609        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
     16610        psFree(md);
     16611        return false;
     16612    }
     16613    if (!psMetadataAdd(md, PS_LIST_TAIL, "match_mean", PS_DATA_F32, NULL, match_mean)) {
     16614        psError(PS_ERR_UNKNOWN, false, "failed to add item match_mean");
     16615        psFree(md);
     16616        return false;
     16617    }
     16618    if (!psMetadataAdd(md, PS_LIST_TAIL, "match_stdev", PS_DATA_F32, NULL, match_stdev)) {
     16619        psError(PS_ERR_UNKNOWN, false, "failed to add item match_stdev");
     16620        psFree(md);
     16621        return false;
     16622    }
     16623    if (!psMetadataAdd(md, PS_LIST_TAIL, "match_rms", PS_DATA_F32, NULL, match_rms)) {
     16624        psError(PS_ERR_UNKNOWN, false, "failed to add item match_rms");
     16625        psFree(md);
     16626        return false;
     16627    }
     16628    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_mean", PS_DATA_F32, NULL, stamps_mean)) {
     16629        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_mean");
     16630        psFree(md);
     16631        return false;
     16632    }
     16633    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_stdev", PS_DATA_F32, NULL, stamps_stdev)) {
     16634        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_stdev");
     16635        psFree(md);
     16636        return false;
     16637    }
     16638    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_min", PS_DATA_S32, NULL, stamps_min)) {
     16639        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_min");
     16640        psFree(md);
     16641        return false;
     16642    }
     16643    if (!psMetadataAdd(md, PS_LIST_TAIL, "reject_images", PS_DATA_S32, NULL, reject_images)) {
     16644        psError(PS_ERR_UNKNOWN, false, "failed to add item reject_images");
     16645        psFree(md);
     16646        return false;
     16647    }
     16648    if (!psMetadataAdd(md, PS_LIST_TAIL, "reject_pix_mean", PS_DATA_F32, NULL, reject_pix_mean)) {
     16649        psError(PS_ERR_UNKNOWN, false, "failed to add item reject_pix_mean");
     16650        psFree(md);
     16651        return false;
     16652    }
     16653    if (!psMetadataAdd(md, PS_LIST_TAIL, "reject_pix_stdev", PS_DATA_F32, NULL, reject_pix_stdev)) {
     16654        psError(PS_ERR_UNKNOWN, false, "failed to add item reject_pix_stdev");
     16655        psFree(md);
     16656        return false;
     16657    }
     16658    if (!psMetadataAdd(md, PS_LIST_TAIL, "sources", PS_DATA_S32, NULL, sources)) {
     16659        psError(PS_ERR_UNKNOWN, false, "failed to add item sources");
    1492716660        psFree(md);
    1492816661        return false;
     
    1496616699bool stackSumSkyfileInsertObject(psDB *dbh, stackSumSkyfileRow *object)
    1496716700{
    14968     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);
     16701    return stackSumSkyfileInsert(dbh, object->stack_id, object->uri, object->path_base, object->bg, object->bg_stdev, object->dtime_stack, object->dtime_match_mean, object->dtime_match_stdev, object->dtime_initial, object->dtime_reject, object->dtime_final, object->dtime_phot, object->dtime_script, object->match_mean, object->match_stdev, object->match_rms, object->stamps_mean, object->stamps_stdev, object->stamps_min, object->reject_images, object->reject_pix_mean, object->reject_pix_stdev, object->sources, object->hostname, object->good_frac, object->fault);
    1496916702}
    1497016703
     
    1506916802        return false;
    1507016803    }
     16804    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_match_mean", PS_DATA_F32, NULL, object->dtime_match_mean)) {
     16805        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_match_mean");
     16806        psFree(md);
     16807        return false;
     16808    }
     16809    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_match_stdev", PS_DATA_F32, NULL, object->dtime_match_stdev)) {
     16810        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_match_stdev");
     16811        psFree(md);
     16812        return false;
     16813    }
     16814    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_initial", PS_DATA_F32, NULL, object->dtime_initial)) {
     16815        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_initial");
     16816        psFree(md);
     16817        return false;
     16818    }
     16819    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_reject", PS_DATA_F32, NULL, object->dtime_reject)) {
     16820        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_reject");
     16821        psFree(md);
     16822        return false;
     16823    }
     16824    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_final", PS_DATA_F32, NULL, object->dtime_final)) {
     16825        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_final");
     16826        psFree(md);
     16827        return false;
     16828    }
     16829    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_phot", PS_DATA_F32, NULL, object->dtime_phot)) {
     16830        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_phot");
     16831        psFree(md);
     16832        return false;
     16833    }
     16834    if (!psMetadataAdd(md, PS_LIST_TAIL, "dtime_script", PS_DATA_F32, NULL, object->dtime_script)) {
     16835        psError(PS_ERR_UNKNOWN, false, "failed to add item dtime_script");
     16836        psFree(md);
     16837        return false;
     16838    }
     16839    if (!psMetadataAdd(md, PS_LIST_TAIL, "match_mean", PS_DATA_F32, NULL, object->match_mean)) {
     16840        psError(PS_ERR_UNKNOWN, false, "failed to add item match_mean");
     16841        psFree(md);
     16842        return false;
     16843    }
     16844    if (!psMetadataAdd(md, PS_LIST_TAIL, "match_stdev", PS_DATA_F32, NULL, object->match_stdev)) {
     16845        psError(PS_ERR_UNKNOWN, false, "failed to add item match_stdev");
     16846        psFree(md);
     16847        return false;
     16848    }
     16849    if (!psMetadataAdd(md, PS_LIST_TAIL, "match_rms", PS_DATA_F32, NULL, object->match_rms)) {
     16850        psError(PS_ERR_UNKNOWN, false, "failed to add item match_rms");
     16851        psFree(md);
     16852        return false;
     16853    }
     16854    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_mean", PS_DATA_F32, NULL, object->stamps_mean)) {
     16855        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_mean");
     16856        psFree(md);
     16857        return false;
     16858    }
     16859    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_stdev", PS_DATA_F32, NULL, object->stamps_stdev)) {
     16860        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_stdev");
     16861        psFree(md);
     16862        return false;
     16863    }
     16864    if (!psMetadataAdd(md, PS_LIST_TAIL, "stamps_min", PS_DATA_S32, NULL, object->stamps_min)) {
     16865        psError(PS_ERR_UNKNOWN, false, "failed to add item stamps_min");
     16866        psFree(md);
     16867        return false;
     16868    }
     16869    if (!psMetadataAdd(md, PS_LIST_TAIL, "reject_images", PS_DATA_S32, NULL, object->reject_images)) {
     16870        psError(PS_ERR_UNKNOWN, false, "failed to add item reject_images");
     16871        psFree(md);
     16872        return false;
     16873    }
     16874    if (!psMetadataAdd(md, PS_LIST_TAIL, "reject_pix_mean", PS_DATA_F32, NULL, object->reject_pix_mean)) {
     16875        psError(PS_ERR_UNKNOWN, false, "failed to add item reject_pix_mean");
     16876        psFree(md);
     16877        return false;
     16878    }
     16879    if (!psMetadataAdd(md, PS_LIST_TAIL, "reject_pix_stdev", PS_DATA_F32, NULL, object->reject_pix_stdev)) {
     16880        psError(PS_ERR_UNKNOWN, false, "failed to add item reject_pix_stdev");
     16881        psFree(md);
     16882        return false;
     16883    }
     16884    if (!psMetadataAdd(md, PS_LIST_TAIL, "sources", PS_DATA_S32, NULL, object->sources)) {
     16885        psError(PS_ERR_UNKNOWN, false, "failed to add item sources");
     16886        psFree(md);
     16887        return false;
     16888    }
    1507116889    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
    1507216890        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     
    1512316941        return false;
    1512416942    }
     16943    psF32 dtime_match_mean = psMetadataLookupF32(&status, md, "dtime_match_mean");
     16944    if (!status) {
     16945        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_match_mean");
     16946        return false;
     16947    }
     16948    psF32 dtime_match_stdev = psMetadataLookupF32(&status, md, "dtime_match_stdev");
     16949    if (!status) {
     16950        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_match_stdev");
     16951        return false;
     16952    }
     16953    psF32 dtime_initial = psMetadataLookupF32(&status, md, "dtime_initial");
     16954    if (!status) {
     16955        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_initial");
     16956        return false;
     16957    }
     16958    psF32 dtime_reject = psMetadataLookupF32(&status, md, "dtime_reject");
     16959    if (!status) {
     16960        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_reject");
     16961        return false;
     16962    }
     16963    psF32 dtime_final = psMetadataLookupF32(&status, md, "dtime_final");
     16964    if (!status) {
     16965        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_final");
     16966        return false;
     16967    }
     16968    psF32 dtime_phot = psMetadataLookupF32(&status, md, "dtime_phot");
     16969    if (!status) {
     16970        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_phot");
     16971        return false;
     16972    }
     16973    psF32 dtime_script = psMetadataLookupF32(&status, md, "dtime_script");
     16974    if (!status) {
     16975        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dtime_script");
     16976        return false;
     16977    }
     16978    psF32 match_mean = psMetadataLookupF32(&status, md, "match_mean");
     16979    if (!status) {
     16980        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item match_mean");
     16981        return false;
     16982    }
     16983    psF32 match_stdev = psMetadataLookupF32(&status, md, "match_stdev");
     16984    if (!status) {
     16985        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item match_stdev");
     16986        return false;
     16987    }
     16988    psF32 match_rms = psMetadataLookupF32(&status, md, "match_rms");
     16989    if (!status) {
     16990        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item match_rms");
     16991        return false;
     16992    }
     16993    psF32 stamps_mean = psMetadataLookupF32(&status, md, "stamps_mean");
     16994    if (!status) {
     16995        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item stamps_mean");
     16996        return false;
     16997    }
     16998    psF32 stamps_stdev = psMetadataLookupF32(&status, md, "stamps_stdev");
     16999    if (!status) {
     17000        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item stamps_stdev");
     17001        return false;
     17002    }
     17003    psS32 stamps_min = psMetadataLookupS32(&status, md, "stamps_min");
     17004    if (!status) {
     17005        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item stamps_min");
     17006        return false;
     17007    }
     17008    psS32 reject_images = psMetadataLookupS32(&status, md, "reject_images");
     17009    if (!status) {
     17010        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item reject_images");
     17011        return false;
     17012    }
     17013    psF32 reject_pix_mean = psMetadataLookupF32(&status, md, "reject_pix_mean");
     17014    if (!status) {
     17015        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item reject_pix_mean");
     17016        return false;
     17017    }
     17018    psF32 reject_pix_stdev = psMetadataLookupF32(&status, md, "reject_pix_stdev");
     17019    if (!status) {
     17020        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item reject_pix_stdev");
     17021        return false;
     17022    }
     17023    psS32 sources = psMetadataLookupS32(&status, md, "sources");
     17024    if (!status) {
     17025        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item sources");
     17026        return false;
     17027    }
    1512517028    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
    1512617029    if (!status) {
     
    1513917042    }
    1514017043
    15141     return stackSumSkyfileRowAlloc(stack_id, uri, path_base, bg, bg_stdev, dtime_stack, hostname, good_frac, fault);
     17044    return stackSumSkyfileRowAlloc(stack_id, uri, path_base, bg, bg_stdev, dtime_stack, dtime_match_mean, dtime_match_stdev, dtime_initial, dtime_reject, dtime_final, dtime_phot, dtime_script, match_mean, match_stdev, match_rms, stamps_mean, stamps_stdev, stamps_min, reject_images, reject_pix_mean, reject_pix_stdev, sources, hostname, good_frac, fault);
    1514217045}
    1514317046psArray *stackSumSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1525717160static void detRunRowFree(detRunRow *object);
    1525817161
    15259 detRunRow *detRunRowAlloc(psS64 det_id, psS32 iteration, const char *det_type, const char *mode, const char *state, const char *filelevel, const char *workdir, const char *camera, const char *telescope, const char *exp_type, const char *reduction, const char *filter, psF32 airmass_min, psF32 airmass_max, psF32 exp_time_min, psF32 exp_time_max, psF32 ccd_temp_min, psF32 ccd_temp_max, psF64 posang_min, psF64 posang_max, psTime* registered, psTime* time_begin, psTime* time_end, psTime* use_begin, psTime* use_end, psF32 solang_min, psF32 solang_max, const char *label, psS32 parent)
     17162detRunRow *detRunRowAlloc(psS64 det_id, psS32 iteration, const char *det_type, const char *mode, const char *state, const char *filelevel, const char *workdir, const char *camera, const char *telescope, const char *exp_type, const char *reduction, const char *filter, psF32 airmass_min, psF32 airmass_max, psF32 exp_time_min, psF32 exp_time_max, psF32 ccd_temp_min, psF32 ccd_temp_max, psF64 posang_min, psF64 posang_max, psTime* registered, psTime* time_begin, psTime* time_end, psTime* use_begin, psTime* use_end, psF32 solang_min, psF32 solang_max, const char *label, psS64 ref_det_id, psS32 ref_iter)
    1526017163{
    1526117164    detRunRow       *_object;
     
    1529217195    _object->solang_max = solang_max;
    1529317196    _object->label = psStringCopy(label);
    15294     _object->parent = parent;
     17197    _object->ref_det_id = ref_det_id;
     17198    _object->ref_iter = ref_iter;
    1529517199
    1529617200    return _object;
     
    1546017364        return false;
    1546117365    }
    15462     if (!psMetadataAdd(md, PS_LIST_TAIL, "parent", PS_DATA_S32, "Key", 0)) {
    15463         psError(PS_ERR_UNKNOWN, false, "failed to add item parent");
     17366    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_det_id", PS_DATA_S64, "reference for 'verify' and 'correction' analysis", 0)) {
     17367        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_det_id");
     17368        psFree(md);
     17369        return false;
     17370    }
     17371    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_iter", PS_DATA_S32, "reference for 'verify' and 'correction' analysis", 0)) {
     17372        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_iter");
    1546417373        psFree(md);
    1546517374        return false;
     
    1547817387}
    1547917388
    15480 bool detRunInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *det_type, const char *mode, const char *state, const char *filelevel, const char *workdir, const char *camera, const char *telescope, const char *exp_type, const char *reduction, const char *filter, psF32 airmass_min, psF32 airmass_max, psF32 exp_time_min, psF32 exp_time_max, psF32 ccd_temp_min, psF32 ccd_temp_max, psF64 posang_min, psF64 posang_max, psTime* registered, psTime* time_begin, psTime* time_end, psTime* use_begin, psTime* use_end, psF32 solang_min, psF32 solang_max, const char *label, psS32 parent)
     17389bool detRunInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *det_type, const char *mode, const char *state, const char *filelevel, const char *workdir, const char *camera, const char *telescope, const char *exp_type, const char *reduction, const char *filter, psF32 airmass_min, psF32 airmass_max, psF32 exp_time_min, psF32 exp_time_max, psF32 ccd_temp_min, psF32 ccd_temp_max, psF64 posang_min, psF64 posang_max, psTime* registered, psTime* time_begin, psTime* time_end, psTime* use_begin, psTime* use_end, psF32 solang_min, psF32 solang_max, const char *label, psS64 ref_det_id, psS32 ref_iter)
    1548117390{
    1548217391    psMetadata *md = psMetadataAlloc();
     
    1562117530        return false;
    1562217531    }
    15623     if (!psMetadataAdd(md, PS_LIST_TAIL, "parent", PS_DATA_S32, NULL, parent)) {
    15624         psError(PS_ERR_UNKNOWN, false, "failed to add item parent");
     17532    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_det_id", PS_DATA_S64, NULL, ref_det_id)) {
     17533        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_det_id");
     17534        psFree(md);
     17535        return false;
     17536    }
     17537    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_iter", PS_DATA_S32, NULL, ref_iter)) {
     17538        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_iter");
    1562517539        psFree(md);
    1562617540        return false;
     
    1564917563bool detRunInsertObject(psDB *dbh, detRunRow *object)
    1565017564{
    15651     return detRunInsert(dbh, object->det_id, object->iteration, object->det_type, object->mode, object->state, object->filelevel, object->workdir, object->camera, object->telescope, object->exp_type, object->reduction, object->filter, object->airmass_min, object->airmass_max, object->exp_time_min, object->exp_time_max, object->ccd_temp_min, object->ccd_temp_max, object->posang_min, object->posang_max, object->registered, object->time_begin, object->time_end, object->use_begin, object->use_end, object->solang_min, object->solang_max, object->label, object->parent);
     17565    return detRunInsert(dbh, object->det_id, object->iteration, object->det_type, object->mode, object->state, object->filelevel, object->workdir, object->camera, object->telescope, object->exp_type, object->reduction, object->filter, object->airmass_min, object->airmass_max, object->exp_time_min, object->exp_time_max, object->ccd_temp_min, object->ccd_temp_max, object->posang_min, object->posang_max, object->registered, object->time_begin, object->time_end, object->use_begin, object->use_end, object->solang_min, object->solang_max, object->label, object->ref_det_id, object->ref_iter);
    1565217566}
    1565317567
     
    1586217776        return false;
    1586317777    }
    15864     if (!psMetadataAdd(md, PS_LIST_TAIL, "parent", PS_DATA_S32, NULL, object->parent)) {
    15865         psError(PS_ERR_UNKNOWN, false, "failed to add item parent");
     17778    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_det_id", PS_DATA_S64, NULL, object->ref_det_id)) {
     17779        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_det_id");
     17780        psFree(md);
     17781        return false;
     17782    }
     17783    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_iter", PS_DATA_S32, NULL, object->ref_iter)) {
     17784        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_iter");
    1586617785        psFree(md);
    1586717786        return false;
     
    1601617935        return false;
    1601717936    }
    16018     psS32 parent = psMetadataLookupS32(&status, md, "parent");
    16019     if (!status) {
    16020         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item parent");
    16021         return false;
    16022     }
    16023 
    16024     return detRunRowAlloc(det_id, iteration, det_type, mode, state, filelevel, workdir, camera, telescope, exp_type, reduction, filter, airmass_min, airmass_max, exp_time_min, exp_time_max, ccd_temp_min, ccd_temp_max, posang_min, posang_max, registered, time_begin, time_end, use_begin, use_end, solang_min, solang_max, label, parent);
     17937    psS64 ref_det_id = psMetadataLookupS64(&status, md, "ref_det_id");
     17938    if (!status) {
     17939        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ref_det_id");
     17940        return false;
     17941    }
     17942    psS32 ref_iter = psMetadataLookupS32(&status, md, "ref_iter");
     17943    if (!status) {
     17944        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ref_iter");
     17945        return false;
     17946    }
     17947
     17948    return detRunRowAlloc(det_id, iteration, det_type, mode, state, filelevel, workdir, camera, telescope, exp_type, reduction, filter, airmass_min, airmass_max, exp_time_min, exp_time_max, ccd_temp_min, ccd_temp_max, posang_min, posang_max, registered, time_begin, time_end, use_begin, use_end, solang_min, solang_max, label, ref_det_id, ref_iter);
    1602517949}
    1602617950psArray *detRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1648218406static void detProcessedImfileRowFree(detProcessedImfileRow *object);
    1648318407
    16484 detProcessedImfileRow *detProcessedImfileRowAlloc(psS64 det_id, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     18408detProcessedImfileRow *detProcessedImfileRowAlloc(psS64 det_id, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    1648518409{
    1648618410    detProcessedImfileRow *_object;
     
    1650618430    _object->user_5 = user_5;
    1650718431    _object->path_base = psStringCopy(path_base);
     18432    _object->data_state = psStringCopy(data_state);
    1650818433    _object->fault = fault;
    1650918434
     
    1651718442    psFree(object->recipe);
    1651818443    psFree(object->path_base);
     18444    psFree(object->data_state);
    1651918445}
    1652018446
     
    1660718533        return false;
    1660818534    }
     18535    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "full, cleaned, purged (only track end states; request states are in detRunSummary by iteration)", "64")) {
     18536        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     18537        psFree(md);
     18538        return false;
     18539    }
    1660918540    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
    1661018541        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1662518556}
    1662618557
    16627 bool detProcessedImfileInsert(psDB * dbh, psS64 det_id, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     18558bool detProcessedImfileInsert(psDB * dbh, psS64 det_id, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    1662818559{
    1662918560    psMetadata *md = psMetadataAlloc();
     
    1671018641    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
    1671118642        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     18643        psFree(md);
     18644        return false;
     18645    }
     18646    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     18647        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    1671218648        psFree(md);
    1671318649        return false;
     
    1674118677bool detProcessedImfileInsertObject(psDB *dbh, detProcessedImfileRow *object)
    1674218678{
    16743     return detProcessedImfileInsert(dbh, object->det_id, object->exp_id, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
     18679    return detProcessedImfileInsert(dbh, object->det_id, object->exp_id, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->data_state, object->fault);
    1674418680}
    1674518681
     
    1689918835        return false;
    1690018836    }
     18837    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     18838        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     18839        psFree(md);
     18840        return false;
     18841    }
    1690118842    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
    1690218843        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1699818939        return false;
    1699918940    }
     18941    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     18942    if (!status) {
     18943        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     18944        return false;
     18945    }
    1700018946    psS16 fault = psMetadataLookupS16(&status, md, "fault");
    1700118947    if (!status) {
     
    1700418950    }
    1700518951
    17006     return detProcessedImfileRowAlloc(det_id, exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, fault);
     18952    return detProcessedImfileRowAlloc(det_id, exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, data_state, fault);
    1700718953}
    1700818954psArray *detProcessedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1712219068static void detProcessedExpRowFree(detProcessedExpRow *object);
    1712319069
    17124 detProcessedExpRow *detProcessedExpRowAlloc(psS64 det_id, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     19070detProcessedExpRow *detProcessedExpRowAlloc(psS64 det_id, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    1712519071{
    1712619072    detProcessedExpRow *_object;
     
    1714419090    _object->user_5 = user_5;
    1714519091    _object->path_base = psStringCopy(path_base);
     19092    _object->data_state = psStringCopy(data_state);
    1714619093    _object->fault = fault;
    1714719094
     
    1715319100    psFree(object->recipe);
    1715419101    psFree(object->path_base);
     19102    psFree(object->data_state);
    1715519103}
    1715619104
     
    1723319181        return false;
    1723419182    }
     19183    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "full, cleaned, purged (only track end states; request states are in detRunSummary by iteration)", "64")) {
     19184        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     19185        psFree(md);
     19186        return false;
     19187    }
    1723519188    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
    1723619189        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1725119204}
    1725219205
    17253 bool detProcessedExpInsert(psDB * dbh, psS64 det_id, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     19206bool detProcessedExpInsert(psDB * dbh, psS64 det_id, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    1725419207{
    1725519208    psMetadata *md = psMetadataAlloc();
     
    1732619279    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
    1732719280        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     19281        psFree(md);
     19282        return false;
     19283    }
     19284    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     19285        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    1732819286        psFree(md);
    1732919287        return false;
     
    1735719315bool detProcessedExpInsertObject(psDB *dbh, detProcessedExpRow *object)
    1735819316{
    17359     return detProcessedExpInsert(dbh, object->det_id, object->exp_id, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
     19317    return detProcessedExpInsert(dbh, object->det_id, object->exp_id, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->data_state, object->fault);
    1736019318}
    1736119319
     
    1750519463        return false;
    1750619464    }
     19465    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     19466        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     19467        psFree(md);
     19468        return false;
     19469    }
    1750719470    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
    1750819471        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1759419557        return false;
    1759519558    }
     19559    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     19560    if (!status) {
     19561        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     19562        return false;
     19563    }
    1759619564    psS16 fault = psMetadataLookupS16(&status, md, "fault");
    1759719565    if (!status) {
     
    1760019568    }
    1760119569
    17602     return detProcessedExpRowAlloc(det_id, exp_id, recipe, bg, bg_stdev, bg_mean_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, fault);
     19570    return detProcessedExpRowAlloc(det_id, exp_id, recipe, bg, bg_stdev, bg_mean_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, data_state, fault);
    1760319571}
    1760419572psArray *detProcessedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1771819686static void detStackedImfileRowFree(detStackedImfileRow *object);
    1771919687
    17720 detStackedImfileRow *detStackedImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, psS16 fault)
     19688detStackedImfileRow *detStackedImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *data_state, psS16 fault)
    1772119689{
    1772219690    detStackedImfileRow *_object;
     
    1773819706    _object->user_4 = user_4;
    1773919707    _object->user_5 = user_5;
     19708    _object->data_state = psStringCopy(data_state);
    1774019709    _object->fault = fault;
    1774119710
     
    1774819717    psFree(object->uri);
    1774919718    psFree(object->recipe);
     19719    psFree(object->data_state);
    1775019720}
    1775119721
     
    1781819788        return false;
    1781919789    }
     19790    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "full, cleaned, purged (only track end states; request states are in detRunSummary by iteration)", "64")) {
     19791        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     19792        psFree(md);
     19793        return false;
     19794    }
    1782019795    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
    1782119796        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1783619811}
    1783719812
    17838 bool detStackedImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, psS16 fault)
     19813bool detStackedImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *data_state, psS16 fault)
    1783919814{
    1784019815    psMetadata *md = psMetadataAlloc();
     
    1790119876    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
    1790219877        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     19878        psFree(md);
     19879        return false;
     19880    }
     19881    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     19882        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    1790319883        psFree(md);
    1790419884        return false;
     
    1793219912bool detStackedImfileInsertObject(psDB *dbh, detStackedImfileRow *object)
    1793319913{
    17934     return detStackedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->fault);
     19914    return detStackedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->data_state, object->fault);
    1793519915}
    1793619916
     
    1807020050        return false;
    1807120051    }
     20052    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     20053        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     20054        psFree(md);
     20055        return false;
     20056    }
    1807220057    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
    1807320058        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1814920134        return false;
    1815020135    }
     20136    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     20137    if (!status) {
     20138        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     20139        return false;
     20140    }
    1815120141    psS16 fault = psMetadataLookupS16(&status, md, "fault");
    1815220142    if (!status) {
     
    1815520145    }
    1815620146
    18157     return detStackedImfileRowAlloc(det_id, iteration, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, fault);
     20147    return detStackedImfileRowAlloc(det_id, iteration, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, data_state, fault);
    1815820148}
    1815920149psArray *detStackedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1827320263static void detNormalizedStatImfileRowFree(detNormalizedStatImfileRow *object);
    1827420264
    18275 detNormalizedStatImfileRow *detNormalizedStatImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, psF32 norm, psS16 fault)
     20265detNormalizedStatImfileRow *detNormalizedStatImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, psF32 norm, const char *data_state, psS16 fault)
    1827620266{
    1827720267    detNormalizedStatImfileRow *_object;
     
    1828420274    _object->class_id = psStringCopy(class_id);
    1828520275    _object->norm = norm;
     20276    _object->data_state = psStringCopy(data_state);
    1828620277    _object->fault = fault;
    1828720278
     
    1829220283{
    1829320284    psFree(object->class_id);
     20285    psFree(object->data_state);
    1829420286}
    1829520287
     
    1831720309        return false;
    1831820310    }
     20311    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "full, cleaned, purged (only track end states; request states are in detRunSummary by iteration)", "64")) {
     20312        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     20313        psFree(md);
     20314        return false;
     20315    }
    1831920316    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
    1832020317        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1833520332}
    1833620333
    18337 bool detNormalizedStatImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, psF32 norm, psS16 fault)
     20334bool detNormalizedStatImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, psF32 norm, const char *data_state, psS16 fault)
    1833820335{
    1833920336    psMetadata *md = psMetadataAlloc();
     
    1835520352    if (!psMetadataAdd(md, PS_LIST_TAIL, "norm", PS_DATA_F32, NULL, norm)) {
    1835620353        psError(PS_ERR_UNKNOWN, false, "failed to add item norm");
     20354        psFree(md);
     20355        return false;
     20356    }
     20357    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     20358        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    1835720359        psFree(md);
    1835820360        return false;
     
    1838620388bool detNormalizedStatImfileInsertObject(psDB *dbh, detNormalizedStatImfileRow *object)
    1838720389{
    18388     return detNormalizedStatImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->norm, object->fault);
     20390    return detNormalizedStatImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->norm, object->data_state, object->fault);
    1838920391}
    1839020392
     
    1847920481        return false;
    1848020482    }
     20483    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     20484        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     20485        psFree(md);
     20486        return false;
     20487    }
    1848120488    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
    1848220489        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1851320520        return false;
    1851420521    }
     20522    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     20523    if (!status) {
     20524        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     20525        return false;
     20526    }
    1851520527    psS16 fault = psMetadataLookupS16(&status, md, "fault");
    1851620528    if (!status) {
     
    1851920531    }
    1852020532
    18521     return detNormalizedStatImfileRowAlloc(det_id, iteration, class_id, norm, fault);
     20533    return detNormalizedStatImfileRowAlloc(det_id, iteration, class_id, norm, data_state, fault);
    1852220534}
    1852320535psArray *detNormalizedStatImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1863720649static void detNormalizedImfileRowFree(detNormalizedImfileRow *object);
    1863820650
    18639 detNormalizedImfileRow *detNormalizedImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     20651detNormalizedImfileRow *detNormalizedImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    1864020652{
    1864120653    detNormalizedImfileRow *_object;
     
    1865720669    _object->user_5 = user_5;
    1865820670    _object->path_base = psStringCopy(path_base);
     20671    _object->data_state = psStringCopy(data_state);
    1865920672    _object->fault = fault;
    1866020673
     
    1866720680    psFree(object->uri);
    1866820681    psFree(object->path_base);
     20682    psFree(object->data_state);
    1866920683}
    1867020684
     
    1873720751        return false;
    1873820752    }
     20753    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "full, cleaned, purged (only track end states; request states are in detRunSummary by iteration)", "64")) {
     20754        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     20755        psFree(md);
     20756        return false;
     20757    }
    1873920758    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
    1874020759        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1875520774}
    1875620775
    18757 bool detNormalizedImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     20776bool detNormalizedImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    1875820777{
    1875920778    psMetadata *md = psMetadataAlloc();
     
    1882020839    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
    1882120840        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     20841        psFree(md);
     20842        return false;
     20843    }
     20844    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     20845        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    1882220846        psFree(md);
    1882320847        return false;
     
    1885120875bool detNormalizedImfileInsertObject(psDB *dbh, detNormalizedImfileRow *object)
    1885220876{
    18853     return detNormalizedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
     20877    return detNormalizedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->data_state, object->fault);
    1885420878}
    1885520879
     
    1898921013        return false;
    1899021014    }
     21015    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     21016        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     21017        psFree(md);
     21018        return false;
     21019    }
    1899121020    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
    1899221021        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1906821097        return false;
    1906921098    }
     21099    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     21100    if (!status) {
     21101        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     21102        return false;
     21103    }
    1907021104    psS16 fault = psMetadataLookupS16(&status, md, "fault");
    1907121105    if (!status) {
     
    1907421108    }
    1907521109
    19076     return detNormalizedImfileRowAlloc(det_id, iteration, class_id, uri, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, path_base, fault);
     21110    return detNormalizedImfileRowAlloc(det_id, iteration, class_id, uri, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, path_base, data_state, fault);
    1907721111}
    1907821112psArray *detNormalizedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1919221226static void detNormalizedExpRowFree(detNormalizedExpRow *object);
    1919321227
    19194 detNormalizedExpRow *detNormalizedExpRowAlloc(psS64 det_id, psS32 iteration, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     21228detNormalizedExpRow *detNormalizedExpRowAlloc(psS64 det_id, psS32 iteration, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    1919521229{
    1919621230    detNormalizedExpRow *_object;
     
    1921121245    _object->user_5 = user_5;
    1921221246    _object->path_base = psStringCopy(path_base);
     21247    _object->data_state = psStringCopy(data_state);
    1921321248    _object->fault = fault;
    1921421249
     
    1922021255    psFree(object->recipe);
    1922121256    psFree(object->path_base);
     21257    psFree(object->data_state);
    1922221258}
    1922321259
     
    1928521321        return false;
    1928621322    }
     21323    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "full, cleaned, purged (only track end states; request states are in detRunSummary by iteration)", "64")) {
     21324        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     21325        psFree(md);
     21326        return false;
     21327    }
    1928721328    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
    1928821329        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1930321344}
    1930421345
    19305 bool detNormalizedExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     21346bool detNormalizedExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    1930621347{
    1930721348    psMetadata *md = psMetadataAlloc();
     
    1936321404    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
    1936421405        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     21406        psFree(md);
     21407        return false;
     21408    }
     21409    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     21410        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    1936521411        psFree(md);
    1936621412        return false;
     
    1939421440bool detNormalizedExpInsertObject(psDB *dbh, detNormalizedExpRow *object)
    1939521441{
    19396     return detNormalizedExpInsert(dbh, object->det_id, object->iteration, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
     21442    return detNormalizedExpInsert(dbh, object->det_id, object->iteration, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->data_state, object->fault);
    1939721443}
    1939821444
     
    1952721573        return false;
    1952821574    }
     21575    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     21576        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     21577        psFree(md);
     21578        return false;
     21579    }
    1952921580    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
    1953021581        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1960121652        return false;
    1960221653    }
     21654    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     21655    if (!status) {
     21656        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     21657        return false;
     21658    }
    1960321659    psS16 fault = psMetadataLookupS16(&status, md, "fault");
    1960421660    if (!status) {
     
    1960721663    }
    1960821664
    19609     return detNormalizedExpRowAlloc(det_id, iteration, recipe, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, path_base, fault);
     21665    return detNormalizedExpRowAlloc(det_id, iteration, recipe, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, path_base, data_state, fault);
    1961021666}
    1961121667psArray *detNormalizedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1972521781static void detResidImfileRowFree(detResidImfileRow *object);
    1972621782
    19727 detResidImfileRow *detResidImfileRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     21783detResidImfileRow *detResidImfileRowAlloc(psS64 det_id, psS32 iteration, psS64 ref_det_id, psS32 ref_iter, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    1972821784{
    1972921785    detResidImfileRow *_object;
     
    1973421790    _object->det_id = det_id;
    1973521791    _object->iteration = iteration;
     21792    _object->ref_det_id = ref_det_id;
     21793    _object->ref_iter = ref_iter;
    1973621794    _object->exp_id = exp_id;
    1973721795    _object->class_id = psStringCopy(class_id);
     
    1975621814    _object->user_5 = user_5;
    1975721815    _object->path_base = psStringCopy(path_base);
     21816    _object->data_state = psStringCopy(data_state);
    1975821817    _object->fault = fault;
    1975921818
     
    1976721826    psFree(object->recipe);
    1976821827    psFree(object->path_base);
     21828    psFree(object->data_state);
    1976921829}
    1977021830
     
    1978221842        return false;
    1978321843    }
     21844    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_det_id", PS_DATA_S64, "detrend master actually applied (same as above for 'master', but not for 'verify')", 0)) {
     21845        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_det_id");
     21846        psFree(md);
     21847        return false;
     21848    }
     21849    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_iter", PS_DATA_S32, "detrend master actually applied (same as above for 'master', but not for 'verify')", 0)) {
     21850        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_iter");
     21851        psFree(md);
     21852        return false;
     21853    }
    1978421854    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_id", PS_DATA_S64, "Primary Key fkey(det_id, iteration) ref detNormalizedExp(det_id, iteration)", 64)) {
    1978521855        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
     
    1989221962        return false;
    1989321963    }
     21964    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "full, cleaned, purged (only track end states; request states are in detRunSummary by iteration)", "64")) {
     21965        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     21966        psFree(md);
     21967        return false;
     21968    }
    1989421969    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
    1989521970        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1991021985}
    1991121986
    19912 bool detResidImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     21987bool detResidImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 ref_det_id, psS32 ref_iter, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    1991321988{
    1991421989    psMetadata *md = psMetadataAlloc();
     
    1992321998        return false;
    1992421999    }
     22000    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_det_id", PS_DATA_S64, NULL, ref_det_id)) {
     22001        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_det_id");
     22002        psFree(md);
     22003        return false;
     22004    }
     22005    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_iter", PS_DATA_S32, NULL, ref_iter)) {
     22006        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_iter");
     22007        psFree(md);
     22008        return false;
     22009    }
    1992522010    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_id", PS_DATA_S64, NULL, exp_id)) {
    1992622011        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
     
    2003022115    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
    2003122116        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     22117        psFree(md);
     22118        return false;
     22119    }
     22120    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     22121        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    2003222122        psFree(md);
    2003322123        return false;
     
    2006122151bool detResidImfileInsertObject(psDB *dbh, detResidImfileRow *object)
    2006222152{
    20063     return detResidImfileInsert(dbh, object->det_id, object->iteration, object->exp_id, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bg_skewness, object->bg_kurtosis, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->fringe_resid_0, object->fringe_resid_1, object->fringe_resid_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
     22153    return detResidImfileInsert(dbh, object->det_id, object->iteration, object->ref_det_id, object->ref_iter, object->exp_id, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bg_skewness, object->bg_kurtosis, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->fringe_resid_0, object->fringe_resid_1, object->fringe_resid_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->data_state, object->fault);
    2006422154}
    2006522155
     
    2014422234        return false;
    2014522235    }
     22236    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_det_id", PS_DATA_S64, NULL, object->ref_det_id)) {
     22237        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_det_id");
     22238        psFree(md);
     22239        return false;
     22240    }
     22241    if (!psMetadataAdd(md, PS_LIST_TAIL, "ref_iter", PS_DATA_S32, NULL, object->ref_iter)) {
     22242        psError(PS_ERR_UNKNOWN, false, "failed to add item ref_iter");
     22243        psFree(md);
     22244        return false;
     22245    }
    2014622246    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_id", PS_DATA_S64, NULL, object->exp_id)) {
    2014722247        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
     
    2025422354        return false;
    2025522355    }
     22356    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     22357        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     22358        psFree(md);
     22359        return false;
     22360    }
    2025622361    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
    2025722362        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    2027822383        return false;
    2027922384    }
     22385    psS64 ref_det_id = psMetadataLookupS64(&status, md, "ref_det_id");
     22386    if (!status) {
     22387        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ref_det_id");
     22388        return false;
     22389    }
     22390    psS32 ref_iter = psMetadataLookupS32(&status, md, "ref_iter");
     22391    if (!status) {
     22392        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ref_iter");
     22393        return false;
     22394    }
    2028022395    psS64 exp_id = psMetadataLookupS64(&status, md, "exp_id");
    2028122396    if (!status) {
     
    2038822503        return false;
    2038922504    }
     22505    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     22506    if (!status) {
     22507        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     22508        return false;
     22509    }
    2039022510    psS16 fault = psMetadataLookupS16(&status, md, "fault");
    2039122511    if (!status) {
     
    2039422514    }
    2039522515
    20396     return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, bg_skewness, bg_kurtosis, bin_stdev, fringe_0, fringe_1, fringe_2, fringe_resid_0, fringe_resid_1, fringe_resid_2, user_1, user_2, user_3, user_4, user_5, path_base, fault);
     22516    return detResidImfileRowAlloc(det_id, iteration, ref_det_id, ref_iter, exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, bg_skewness, bg_kurtosis, bin_stdev, fringe_0, fringe_1, fringe_2, fringe_resid_0, fringe_resid_1, fringe_resid_2, user_1, user_2, user_3, user_4, user_5, path_base, data_state, fault);
    2039722517}
    2039822518psArray *detResidImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    2051222632static void detResidExpRowFree(detResidExpRow *object);
    2051322633
    20514 detResidExpRow *detResidExpRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault)
     22634detResidExpRow *detResidExpRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, bool accept, psS16 fault)
    2051522635{
    2051622636    detResidExpRow  *_object;
     
    2054122661    _object->user_5 = user_5;
    2054222662    _object->path_base = psStringCopy(path_base);
     22663    _object->data_state = psStringCopy(data_state);
    2054322664    _object->accept = accept;
    2054422665    _object->fault = fault;
     
    2055122672    psFree(object->recipe);
    2055222673    psFree(object->path_base);
     22674    psFree(object->data_state);
    2055322675}
    2055422676
     
    2066622788        return false;
    2066722789    }
     22790    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "full, cleaned, purged (only track end states; request states are in detRunSummary by iteration)", "64")) {
     22791        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     22792        psFree(md);
     22793        return false;
     22794    }
    2066822795    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, 0)) {
    2066922796        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
     
    2068922816}
    2069022817
    20691 bool detResidExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault)
     22818bool detResidExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, bool accept, psS16 fault)
    2069222819{
    2069322820    psMetadata *md = psMetadataAlloc();
     
    2079922926    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
    2080022927        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     22928        psFree(md);
     22929        return false;
     22930    }
     22931    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     22932        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    2080122933        psFree(md);
    2080222934        return false;
     
    2083522967bool detResidExpInsertObject(psDB *dbh, detResidExpRow *object)
    2083622968{
    20837     return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bg_skewness, object->bg_kurtosis, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->fringe_resid_0, object->fringe_resid_1, object->fringe_resid_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->accept, object->fault);
     22969    return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bg_skewness, object->bg_kurtosis, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->fringe_resid_0, object->fringe_resid_1, object->fringe_resid_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->data_state, object->accept, object->fault);
    2083822970}
    2083922971
     
    2101823150        return false;
    2101923151    }
     23152    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     23153        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     23154        psFree(md);
     23155        return false;
     23156    }
    2102023157    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, object->accept)) {
    2102123158        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
     
    2114723284        return false;
    2114823285    }
     23286    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     23287    if (!status) {
     23288        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     23289        return false;
     23290    }
    2114923291    bool accept = psMetadataLookupBool(&status, md, "accept");
    2115023292    if (!status) {
     
    2115823300    }
    2115923301
    21160     return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, bg, bg_stdev, bg_mean_stdev, bg_skewness, bg_kurtosis, bin_stdev, fringe_0, fringe_1, fringe_2, fringe_resid_0, fringe_resid_1, fringe_resid_2, user_1, user_2, user_3, user_4, user_5, path_base, accept, fault);
     23302    return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, bg, bg_stdev, bg_mean_stdev, bg_skewness, bg_kurtosis, bin_stdev, fringe_0, fringe_1, fringe_2, fringe_resid_0, fringe_resid_1, fringe_resid_2, user_1, user_2, user_3, user_4, user_5, path_base, data_state, accept, fault);
    2116123303}
    2116223304psArray *detResidExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    2127623418static void detRunSummaryRowFree(detRunSummaryRow *object);
    2127723419
    21278 detRunSummaryRow *detRunSummaryRowAlloc(psS64 det_id, psS32 iteration, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, bool accept, psS16 fault)
     23420detRunSummaryRow *detRunSummaryRowAlloc(psS64 det_id, psS32 iteration, const char *data_state, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, bool accept, psS16 fault)
    2127923421{
    2128023422    detRunSummaryRow *_object;
     
    2128523427    _object->det_id = det_id;
    2128623428    _object->iteration = iteration;
     23429    _object->data_state = psStringCopy(data_state);
    2128723430    _object->bg = bg;
    2128823431    _object->bg_stdev = bg_stdev;
     
    2129623439static void detRunSummaryRowFree(detRunSummaryRow *object)
    2129723440{
     23441    psFree(object->data_state);
    2129823442}
    2129923443
     
    2131123455        return false;
    2131223456    }
     23457    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "full, goto_cleaned, cleaned, goto_full, goto_purged, purged", "64")) {
     23458        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     23459        psFree(md);
     23460        return false;
     23461    }
    2131323462    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, 0.0)) {
    2131423463        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    2134923498}
    2135023499
    21351 bool detRunSummaryInsert(psDB * dbh, psS64 det_id, psS32 iteration, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, bool accept, psS16 fault)
     23500bool detRunSummaryInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *data_state, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, bool accept, psS16 fault)
    2135223501{
    2135323502    psMetadata *md = psMetadataAlloc();
     
    2135923508    if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, NULL, iteration)) {
    2136023509        psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");
     23510        psFree(md);
     23511        return false;
     23512    }
     23513    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     23514        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    2136123515        psFree(md);
    2136223516        return false;
     
    2141023564bool detRunSummaryInsertObject(psDB *dbh, detRunSummaryRow *object)
    2141123565{
    21412     return detRunSummaryInsert(dbh, object->det_id, object->iteration, object->bg, object->bg_stdev, object->bg_mean_stdev, object->accept, object->fault);
     23566    return detRunSummaryInsert(dbh, object->det_id, object->iteration, object->data_state, object->bg, object->bg_stdev, object->bg_mean_stdev, object->accept, object->fault);
    2141323567}
    2141423568
     
    2149323647        return false;
    2149423648    }
     23649    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     23650        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     23651        psFree(md);
     23652        return false;
     23653    }
    2149523654    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, object->bg)) {
    2149623655        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    2153723696        return false;
    2153823697    }
     23698    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     23699    if (!status) {
     23700        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     23701        return false;
     23702    }
    2153923703    psF64 bg = psMetadataLookupF64(&status, md, "bg");
    2154023704    if (!status) {
     
    2156323727    }
    2156423728
    21565     return detRunSummaryRowAlloc(det_id, iteration, bg, bg_stdev, bg_mean_stdev, accept, fault);
     23729    return detRunSummaryRowAlloc(det_id, iteration, data_state, bg, bg_stdev, bg_mean_stdev, accept, fault);
    2156623730}
    2156723731psArray *detRunSummarySelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    2168123845static void detRegisteredImfileRowFree(detRegisteredImfileRow *object);
    2168223846
    21683 detRegisteredImfileRow *detRegisteredImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     23847detRegisteredImfileRow *detRegisteredImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    2168423848{
    2168523849    detRegisteredImfileRow *_object;
     
    2170123865    _object->user_5 = user_5;
    2170223866    _object->path_base = psStringCopy(path_base);
     23867    _object->data_state = psStringCopy(data_state);
    2170323868    _object->fault = fault;
    2170423869
     
    2171123876    psFree(object->uri);
    2171223877    psFree(object->path_base);
     23878    psFree(object->data_state);
    2171323879}
    2171423880
     
    2178123947        return false;
    2178223948    }
     23949    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, "full, cleaned, purged (only track end states; request states are in detRunSummary by iteration)", "64")) {
     23950        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     23951        psFree(md);
     23952        return false;
     23953    }
    2178323954    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
    2178423955        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    2179923970}
    2180023971
    21801 bool detRegisteredImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     23972bool detRegisteredImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, const char *data_state, psS16 fault)
    2180223973{
    2180323974    psMetadata *md = psMetadataAlloc();
     
    2186424035    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
    2186524036        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     24037        psFree(md);
     24038        return false;
     24039    }
     24040    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, data_state)) {
     24041        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
    2186624042        psFree(md);
    2186724043        return false;
     
    2189524071bool detRegisteredImfileInsertObject(psDB *dbh, detRegisteredImfileRow *object)
    2189624072{
    21897     return detRegisteredImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
     24073    return detRegisteredImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->data_state, object->fault);
    2189824074}
    2189924075
     
    2203324209        return false;
    2203424210    }
     24211    if (!psMetadataAdd(md, PS_LIST_TAIL, "data_state", PS_DATA_STRING, NULL, object->data_state)) {
     24212        psError(PS_ERR_UNKNOWN, false, "failed to add item data_state");
     24213        psFree(md);
     24214        return false;
     24215    }
    2203524216    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
    2203624217        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    2211224293        return false;
    2211324294    }
     24295    char* data_state = psMetadataLookupPtr(&status, md, "data_state");
     24296    if (!status) {
     24297        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item data_state");
     24298        return false;
     24299    }
    2211424300    psS16 fault = psMetadataLookupS16(&status, md, "fault");
    2211524301    if (!status) {
     
    2211824304    }
    2211924305
    22120     return detRegisteredImfileRowAlloc(det_id, iteration, class_id, uri, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, path_base, fault);
     24306    return detRegisteredImfileRowAlloc(det_id, iteration, class_id, uri, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, path_base, data_state, fault);
    2212124307}
    2212224308psArray *detRegisteredImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    2550627692static void flatcorrRunRowFree(flatcorrRunRow *object);
    2550727693
    25508 flatcorrRunRow *flatcorrRunRowAlloc(psS64 corr_id, const char *dvodb, const char *filter, const char *state, const char *workdir, const char *label, const char *stats, const char *region)
     27694flatcorrRunRow *flatcorrRunRowAlloc(psS64 corr_id, const char *dvodb, const char *filter, const char *state, const char *workdir, const char *label, const char *reduction, const char *region, const char *hostname, psS16 fault)
    2550927695{
    2551027696    flatcorrRunRow  *_object;
     
    2551927705    _object->workdir = psStringCopy(workdir);
    2552027706    _object->label = psStringCopy(label);
    25521     _object->stats = psStringCopy(stats);
     27707    _object->reduction = psStringCopy(reduction);
    2552227708    _object->region = psStringCopy(region);
     27709    _object->hostname = psStringCopy(hostname);
     27710    _object->fault = fault;
    2552327711
    2552427712    return _object;
     
    2553227720    psFree(object->workdir);
    2553327721    psFree(object->label);
    25534     psFree(object->stats);
     27722    psFree(object->reduction);
    2553527723    psFree(object->region);
     27724    psFree(object->hostname);
    2553627725}
    2553727726
     
    2556927758        return false;
    2557027759    }
    25571     if (!psMetadataAdd(md, PS_LIST_TAIL, "stats", PS_DATA_STRING, NULL, "255")) {
    25572         psError(PS_ERR_UNKNOWN, false, "failed to add item stats");
    25573         psFree(md);
    25574         return false;
    25575     }
    25576     if (!psMetadataAdd(md, PS_LIST_TAIL, "region", PS_DATA_STRING, NULL, "255")) {
     27760    if (!psMetadataAdd(md, PS_LIST_TAIL, "reduction", PS_DATA_STRING, NULL, "64")) {
     27761        psError(PS_ERR_UNKNOWN, false, "failed to add item reduction");
     27762        psFree(md);
     27763        return false;
     27764    }
     27765    if (!psMetadataAdd(md, PS_LIST_TAIL, "region", PS_DATA_STRING, NULL, "64")) {
    2557727766        psError(PS_ERR_UNKNOWN, false, "failed to add item region");
    2557827767        psFree(md);
    2557927768        return false;
    2558027769    }
     27770    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, "64")) {
     27771        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     27772        psFree(md);
     27773        return false;
     27774    }
     27775    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
     27776        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     27777        psFree(md);
     27778        return false;
     27779    }
    2558127780
    2558227781    bool status = psDBCreateTable(dbh, FLATCORRRUN_TABLE_NAME, md);
     
    2559227791}
    2559327792
    25594 bool flatcorrRunInsert(psDB * dbh, psS64 corr_id, const char *dvodb, const char *filter, const char *state, const char *workdir, const char *label, const char *stats, const char *region)
     27793bool flatcorrRunInsert(psDB * dbh, psS64 corr_id, const char *dvodb, const char *filter, const char *state, const char *workdir, const char *label, const char *reduction, const char *region, const char *hostname, psS16 fault)
    2559527794{
    2559627795    psMetadata *md = psMetadataAlloc();
     
    2562527824        return false;
    2562627825    }
    25627     if (!psMetadataAdd(md, PS_LIST_TAIL, "stats", PS_DATA_STRING, NULL, stats)) {
    25628         psError(PS_ERR_UNKNOWN, false, "failed to add item stats");
     27826    if (!psMetadataAdd(md, PS_LIST_TAIL, "reduction", PS_DATA_STRING, NULL, reduction)) {
     27827        psError(PS_ERR_UNKNOWN, false, "failed to add item reduction");
    2562927828        psFree(md);
    2563027829        return false;
     
    2563227831    if (!psMetadataAdd(md, PS_LIST_TAIL, "region", PS_DATA_STRING, NULL, region)) {
    2563327832        psError(PS_ERR_UNKNOWN, false, "failed to add item region");
     27833        psFree(md);
     27834        return false;
     27835    }
     27836    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, hostname)) {
     27837        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     27838        psFree(md);
     27839        return false;
     27840    }
     27841    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) {
     27842        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
    2563427843        psFree(md);
    2563527844        return false;
     
    2565827867bool flatcorrRunInsertObject(psDB *dbh, flatcorrRunRow *object)
    2565927868{
    25660     return flatcorrRunInsert(dbh, object->corr_id, object->dvodb, object->filter, object->state, object->workdir, object->label, object->stats, object->region);
     27869    return flatcorrRunInsert(dbh, object->corr_id, object->dvodb, object->filter, object->state, object->workdir, object->label, object->reduction, object->region, object->hostname, object->fault);
    2566127870}
    2566227871
     
    2576127970        return false;
    2576227971    }
    25763     if (!psMetadataAdd(md, PS_LIST_TAIL, "stats", PS_DATA_STRING, NULL, object->stats)) {
    25764         psError(PS_ERR_UNKNOWN, false, "failed to add item stats");
     27972    if (!psMetadataAdd(md, PS_LIST_TAIL, "reduction", PS_DATA_STRING, NULL, object->reduction)) {
     27973        psError(PS_ERR_UNKNOWN, false, "failed to add item reduction");
    2576527974        psFree(md);
    2576627975        return false;
     
    2577127980        return false;
    2577227981    }
     27982    if (!psMetadataAdd(md, PS_LIST_TAIL, "hostname", PS_DATA_STRING, NULL, object->hostname)) {
     27983        psError(PS_ERR_UNKNOWN, false, "failed to add item hostname");
     27984        psFree(md);
     27985        return false;
     27986    }
     27987    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
     27988        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     27989        psFree(md);
     27990        return false;
     27991    }
    2577327992
    2577427993
     
    2581028029        return false;
    2581128030    }
    25812     char* stats = psMetadataLookupPtr(&status, md, "stats");
    25813     if (!status) {
    25814         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item stats");
     28031    char* reduction = psMetadataLookupPtr(&status, md, "reduction");
     28032    if (!status) {
     28033        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item reduction");
    2581528034        return false;
    2581628035    }
     
    2582028039        return false;
    2582128040    }
    25822 
    25823     return flatcorrRunRowAlloc(corr_id, dvodb, filter, state, workdir, label, stats, region);
     28041    char* hostname = psMetadataLookupPtr(&status, md, "hostname");
     28042    if (!status) {
     28043        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item hostname");
     28044        return false;
     28045    }
     28046    psS16 fault = psMetadataLookupS16(&status, md, "fault");
     28047    if (!status) {
     28048        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fault");
     28049        return false;
     28050    }
     28051
     28052    return flatcorrRunRowAlloc(corr_id, dvodb, filter, state, workdir, label, reduction, region, hostname, fault);
    2582428053}
    2582528054psArray *flatcorrRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    2593728166    return true;
    2593828167}
    25939 static void flatcorrExpRowFree(flatcorrExpRow *object);
    25940 
    25941 flatcorrExpRow *flatcorrExpRowAlloc(psS64 corr_id, psS64 chip_id)
    25942 {
    25943     flatcorrExpRow *_object;
    25944 
    25945     _object = psAlloc(sizeof(flatcorrExpRow));
    25946     psMemSetDeallocator(_object, (psFreeFunc)flatcorrExpRowFree);
     28168static void flatcorrChipLinkRowFree(flatcorrChipLinkRow *object);
     28169
     28170flatcorrChipLinkRow *flatcorrChipLinkRowAlloc(psS64 corr_id, psS64 chip_id)
     28171{
     28172    flatcorrChipLinkRow *_object;
     28173
     28174    _object = psAlloc(sizeof(flatcorrChipLinkRow));
     28175    psMemSetDeallocator(_object, (psFreeFunc)flatcorrChipLinkRowFree);
    2594728176
    2594828177    _object->corr_id = corr_id;
     
    2595228181}
    2595328182
    25954 static void flatcorrExpRowFree(flatcorrExpRow *object)
    25955 {
    25956 }
    25957 
    25958 bool flatcorrExpCreateTable(psDB *dbh)
     28183static void flatcorrChipLinkRowFree(flatcorrChipLinkRow *object)
     28184{
     28185}
     28186
     28187bool flatcorrChipLinkCreateTable(psDB *dbh)
    2595928188{
    2596028189    psMetadata *md = psMetadataAlloc();
     
    2596428193        return false;
    2596528194    }
    25966     if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_id", PS_DATA_S64, "Primary Key fkey(chip_id) ref chipRun(chip_id)", 64)) {
     28195    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_id", PS_DATA_S64, "Primary Key fkey(chip_id) ref chipRun(chip_id)", 0)) {
    2596728196        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_id");
    2596828197        psFree(md);
     
    2597028199    }
    2597128200
    25972     bool status = psDBCreateTable(dbh, FLATCORREXP_TABLE_NAME, md);
     28201    bool status = psDBCreateTable(dbh, FLATCORRCHIPLINK_TABLE_NAME, md);
    2597328202
    2597428203    psFree(md);
     
    2597728206}
    2597828207
    25979 bool flatcorrExpDropTable(psDB *dbh)
    25980 {
    25981     return psDBDropTable(dbh, FLATCORREXP_TABLE_NAME);
    25982 }
    25983 
    25984 bool flatcorrExpInsert(psDB * dbh, psS64 corr_id, psS64 chip_id)
     28208bool flatcorrChipLinkDropTable(psDB *dbh)
     28209{
     28210    return psDBDropTable(dbh, FLATCORRCHIPLINK_TABLE_NAME);
     28211}
     28212
     28213bool flatcorrChipLinkInsert(psDB * dbh, psS64 corr_id, psS64 chip_id)
    2598528214{
    2598628215    psMetadata *md = psMetadataAlloc();
     
    2599628225    }
    2599728226
    25998     bool status = psDBInsertOneRow(dbh, FLATCORREXP_TABLE_NAME, md);
     28227    bool status = psDBInsertOneRow(dbh, FLATCORRCHIPLINK_TABLE_NAME, md);
    2599928228    psFree(md);
    2600028229
     
    2600228231}
    2600328232
    26004 long long flatcorrExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     28233long long flatcorrChipLinkDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
    2600528234{
    2600628235    long long       deleted = 0;
    2600728236
    26008     long long count = psDBDeleteRows(dbh, FLATCORREXP_TABLE_NAME, where, limit);
     28237    long long count = psDBDeleteRows(dbh, FLATCORRCHIPLINK_TABLE_NAME, where, limit);
    2600928238    if (count < 0) {
    26010         psError(PS_ERR_UNKNOWN, true, "failed to delete row from flatcorrExp");
     28239        psError(PS_ERR_UNKNOWN, true, "failed to delete row from flatcorrChipLink");
    2601128240        return count;
    2601228241
     
    2601628245    return deleted;
    2601728246}
    26018 bool flatcorrExpInsertObject(psDB *dbh, flatcorrExpRow *object)
    26019 {
    26020     return flatcorrExpInsert(dbh, object->corr_id, object->chip_id);
    26021 }
    26022 
    26023 bool flatcorrExpInsertObjects(psDB *dbh, psArray *objects)
     28247bool flatcorrChipLinkInsertObject(psDB *dbh, flatcorrChipLinkRow *object)
     28248{
     28249    return flatcorrChipLinkInsert(dbh, object->corr_id, object->chip_id);
     28250}
     28251
     28252bool flatcorrChipLinkInsertObjects(psDB *dbh, psArray *objects)
    2602428253{
    2602528254    for (long i = 0; i < psArrayLength(objects); i++) {
    26026         if (!flatcorrExpInsertObject(dbh, objects->data[i])) {
     28255        if (!flatcorrChipLinkInsertObject(dbh, objects->data[i])) {
    2602728256            return false;
    2602828257        }
     
    2603228261}
    2603328262
    26034 bool flatcorrExpInsertFits(psDB *dbh, const psFits *fits)
     28263bool flatcorrChipLinkInsertFits(psDB *dbh, const psFits *fits)
    2603528264{
    2603628265    psArray         *rowSet;
    2603728266
    26038     // move to (the first?) extension named  FLATCORREXP_TABLE_NAME
    26039     if (!psFitsMoveExtName(fits, FLATCORREXP_TABLE_NAME)) {
    26040         psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", FLATCORREXP_TABLE_NAME);
     28267    // move to (the first?) extension named  FLATCORRCHIPLINK_TABLE_NAME
     28268    if (!psFitsMoveExtName(fits, FLATCORRCHIPLINK_TABLE_NAME)) {
     28269        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", FLATCORRCHIPLINK_TABLE_NAME);
    2604128270        return false;
    2604228271    }
     
    2605628285    }
    2605728286
    26058     if (!psDBInsertRows(dbh, FLATCORREXP_TABLE_NAME, rowSet)) {
     28287    if (!psDBInsertRows(dbh, FLATCORRCHIPLINK_TABLE_NAME, rowSet)) {
    2605928288        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
    2606028289        psFree(rowSet);
     
    2606728296}
    2606828297
    26069 bool flatcorrExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     28298bool flatcorrChipLinkSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
    2607028299{
    2607128300    psArray         *rowSet;
    2607228301
    26073     rowSet = psDBSelectRows(dbh, FLATCORREXP_TABLE_NAME, where, limit);
     28302    rowSet = psDBSelectRows(dbh, FLATCORRCHIPLINK_TABLE_NAME, where, limit);
    2607428303    if (!rowSet) {
    2607528304        return false;
     
    2607728306
    2607828307    // output to fits
    26079     if (!psFitsWriteTable(fits, NULL, rowSet, FLATCORREXP_TABLE_NAME)) {
     28308    if (!psFitsWriteTable(fits, NULL, rowSet, FLATCORRCHIPLINK_TABLE_NAME)) {
    2608028309        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
    2608128310        psFree(rowSet);
     
    2608828317}
    2608928318
    26090 psMetadata *flatcorrExpMetadataFromObject(const flatcorrExpRow *object)
     28319psMetadata *flatcorrChipLinkMetadataFromObject(const flatcorrChipLinkRow *object)
    2609128320{
    2609228321    psMetadata *md = psMetadataAlloc();
     
    2610628335}
    2610728336
    26108 flatcorrExpRow *flatcorrExpObjectFromMetadata(psMetadata *md)
     28337flatcorrChipLinkRow *flatcorrChipLinkObjectFromMetadata(psMetadata *md)
    2610928338{
    2611028339
     
    2612128350    }
    2612228351
    26123     return flatcorrExpRowAlloc(corr_id, chip_id);
    26124 }
    26125 psArray *flatcorrExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     28352    return flatcorrChipLinkRowAlloc(corr_id, chip_id);
     28353}
     28354psArray *flatcorrChipLinkSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
    2612628355{
    2612728356    psArray         *rowSet;
     
    2612928358    psU64           i;
    2613028359
    26131     rowSet = psDBSelectRows(dbh, FLATCORREXP_TABLE_NAME, where, limit);
     28360    rowSet = psDBSelectRows(dbh, FLATCORRCHIPLINK_TABLE_NAME, where, limit);
    2613228361    if (!rowSet) {
    2613328362        return NULL;
     
    2613928368
    2614028369    for (i = 0; i < rowSet->n; i++) {
    26141         flatcorrExpRow *object = flatcorrExpObjectFromMetadata(rowSet->data[i]);
     28370        flatcorrChipLinkRow *object = flatcorrChipLinkObjectFromMetadata(rowSet->data[i]);
    2614228371        if (!object) {
    2614328372            psFree(object);
     
    2615428383    return returnSet;
    2615528384}
    26156 bool flatcorrExpDeleteObject(psDB *dbh, const flatcorrExpRow *object)
    26157 {
    26158     psMetadata *where = flatcorrExpMetadataFromObject(object);
    26159     long long count = psDBDeleteRows(dbh, FLATCORREXP_TABLE_NAME, where, 0);
     28385bool flatcorrChipLinkDeleteObject(psDB *dbh, const flatcorrChipLinkRow *object)
     28386{
     28387    psMetadata *where = flatcorrChipLinkMetadataFromObject(object);
     28388    long long count = psDBDeleteRows(dbh, FLATCORRCHIPLINK_TABLE_NAME, where, 0);
    2616028389    psFree(where);
    2616128390    if (count < 0) {
    26162         psError(PS_ERR_UNKNOWN, true, "failed to delete row from flatcorrExp");
     28391        psError(PS_ERR_UNKNOWN, true, "failed to delete row from flatcorrChipLink");
    2616328392        return false;
    2616428393    }
     
    2616628395        // XXX should this be a psAbort() instead?  It is possible that
    2616728396        // having an object match multiple rows was by design.
    26168         psError(PS_ERR_UNKNOWN, true, "flatcorrExpRow object matched more then one row.  Check your database schema");
    26169         return false;
    26170     }
    26171 
    26172     return true;
    26173 }
    26174 long long flatcorrExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     28397        psError(PS_ERR_UNKNOWN, true, "flatcorrChipLinkRow object matched more then one row.  Check your database schema");
     28398        return false;
     28399    }
     28400
     28401    return true;
     28402}
     28403long long flatcorrChipLinkDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
    2617528404{
    2617628405    long long       deleted = 0;
    2617728406
    2617828407    for (long long i = 0; i < objects->n; i++) {
    26179         flatcorrExpRow *object = objects->data[i];
    26180         psMetadata *where = flatcorrExpMetadataFromObject(object);
    26181         long long count = psDBDeleteRows(dbh, FLATCORREXP_TABLE_NAME, where, limit);
     28408        flatcorrChipLinkRow *object = objects->data[i];
     28409        psMetadata *where = flatcorrChipLinkMetadataFromObject(object);
     28410        long long count = psDBDeleteRows(dbh, FLATCORRCHIPLINK_TABLE_NAME, where, limit);
    2618228411        psFree(where);
    2618328412        if (count < 0) {
    26184             psError(PS_ERR_UNKNOWN, true, "failed to delete row from flatcorrExp");
     28413            psError(PS_ERR_UNKNOWN, true, "failed to delete row from flatcorrChipLink");
    2618528414            return count;
    2618628415        }
     
    2619128420    return deleted;
    2619228421}
    26193 bool flatcorrExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
     28422bool flatcorrChipLinkPrintObjects(FILE *stream, psArray *objects, bool mdcf)
    2619428423{
    2619528424    PS_ASSERT_PTR_NON_NULL(objects, false);
     
    2619728426    psMetadata *output = psMetadataAlloc();
    2619828427    for (long i = 0; i < psArrayLength(objects); i++) {
    26199         psMetadata *md = flatcorrExpMetadataFromObject(objects->data[i]);
     28428        psMetadata *md = flatcorrChipLinkMetadataFromObject(objects->data[i]);
    2620028429        if (!psMetadataAddMetadata(
    2620128430            output,
    2620228431            PS_LIST_TAIL,
    26203             FLATCORREXP_TABLE_NAME,
     28432            FLATCORRCHIPLINK_TABLE_NAME,
    2620428433            PS_META_DUPLICATE_OK,
    2620528434            NULL,
     
    2622228451    return true;
    2622328452}
    26224 bool flatcorrExpPrintObject(FILE *stream, flatcorrExpRow *object, bool mdcf)
     28453bool flatcorrChipLinkPrintObject(FILE *stream, flatcorrChipLinkRow *object, bool mdcf)
    2622528454{
    2622628455    PS_ASSERT_PTR_NON_NULL(object, false);
    2622728456
    26228     psMetadata *md = flatcorrExpMetadataFromObject(object);
     28457    psMetadata *md = flatcorrChipLinkMetadataFromObject(object);
     28458
     28459    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
     28460        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     28461        psFree(md);
     28462    }
     28463
     28464    psFree(md);
     28465
     28466    return true;
     28467}
     28468static void flatcorrCamLinkRowFree(flatcorrCamLinkRow *object);
     28469
     28470flatcorrCamLinkRow *flatcorrCamLinkRowAlloc(psS64 corr_id, psS64 chip_id, psS64 cam_id)
     28471{
     28472    flatcorrCamLinkRow *_object;
     28473
     28474    _object = psAlloc(sizeof(flatcorrCamLinkRow));
     28475    psMemSetDeallocator(_object, (psFreeFunc)flatcorrCamLinkRowFree);
     28476
     28477    _object->corr_id = corr_id;
     28478    _object->chip_id = chip_id;
     28479    _object->cam_id = cam_id;
     28480
     28481    return _object;
     28482}
     28483
     28484static void flatcorrCamLinkRowFree(flatcorrCamLinkRow *object)
     28485{
     28486}
     28487
     28488bool flatcorrCamLinkCreateTable(psDB *dbh)
     28489{
     28490    psMetadata *md = psMetadataAlloc();
     28491    if (!psMetadataAdd(md, PS_LIST_TAIL, "corr_id", PS_DATA_S64, "Primary Key fkey(corr_id) ref flatcorrRun(corr_id)", 0)) {
     28492        psError(PS_ERR_UNKNOWN, false, "failed to add item corr_id");
     28493        psFree(md);
     28494        return false;
     28495    }
     28496    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_id", PS_DATA_S64, "Primary Key fkey(chip_id) ref chipRun(chip_id)", 0)) {
     28497        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_id");
     28498        psFree(md);
     28499        return false;
     28500    }
     28501    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_id", PS_DATA_S64, "Primary Key fkey(chip_id) ref chipRun(chip_id)", 0)) {
     28502        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
     28503        psFree(md);
     28504        return false;
     28505    }
     28506
     28507    bool status = psDBCreateTable(dbh, FLATCORRCAMLINK_TABLE_NAME, md);
     28508
     28509    psFree(md);
     28510
     28511    return status;
     28512}
     28513
     28514bool flatcorrCamLinkDropTable(psDB *dbh)
     28515{
     28516    return psDBDropTable(dbh, FLATCORRCAMLINK_TABLE_NAME);
     28517}
     28518
     28519bool flatcorrCamLinkInsert(psDB * dbh, psS64 corr_id, psS64 chip_id, psS64 cam_id)
     28520{
     28521    psMetadata *md = psMetadataAlloc();
     28522    if (!psMetadataAdd(md, PS_LIST_TAIL, "corr_id", PS_DATA_S64, NULL, corr_id)) {
     28523        psError(PS_ERR_UNKNOWN, false, "failed to add item corr_id");
     28524        psFree(md);
     28525        return false;
     28526    }
     28527    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_id", PS_DATA_S64, NULL, chip_id)) {
     28528        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_id");
     28529        psFree(md);
     28530        return false;
     28531    }
     28532    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_id", PS_DATA_S64, NULL, cam_id)) {
     28533        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
     28534        psFree(md);
     28535        return false;
     28536    }
     28537
     28538    bool status = psDBInsertOneRow(dbh, FLATCORRCAMLINK_TABLE_NAME, md);
     28539    psFree(md);
     28540
     28541    return status;
     28542}
     28543
     28544long long flatcorrCamLinkDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     28545{
     28546    long long       deleted = 0;
     28547
     28548    long long count = psDBDeleteRows(dbh, FLATCORRCAMLINK_TABLE_NAME, where, limit);
     28549    if (count < 0) {
     28550        psError(PS_ERR_UNKNOWN, true, "failed to delete row from flatcorrCamLink");
     28551        return count;
     28552
     28553        deleted += count;
     28554    }
     28555
     28556    return deleted;
     28557}
     28558bool flatcorrCamLinkInsertObject(psDB *dbh, flatcorrCamLinkRow *object)
     28559{
     28560    return flatcorrCamLinkInsert(dbh, object->corr_id, object->chip_id, object->cam_id);
     28561}
     28562
     28563bool flatcorrCamLinkInsertObjects(psDB *dbh, psArray *objects)
     28564{
     28565    for (long i = 0; i < psArrayLength(objects); i++) {
     28566        if (!flatcorrCamLinkInsertObject(dbh, objects->data[i])) {
     28567            return false;
     28568        }
     28569    }
     28570
     28571    return true;
     28572}
     28573
     28574bool flatcorrCamLinkInsertFits(psDB *dbh, const psFits *fits)
     28575{
     28576    psArray         *rowSet;
     28577
     28578    // move to (the first?) extension named  FLATCORRCAMLINK_TABLE_NAME
     28579    if (!psFitsMoveExtName(fits, FLATCORRCAMLINK_TABLE_NAME)) {
     28580        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", FLATCORRCAMLINK_TABLE_NAME);
     28581        return false;
     28582    }
     28583
     28584    // check HDU type
     28585    if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE)  {
     28586        psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");
     28587        return false;
     28588    }
     28589
     28590    // read fits table
     28591    rowSet = psFitsReadTable(fits);
     28592    if (!rowSet) {
     28593        psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");
     28594        psFree(rowSet);
     28595        return false;
     28596    }
     28597
     28598    if (!psDBInsertRows(dbh, FLATCORRCAMLINK_TABLE_NAME, rowSet)) {
     28599        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
     28600        psFree(rowSet);
     28601        return false;
     28602    }
     28603
     28604    psFree(rowSet);
     28605
     28606    return true;
     28607}
     28608
     28609bool flatcorrCamLinkSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     28610{
     28611    psArray         *rowSet;
     28612
     28613    rowSet = psDBSelectRows(dbh, FLATCORRCAMLINK_TABLE_NAME, where, limit);
     28614    if (!rowSet) {
     28615        return false;
     28616    }
     28617
     28618    // output to fits
     28619    if (!psFitsWriteTable(fits, NULL, rowSet, FLATCORRCAMLINK_TABLE_NAME)) {
     28620        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
     28621        psFree(rowSet);
     28622        return false;
     28623    }
     28624
     28625    psFree(rowSet);
     28626
     28627    return true;
     28628}
     28629
     28630psMetadata *flatcorrCamLinkMetadataFromObject(const flatcorrCamLinkRow *object)
     28631{
     28632    psMetadata *md = psMetadataAlloc();
     28633    if (!psMetadataAdd(md, PS_LIST_TAIL, "corr_id", PS_DATA_S64, NULL, object->corr_id)) {
     28634        psError(PS_ERR_UNKNOWN, false, "failed to add item corr_id");
     28635        psFree(md);
     28636        return false;
     28637    }
     28638    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_id", PS_DATA_S64, NULL, object->chip_id)) {
     28639        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_id");
     28640        psFree(md);
     28641        return false;
     28642    }
     28643    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_id", PS_DATA_S64, NULL, object->cam_id)) {
     28644        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
     28645        psFree(md);
     28646        return false;
     28647    }
     28648
     28649
     28650    return md;
     28651}
     28652
     28653flatcorrCamLinkRow *flatcorrCamLinkObjectFromMetadata(psMetadata *md)
     28654{
     28655
     28656bool status = false;
     28657    psS64 corr_id = psMetadataLookupS64(&status, md, "corr_id");
     28658    if (!status) {
     28659        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item corr_id");
     28660        return false;
     28661    }
     28662    psS64 chip_id = psMetadataLookupS64(&status, md, "chip_id");
     28663    if (!status) {
     28664        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item chip_id");
     28665        return false;
     28666    }
     28667    psS64 cam_id = psMetadataLookupS64(&status, md, "cam_id");
     28668    if (!status) {
     28669        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item cam_id");
     28670        return false;
     28671    }
     28672
     28673    return flatcorrCamLinkRowAlloc(corr_id, chip_id, cam_id);
     28674}
     28675psArray *flatcorrCamLinkSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     28676{
     28677    psArray         *rowSet;
     28678    psArray         *returnSet;
     28679    psU64           i;
     28680
     28681    rowSet = psDBSelectRows(dbh, FLATCORRCAMLINK_TABLE_NAME, where, limit);
     28682    if (!rowSet) {
     28683        return NULL;
     28684    }
     28685
     28686    // convert psMetadata rows to row objects
     28687
     28688    returnSet = psArrayAllocEmpty(rowSet->n);
     28689
     28690    for (i = 0; i < rowSet->n; i++) {
     28691        flatcorrCamLinkRow *object = flatcorrCamLinkObjectFromMetadata(rowSet->data[i]);
     28692        if (!object) {
     28693            psFree(object);
     28694            psFree(returnSet);
     28695            psError(PS_ERR_UNKNOWN, false, "database error");
     28696            return NULL;
     28697        }
     28698        psArrayAdd(returnSet, 0, object);
     28699        psFree(object);
     28700    }
     28701
     28702    psFree(rowSet);
     28703
     28704    return returnSet;
     28705}
     28706bool flatcorrCamLinkDeleteObject(psDB *dbh, const flatcorrCamLinkRow *object)
     28707{
     28708    psMetadata *where = flatcorrCamLinkMetadataFromObject(object);
     28709    long long count = psDBDeleteRows(dbh, FLATCORRCAMLINK_TABLE_NAME, where, 0);
     28710    psFree(where);
     28711    if (count < 0) {
     28712        psError(PS_ERR_UNKNOWN, true, "failed to delete row from flatcorrCamLink");
     28713        return false;
     28714    }
     28715    if (count > 1) {
     28716        // XXX should this be a psAbort() instead?  It is possible that
     28717        // having an object match multiple rows was by design.
     28718        psError(PS_ERR_UNKNOWN, true, "flatcorrCamLinkRow object matched more then one row.  Check your database schema");
     28719        return false;
     28720    }
     28721
     28722    return true;
     28723}
     28724long long flatcorrCamLinkDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     28725{
     28726    long long       deleted = 0;
     28727
     28728    for (long long i = 0; i < objects->n; i++) {
     28729        flatcorrCamLinkRow *object = objects->data[i];
     28730        psMetadata *where = flatcorrCamLinkMetadataFromObject(object);
     28731        long long count = psDBDeleteRows(dbh, FLATCORRCAMLINK_TABLE_NAME, where, limit);
     28732        psFree(where);
     28733        if (count < 0) {
     28734            psError(PS_ERR_UNKNOWN, true, "failed to delete row from flatcorrCamLink");
     28735            return count;
     28736        }
     28737
     28738        deleted += count;
     28739    }
     28740
     28741    return deleted;
     28742}
     28743bool flatcorrCamLinkPrintObjects(FILE *stream, psArray *objects, bool mdcf)
     28744{
     28745    PS_ASSERT_PTR_NON_NULL(objects, false);
     28746
     28747    psMetadata *output = psMetadataAlloc();
     28748    for (long i = 0; i < psArrayLength(objects); i++) {
     28749        psMetadata *md = flatcorrCamLinkMetadataFromObject(objects->data[i]);
     28750        if (!psMetadataAddMetadata(
     28751            output,
     28752            PS_LIST_TAIL,
     28753            FLATCORRCAMLINK_TABLE_NAME,
     28754            PS_META_DUPLICATE_OK,
     28755            NULL,
     28756            md
     28757        )) {
     28758            psError(PS_ERR_UNKNOWN, false, "failed to add metadata");
     28759            psFree(md);
     28760            psFree(output);
     28761            return false;
     28762        }
     28763        psFree(md);
     28764    }
     28765
     28766    if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {
     28767        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     28768        psFree(output);
     28769    }
     28770    psFree(output);
     28771
     28772    return true;
     28773}
     28774bool flatcorrCamLinkPrintObject(FILE *stream, flatcorrCamLinkRow *object, bool mdcf)
     28775{
     28776    PS_ASSERT_PTR_NON_NULL(object, false);
     28777
     28778    psMetadata *md = flatcorrCamLinkMetadataFromObject(object);
    2622928779
    2623028780    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
     
    2660429154    return true;
    2660529155}
     29156static void pstampProjectRowFree(pstampProjectRow *object);
     29157
     29158pstampProjectRow *pstampProjectRowAlloc(psS64 proj_id, const char *name, const char *state, const char *dbname, const char *dvodb, const char *camera, const char *telescope, bool need_magic)
     29159{
     29160    pstampProjectRow *_object;
     29161
     29162    _object = psAlloc(sizeof(pstampProjectRow));
     29163    psMemSetDeallocator(_object, (psFreeFunc)pstampProjectRowFree);
     29164
     29165    _object->proj_id = proj_id;
     29166    _object->name = psStringCopy(name);
     29167    _object->state = psStringCopy(state);
     29168    _object->dbname = psStringCopy(dbname);
     29169    _object->dvodb = psStringCopy(dvodb);
     29170    _object->camera = psStringCopy(camera);
     29171    _object->telescope = psStringCopy(telescope);
     29172    _object->need_magic = need_magic;
     29173
     29174    return _object;
     29175}
     29176
     29177static void pstampProjectRowFree(pstampProjectRow *object)
     29178{
     29179    psFree(object->name);
     29180    psFree(object->state);
     29181    psFree(object->dbname);
     29182    psFree(object->dvodb);
     29183    psFree(object->camera);
     29184    psFree(object->telescope);
     29185}
     29186
     29187bool pstampProjectCreateTable(psDB *dbh)
     29188{
     29189    psMetadata *md = psMetadataAlloc();
     29190    if (!psMetadataAdd(md, PS_LIST_TAIL, "proj_id", PS_DATA_S64, "Primary Key AUTO_INCREMENT", 0)) {
     29191        psError(PS_ERR_UNKNOWN, false, "failed to add item proj_id");
     29192        psFree(md);
     29193        return false;
     29194    }
     29195    if (!psMetadataAdd(md, PS_LIST_TAIL, "name", PS_DATA_STRING, "UNIQUE", "64")) {
     29196        psError(PS_ERR_UNKNOWN, false, "failed to add item name");
     29197        psFree(md);
     29198        return false;
     29199    }
     29200    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, "64")) {
     29201        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     29202        psFree(md);
     29203        return false;
     29204    }
     29205    if (!psMetadataAdd(md, PS_LIST_TAIL, "dbname", PS_DATA_STRING, NULL, "64")) {
     29206        psError(PS_ERR_UNKNOWN, false, "failed to add item dbname");
     29207        psFree(md);
     29208        return false;
     29209    }
     29210    if (!psMetadataAdd(md, PS_LIST_TAIL, "dvodb", PS_DATA_STRING, NULL, "64")) {
     29211        psError(PS_ERR_UNKNOWN, false, "failed to add item dvodb");
     29212        psFree(md);
     29213        return false;
     29214    }
     29215    if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, NULL, "64")) {
     29216        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
     29217        psFree(md);
     29218        return false;
     29219    }
     29220    if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, NULL, "64")) {
     29221        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
     29222        psFree(md);
     29223        return false;
     29224    }
     29225    if (!psMetadataAdd(md, PS_LIST_TAIL, "need_magic", PS_DATA_BOOL, NULL, 0)) {
     29226        psError(PS_ERR_UNKNOWN, false, "failed to add item need_magic");
     29227        psFree(md);
     29228        return false;
     29229    }
     29230
     29231    bool status = psDBCreateTable(dbh, PSTAMPPROJECT_TABLE_NAME, md);
     29232
     29233    psFree(md);
     29234
     29235    return status;
     29236}
     29237
     29238bool pstampProjectDropTable(psDB *dbh)
     29239{
     29240    return psDBDropTable(dbh, PSTAMPPROJECT_TABLE_NAME);
     29241}
     29242
     29243bool pstampProjectInsert(psDB * dbh, psS64 proj_id, const char *name, const char *state, const char *dbname, const char *dvodb, const char *camera, const char *telescope, bool need_magic)
     29244{
     29245    psMetadata *md = psMetadataAlloc();
     29246    if (!psMetadataAdd(md, PS_LIST_TAIL, "proj_id", PS_DATA_S64, NULL, proj_id)) {
     29247        psError(PS_ERR_UNKNOWN, false, "failed to add item proj_id");
     29248        psFree(md);
     29249        return false;
     29250    }
     29251    if (!psMetadataAdd(md, PS_LIST_TAIL, "name", PS_DATA_STRING, NULL, name)) {
     29252        psError(PS_ERR_UNKNOWN, false, "failed to add item name");
     29253        psFree(md);
     29254        return false;
     29255    }
     29256    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, state)) {
     29257        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     29258        psFree(md);
     29259        return false;
     29260    }
     29261    if (!psMetadataAdd(md, PS_LIST_TAIL, "dbname", PS_DATA_STRING, NULL, dbname)) {
     29262        psError(PS_ERR_UNKNOWN, false, "failed to add item dbname");
     29263        psFree(md);
     29264        return false;
     29265    }
     29266    if (!psMetadataAdd(md, PS_LIST_TAIL, "dvodb", PS_DATA_STRING, NULL, dvodb)) {
     29267        psError(PS_ERR_UNKNOWN, false, "failed to add item dvodb");
     29268        psFree(md);
     29269        return false;
     29270    }
     29271    if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, NULL, camera)) {
     29272        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
     29273        psFree(md);
     29274        return false;
     29275    }
     29276    if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, NULL, telescope)) {
     29277        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
     29278        psFree(md);
     29279        return false;
     29280    }
     29281    if (!psMetadataAdd(md, PS_LIST_TAIL, "need_magic", PS_DATA_BOOL, NULL, need_magic)) {
     29282        psError(PS_ERR_UNKNOWN, false, "failed to add item need_magic");
     29283        psFree(md);
     29284        return false;
     29285    }
     29286
     29287    bool status = psDBInsertOneRow(dbh, PSTAMPPROJECT_TABLE_NAME, md);
     29288    psFree(md);
     29289
     29290    return status;
     29291}
     29292
     29293long long pstampProjectDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     29294{
     29295    long long       deleted = 0;
     29296
     29297    long long count = psDBDeleteRows(dbh, PSTAMPPROJECT_TABLE_NAME, where, limit);
     29298    if (count < 0) {
     29299        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampProject");
     29300        return count;
     29301
     29302        deleted += count;
     29303    }
     29304
     29305    return deleted;
     29306}
     29307bool pstampProjectInsertObject(psDB *dbh, pstampProjectRow *object)
     29308{
     29309    return pstampProjectInsert(dbh, object->proj_id, object->name, object->state, object->dbname, object->dvodb, object->camera, object->telescope, object->need_magic);
     29310}
     29311
     29312bool pstampProjectInsertObjects(psDB *dbh, psArray *objects)
     29313{
     29314    for (long i = 0; i < psArrayLength(objects); i++) {
     29315        if (!pstampProjectInsertObject(dbh, objects->data[i])) {
     29316            return false;
     29317        }
     29318    }
     29319
     29320    return true;
     29321}
     29322
     29323bool pstampProjectInsertFits(psDB *dbh, const psFits *fits)
     29324{
     29325    psArray         *rowSet;
     29326
     29327    // move to (the first?) extension named  PSTAMPPROJECT_TABLE_NAME
     29328    if (!psFitsMoveExtName(fits, PSTAMPPROJECT_TABLE_NAME)) {
     29329        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", PSTAMPPROJECT_TABLE_NAME);
     29330        return false;
     29331    }
     29332
     29333    // check HDU type
     29334    if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE)  {
     29335        psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");
     29336        return false;
     29337    }
     29338
     29339    // read fits table
     29340    rowSet = psFitsReadTable(fits);
     29341    if (!rowSet) {
     29342        psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");
     29343        psFree(rowSet);
     29344        return false;
     29345    }
     29346
     29347    if (!psDBInsertRows(dbh, PSTAMPPROJECT_TABLE_NAME, rowSet)) {
     29348        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
     29349        psFree(rowSet);
     29350        return false;
     29351    }
     29352
     29353    psFree(rowSet);
     29354
     29355    return true;
     29356}
     29357
     29358bool pstampProjectSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     29359{
     29360    psArray         *rowSet;
     29361
     29362    rowSet = psDBSelectRows(dbh, PSTAMPPROJECT_TABLE_NAME, where, limit);
     29363    if (!rowSet) {
     29364        return false;
     29365    }
     29366
     29367    // output to fits
     29368    if (!psFitsWriteTable(fits, NULL, rowSet, PSTAMPPROJECT_TABLE_NAME)) {
     29369        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
     29370        psFree(rowSet);
     29371        return false;
     29372    }
     29373
     29374    psFree(rowSet);
     29375
     29376    return true;
     29377}
     29378
     29379psMetadata *pstampProjectMetadataFromObject(const pstampProjectRow *object)
     29380{
     29381    psMetadata *md = psMetadataAlloc();
     29382    if (!psMetadataAdd(md, PS_LIST_TAIL, "proj_id", PS_DATA_S64, NULL, object->proj_id)) {
     29383        psError(PS_ERR_UNKNOWN, false, "failed to add item proj_id");
     29384        psFree(md);
     29385        return false;
     29386    }
     29387    if (!psMetadataAdd(md, PS_LIST_TAIL, "name", PS_DATA_STRING, NULL, object->name)) {
     29388        psError(PS_ERR_UNKNOWN, false, "failed to add item name");
     29389        psFree(md);
     29390        return false;
     29391    }
     29392    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, object->state)) {
     29393        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     29394        psFree(md);
     29395        return false;
     29396    }
     29397    if (!psMetadataAdd(md, PS_LIST_TAIL, "dbname", PS_DATA_STRING, NULL, object->dbname)) {
     29398        psError(PS_ERR_UNKNOWN, false, "failed to add item dbname");
     29399        psFree(md);
     29400        return false;
     29401    }
     29402    if (!psMetadataAdd(md, PS_LIST_TAIL, "dvodb", PS_DATA_STRING, NULL, object->dvodb)) {
     29403        psError(PS_ERR_UNKNOWN, false, "failed to add item dvodb");
     29404        psFree(md);
     29405        return false;
     29406    }
     29407    if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, NULL, object->camera)) {
     29408        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
     29409        psFree(md);
     29410        return false;
     29411    }
     29412    if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, NULL, object->telescope)) {
     29413        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
     29414        psFree(md);
     29415        return false;
     29416    }
     29417    if (!psMetadataAdd(md, PS_LIST_TAIL, "need_magic", PS_DATA_BOOL, NULL, object->need_magic)) {
     29418        psError(PS_ERR_UNKNOWN, false, "failed to add item need_magic");
     29419        psFree(md);
     29420        return false;
     29421    }
     29422
     29423
     29424    return md;
     29425}
     29426
     29427pstampProjectRow *pstampProjectObjectFromMetadata(psMetadata *md)
     29428{
     29429
     29430bool status = false;
     29431    psS64 proj_id = psMetadataLookupS64(&status, md, "proj_id");
     29432    if (!status) {
     29433        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item proj_id");
     29434        return false;
     29435    }
     29436    char* name = psMetadataLookupPtr(&status, md, "name");
     29437    if (!status) {
     29438        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item name");
     29439        return false;
     29440    }
     29441    char* state = psMetadataLookupPtr(&status, md, "state");
     29442    if (!status) {
     29443        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item state");
     29444        return false;
     29445    }
     29446    char* dbname = psMetadataLookupPtr(&status, md, "dbname");
     29447    if (!status) {
     29448        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dbname");
     29449        return false;
     29450    }
     29451    char* dvodb = psMetadataLookupPtr(&status, md, "dvodb");
     29452    if (!status) {
     29453        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dvodb");
     29454        return false;
     29455    }
     29456    char* camera = psMetadataLookupPtr(&status, md, "camera");
     29457    if (!status) {
     29458        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
     29459        return false;
     29460    }
     29461    char* telescope = psMetadataLookupPtr(&status, md, "telescope");
     29462    if (!status) {
     29463        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
     29464        return false;
     29465    }
     29466    bool need_magic = psMetadataLookupBool(&status, md, "need_magic");
     29467    if (!status) {
     29468        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item need_magic");
     29469        return false;
     29470    }
     29471
     29472    return pstampProjectRowAlloc(proj_id, name, state, dbname, dvodb, camera, telescope, need_magic);
     29473}
     29474psArray *pstampProjectSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     29475{
     29476    psArray         *rowSet;
     29477    psArray         *returnSet;
     29478    psU64           i;
     29479
     29480    rowSet = psDBSelectRows(dbh, PSTAMPPROJECT_TABLE_NAME, where, limit);
     29481    if (!rowSet) {
     29482        return NULL;
     29483    }
     29484
     29485    // convert psMetadata rows to row objects
     29486
     29487    returnSet = psArrayAllocEmpty(rowSet->n);
     29488
     29489    for (i = 0; i < rowSet->n; i++) {
     29490        pstampProjectRow *object = pstampProjectObjectFromMetadata(rowSet->data[i]);
     29491        if (!object) {
     29492            psFree(object);
     29493            psFree(returnSet);
     29494            psError(PS_ERR_UNKNOWN, false, "database error");
     29495            return NULL;
     29496        }
     29497        psArrayAdd(returnSet, 0, object);
     29498        psFree(object);
     29499    }
     29500
     29501    psFree(rowSet);
     29502
     29503    return returnSet;
     29504}
     29505bool pstampProjectDeleteObject(psDB *dbh, const pstampProjectRow *object)
     29506{
     29507    psMetadata *where = pstampProjectMetadataFromObject(object);
     29508    long long count = psDBDeleteRows(dbh, PSTAMPPROJECT_TABLE_NAME, where, 0);
     29509    psFree(where);
     29510    if (count < 0) {
     29511        psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampProject");
     29512        return false;
     29513    }
     29514    if (count > 1) {
     29515        // XXX should this be a psAbort() instead?  It is possible that
     29516        // having an object match multiple rows was by design.
     29517        psError(PS_ERR_UNKNOWN, true, "pstampProjectRow object matched more then one row.  Check your database schema");
     29518        return false;
     29519    }
     29520
     29521    return true;
     29522}
     29523long long pstampProjectDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     29524{
     29525    long long       deleted = 0;
     29526
     29527    for (long long i = 0; i < objects->n; i++) {
     29528        pstampProjectRow *object = objects->data[i];
     29529        psMetadata *where = pstampProjectMetadataFromObject(object);
     29530        long long count = psDBDeleteRows(dbh, PSTAMPPROJECT_TABLE_NAME, where, limit);
     29531        psFree(where);
     29532        if (count < 0) {
     29533            psError(PS_ERR_UNKNOWN, true, "failed to delete row from pstampProject");
     29534            return count;
     29535        }
     29536
     29537        deleted += count;
     29538    }
     29539
     29540    return deleted;
     29541}
     29542bool pstampProjectPrintObjects(FILE *stream, psArray *objects, bool mdcf)
     29543{
     29544    PS_ASSERT_PTR_NON_NULL(objects, false);
     29545
     29546    psMetadata *output = psMetadataAlloc();
     29547    for (long i = 0; i < psArrayLength(objects); i++) {
     29548        psMetadata *md = pstampProjectMetadataFromObject(objects->data[i]);
     29549        if (!psMetadataAddMetadata(
     29550            output,
     29551            PS_LIST_TAIL,
     29552            PSTAMPPROJECT_TABLE_NAME,
     29553            PS_META_DUPLICATE_OK,
     29554            NULL,
     29555            md
     29556        )) {
     29557            psError(PS_ERR_UNKNOWN, false, "failed to add metadata");
     29558            psFree(md);
     29559            psFree(output);
     29560            return false;
     29561        }
     29562        psFree(md);
     29563    }
     29564
     29565    if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {
     29566        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     29567        psFree(output);
     29568    }
     29569    psFree(output);
     29570
     29571    return true;
     29572}
     29573bool pstampProjectPrintObject(FILE *stream, pstampProjectRow *object, bool mdcf)
     29574{
     29575    PS_ASSERT_PTR_NON_NULL(object, false);
     29576
     29577    psMetadata *md = pstampProjectMetadataFromObject(object);
     29578
     29579    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
     29580        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     29581        psFree(md);
     29582    }
     29583
     29584    psFree(md);
     29585
     29586    return true;
     29587}
    2660629588static void pstampRequestRowFree(pstampRequestRow *object);
    2660729589
     
    2703730019static void pstampJobRowFree(pstampJobRow *object);
    2703830020
    27039 pstampJobRow *pstampJobRowAlloc(psS64 job_id, psS64 req_id, const char *rownum, const char *state, const char *jobType, psS32 fault, const char *uri, const char *outputBase, const char *args)
     30021pstampJobRow *pstampJobRowAlloc(psS64 job_id, psS64 req_id, const char *rownum, const char *state, const char *jobType, psS32 fault, const char *uri, psS64 exp_id, const char *outputBase, const char *args)
    2704030022{
    2704130023    pstampJobRow    *_object;
     
    2705130033    _object->fault = fault;
    2705230034    _object->uri = psStringCopy(uri);
     30035    _object->exp_id = exp_id;
    2705330036    _object->outputBase = psStringCopy(outputBase);
    2705430037    _object->args = psStringCopy(args);
     
    2710530088        return false;
    2710630089    }
     30090    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_id", PS_DATA_S64, NULL, 0)) {
     30091        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
     30092        psFree(md);
     30093        return false;
     30094    }
    2710730095    if (!psMetadataAdd(md, PS_LIST_TAIL, "outputBase", PS_DATA_STRING, NULL, "255")) {
    2710830096        psError(PS_ERR_UNKNOWN, false, "failed to add item outputBase");
     
    2712830116}
    2712930117
    27130 bool pstampJobInsert(psDB * dbh, psS64 job_id, psS64 req_id, const char *rownum, const char *state, const char *jobType, psS32 fault, const char *uri, const char *outputBase, const char *args)
     30118bool pstampJobInsert(psDB * dbh, psS64 job_id, psS64 req_id, const char *rownum, const char *state, const char *jobType, psS32 fault, const char *uri, psS64 exp_id, const char *outputBase, const char *args)
    2713130119{
    2713230120    psMetadata *md = psMetadataAlloc();
     
    2716330151    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
    2716430152        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     30153        psFree(md);
     30154        return false;
     30155    }
     30156    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_id", PS_DATA_S64, NULL, exp_id)) {
     30157        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
    2716530158        psFree(md);
    2716630159        return false;
     
    2719930192bool pstampJobInsertObject(psDB *dbh, pstampJobRow *object)
    2720030193{
    27201     return pstampJobInsert(dbh, object->job_id, object->req_id, object->rownum, object->state, object->jobType, object->fault, object->uri, object->outputBase, object->args);
     30194    return pstampJobInsert(dbh, object->job_id, object->req_id, object->rownum, object->state, object->jobType, object->fault, object->uri, object->exp_id, object->outputBase, object->args);
    2720230195}
    2720330196
     
    2730730300        return false;
    2730830301    }
     30302    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_id", PS_DATA_S64, NULL, object->exp_id)) {
     30303        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
     30304        psFree(md);
     30305        return false;
     30306    }
    2730930307    if (!psMetadataAdd(md, PS_LIST_TAIL, "outputBase", PS_DATA_STRING, NULL, object->outputBase)) {
    2731030308        psError(PS_ERR_UNKNOWN, false, "failed to add item outputBase");
     
    2736130359        return false;
    2736230360    }
     30361    psS64 exp_id = psMetadataLookupS64(&status, md, "exp_id");
     30362    if (!status) {
     30363        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_id");
     30364        return false;
     30365    }
    2736330366    char* outputBase = psMetadataLookupPtr(&status, md, "outputBase");
    2736430367    if (!status) {
     
    2737230375    }
    2737330376
    27374     return pstampJobRowAlloc(job_id, req_id, rownum, state, jobType, fault, uri, outputBase, args);
     30377    return pstampJobRowAlloc(job_id, req_id, rownum, state, jobType, fault, uri, exp_id, outputBase, args);
    2737530378}
    2737630379psArray *pstampJobSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
  • trunk/ippdb/src/ippdb.h

    r18796 r20205  
    16491649    char            *filter;
    16501650    char            *comment;
     1651    char            *obs_mode;
     1652    char            *obs_group;
    16511653    psF32           airmass;
    16521654    psF64           ra;
     
    16881690    psF64           user_5;
    16891691    char            *object;
    1690     psF32           solang;
     1692    psF32           sun_angle;
     1693    psF32           sun_alt;
     1694    psF32           moon_angle;
     1695    psF32           moon_alt;
     1696    psF32           moon_phase;
    16911697    char            *hostname;
    16921698    psS16           fault;
     
    17151721    const char      *filter,
    17161722    const char      *comment,
     1723    const char      *obs_mode,
     1724    const char      *obs_group,
    17171725    psF32           airmass,
    17181726    psF64           ra,
     
    17541762    psF64           user_5,
    17551763    const char      *object,
    1756     psF32           solang,
     1764    psF32           sun_angle,
     1765    psF32           sun_alt,
     1766    psF32           moon_angle,
     1767    psF32           moon_alt,
     1768    psF32           moon_phase,
    17571769    const char      *hostname,
    17581770    psS16           fault,
     
    18021814    const char      *filter,
    18031815    const char      *comment,
     1816    const char      *obs_mode,
     1817    const char      *obs_group,
    18041818    psF32           airmass,
    18051819    psF64           ra,
     
    18411855    psF64           user_5,
    18421856    const char      *object,
    1843     psF32           solang,
     1857    psF32           sun_angle,
     1858    psF32           sun_alt,
     1859    psF32           moon_angle,
     1860    psF32           moon_alt,
     1861    psF32           moon_phase,
    18441862    const char      *hostname,
    18451863    psS16           fault,
     
    20122030    char            *filter;
    20132031    char            *comment;
     2032    char            *obs_mode;
     2033    char            *obs_group;
    20142034    psF32           airmass;
    20152035    psF64           ra;
     
    20512071    psF64           user_5;
    20522072    char            *object;
     2073    psF32           sun_angle;
     2074    psF32           sun_alt;
     2075    psF32           moon_angle;
     2076    psF32           moon_alt;
     2077    psF32           moon_phase;
    20532078    char            *hostname;
    20542079    psS16           fault;
     
    20742099    const char      *filter,
    20752100    const char      *comment,
     2101    const char      *obs_mode,
     2102    const char      *obs_group,
    20762103    psF32           airmass,
    20772104    psF64           ra,
     
    21132140    psF64           user_5,
    21142141    const char      *object,
     2142    psF32           sun_angle,
     2143    psF32           sun_alt,
     2144    psF32           moon_angle,
     2145    psF32           moon_alt,
     2146    psF32           moon_phase,
    21152147    const char      *hostname,
    21162148    psS16           fault,
     
    21572189    const char      *filter,
    21582190    const char      *comment,
     2191    const char      *obs_mode,
     2192    const char      *obs_group,
    21592193    psF32           airmass,
    21602194    psF64           ra,
     
    21962230    psF64           user_5,
    21972231    const char      *object,
     2232    psF32           sun_angle,
     2233    psF32           sun_alt,
     2234    psF32           moon_angle,
     2235    psF32           moon_alt,
     2236    psF32           moon_phase,
    21982237    const char      *hostname,
    21992238    psS16           fault,
     
    27832822    psS64           exp_id;
    27842823    char            *class_id;
     2824    char            *data_state;
    27852825    char            *uri;
    27862826    psF32           bg;
     
    27922832    psF32           fringe_1;
    27932833    psF32           fringe_2;
    2794     psF32           sigma_ra;
    2795     psF32           sigma_dec;
    27962834    psF32           ap_resid;
    27972835    psF32           ap_resid_stdev;
    2798     psF32           zp_mean;
    2799     psF32           zp_stdev;
    28002836    psF32           fwhm_major;
    28012837    psF32           fwhm_minor;
     2838    psF32           iq_m2;
     2839    psF32           iq_m2_err;
     2840    psF32           iq_m2_lq;
     2841    psF32           iq_m2_uq;
     2842    psF32           iq_m2c;
     2843    psF32           iq_m2c_err;
     2844    psF32           iq_m2c_lq;
     2845    psF32           iq_m2c_uq;
     2846    psF32           iq_m2s;
     2847    psF32           iq_m2s_err;
     2848    psF32           iq_m2s_lq;
     2849    psF32           iq_m2s_uq;
     2850    psF32           iq_m3;
     2851    psF32           iq_m3_err;
     2852    psF32           iq_m3_lq;
     2853    psF32           iq_m3_uq;
     2854    psF32           iq_m4;
     2855    psF32           iq_m4_err;
     2856    psF32           iq_m4_lq;
     2857    psF32           iq_m4_uq;
    28022858    psF32           dtime_detrend;
    28032859    psF32           dtime_photom;
    2804     psF32           dtime_astrom;
     2860    psF32           dtime_total;
     2861    psF32           dtime_script;
    28052862    char            *hostname;
    28062863    psS32           n_stars;
     2864    psS32           n_psfstars;
     2865    psS32           n_iqstars;
    28072866    psS32           n_extended;
    28082867    psS32           n_cr;
    2809     psS32           n_astrom;
    28102868    char            *path_base;
    28112869    psS16           fault;
     
    28212879    psS64           exp_id,
    28222880    const char      *class_id,
     2881    const char      *data_state,
    28232882    const char      *uri,
    28242883    psF32           bg,
     
    28302889    psF32           fringe_1,
    28312890    psF32           fringe_2,
    2832     psF32           sigma_ra,
    2833     psF32           sigma_dec,
    28342891    psF32           ap_resid,
    28352892    psF32           ap_resid_stdev,
    2836     psF32           zp_mean,
    2837     psF32           zp_stdev,
    28382893    psF32           fwhm_major,
    28392894    psF32           fwhm_minor,
     2895    psF32           iq_m2,
     2896    psF32           iq_m2_err,
     2897    psF32           iq_m2_lq,
     2898    psF32           iq_m2_uq,
     2899    psF32           iq_m2c,
     2900    psF32           iq_m2c_err,
     2901    psF32           iq_m2c_lq,
     2902    psF32           iq_m2c_uq,
     2903    psF32           iq_m2s,
     2904    psF32           iq_m2s_err,
     2905    psF32           iq_m2s_lq,
     2906    psF32           iq_m2s_uq,
     2907    psF32           iq_m3,
     2908    psF32           iq_m3_err,
     2909    psF32           iq_m3_lq,
     2910    psF32           iq_m3_uq,
     2911    psF32           iq_m4,
     2912    psF32           iq_m4_err,
     2913    psF32           iq_m4_lq,
     2914    psF32           iq_m4_uq,
    28402915    psF32           dtime_detrend,
    28412916    psF32           dtime_photom,
    2842     psF32           dtime_astrom,
     2917    psF32           dtime_total,
     2918    psF32           dtime_script,
    28432919    const char      *hostname,
    28442920    psS32           n_stars,
     2921    psS32           n_psfstars,
     2922    psS32           n_iqstars,
    28452923    psS32           n_extended,
    28462924    psS32           n_cr,
    2847     psS32           n_astrom,
    28482925    const char      *path_base,
    28492926    psS16           fault
     
    28802957    psS64           exp_id,
    28812958    const char      *class_id,
     2959    const char      *data_state,
    28822960    const char      *uri,
    28832961    psF32           bg,
     
    28892967    psF32           fringe_1,
    28902968    psF32           fringe_2,
    2891     psF32           sigma_ra,
    2892     psF32           sigma_dec,
    28932969    psF32           ap_resid,
    28942970    psF32           ap_resid_stdev,
    2895     psF32           zp_mean,
    2896     psF32           zp_stdev,
    28972971    psF32           fwhm_major,
    28982972    psF32           fwhm_minor,
     2973    psF32           iq_m2,
     2974    psF32           iq_m2_err,
     2975    psF32           iq_m2_lq,
     2976    psF32           iq_m2_uq,
     2977    psF32           iq_m2c,
     2978    psF32           iq_m2c_err,
     2979    psF32           iq_m2c_lq,
     2980    psF32           iq_m2c_uq,
     2981    psF32           iq_m2s,
     2982    psF32           iq_m2s_err,
     2983    psF32           iq_m2s_lq,
     2984    psF32           iq_m2s_uq,
     2985    psF32           iq_m3,
     2986    psF32           iq_m3_err,
     2987    psF32           iq_m3_lq,
     2988    psF32           iq_m3_uq,
     2989    psF32           iq_m4,
     2990    psF32           iq_m4_err,
     2991    psF32           iq_m4_lq,
     2992    psF32           iq_m4_uq,
    28992993    psF32           dtime_detrend,
    29002994    psF32           dtime_photom,
    2901     psF32           dtime_astrom,
     2995    psF32           dtime_total,
     2996    psF32           dtime_script,
    29022997    const char      *hostname,
    29032998    psS32           n_stars,
     2999    psS32           n_psfstars,
     3000    psS32           n_iqstars,
    29043001    psS32           n_extended,
    29053002    psS32           n_cr,
    2906     psS32           n_astrom,
    29073003    const char      *path_base,
    29083004    psS16           fault
     
    35003596    psF32           fwhm_major;
    35013597    psF32           fwhm_minor;
    3502     psF32           dtime_detrend;
    3503     psF32           dtime_photom;
     3598    psF32           iq_m2;
     3599    psF32           iq_m2_err;
     3600    psF32           iq_m2_lq;
     3601    psF32           iq_m2_uq;
     3602    psF32           iq_m2c;
     3603    psF32           iq_m2c_err;
     3604    psF32           iq_m2c_lq;
     3605    psF32           iq_m2c_uq;
     3606    psF32           iq_m2s;
     3607    psF32           iq_m2s_err;
     3608    psF32           iq_m2s_lq;
     3609    psF32           iq_m2s_uq;
     3610    psF32           iq_m3;
     3611    psF32           iq_m3_err;
     3612    psF32           iq_m3_lq;
     3613    psF32           iq_m3_uq;
     3614    psF32           iq_m4;
     3615    psF32           iq_m4_err;
     3616    psF32           iq_m4_lq;
     3617    psF32           iq_m4_uq;
     3618    psF32           dtime_script;
    35043619    psF32           dtime_astrom;
     3620    psF32           dtime_addstar;
    35053621    char            *hostname;
    35063622    psS32           n_stars;
     3623    psS32           n_psfstars;
     3624    psS32           n_iqstars;
    35073625    psS32           n_extended;
    35083626    psS32           n_cr;
     
    35363654    psF32           fwhm_major,
    35373655    psF32           fwhm_minor,
    3538     psF32           dtime_detrend,
    3539     psF32           dtime_photom,
     3656    psF32           iq_m2,
     3657    psF32           iq_m2_err,
     3658    psF32           iq_m2_lq,
     3659    psF32           iq_m2_uq,
     3660    psF32           iq_m2c,
     3661    psF32           iq_m2c_err,
     3662    psF32           iq_m2c_lq,
     3663    psF32           iq_m2c_uq,
     3664    psF32           iq_m2s,
     3665    psF32           iq_m2s_err,
     3666    psF32           iq_m2s_lq,
     3667    psF32           iq_m2s_uq,
     3668    psF32           iq_m3,
     3669    psF32           iq_m3_err,
     3670    psF32           iq_m3_lq,
     3671    psF32           iq_m3_uq,
     3672    psF32           iq_m4,
     3673    psF32           iq_m4_err,
     3674    psF32           iq_m4_lq,
     3675    psF32           iq_m4_uq,
     3676    psF32           dtime_script,
    35403677    psF32           dtime_astrom,
     3678    psF32           dtime_addstar,
    35413679    const char      *hostname,
    35423680    psS32           n_stars,
     3681    psS32           n_psfstars,
     3682    psS32           n_iqstars,
    35433683    psS32           n_extended,
    35443684    psS32           n_cr,
     
    35933733    psF32           fwhm_major,
    35943734    psF32           fwhm_minor,
    3595     psF32           dtime_detrend,
    3596     psF32           dtime_photom,
     3735    psF32           iq_m2,
     3736    psF32           iq_m2_err,
     3737    psF32           iq_m2_lq,
     3738    psF32           iq_m2_uq,
     3739    psF32           iq_m2c,
     3740    psF32           iq_m2c_err,
     3741    psF32           iq_m2c_lq,
     3742    psF32           iq_m2c_uq,
     3743    psF32           iq_m2s,
     3744    psF32           iq_m2s_err,
     3745    psF32           iq_m2s_lq,
     3746    psF32           iq_m2s_uq,
     3747    psF32           iq_m3,
     3748    psF32           iq_m3_err,
     3749    psF32           iq_m3_lq,
     3750    psF32           iq_m3_uq,
     3751    psF32           iq_m4,
     3752    psF32           iq_m4_err,
     3753    psF32           iq_m4_lq,
     3754    psF32           iq_m4_uq,
     3755    psF32           dtime_script,
    35973756    psF32           dtime_astrom,
     3757    psF32           dtime_addstar,
    35983758    const char      *hostname,
    35993759    psS32           n_stars,
     3760    psS32           n_psfstars,
     3761    psS32           n_iqstars,
    36003762    psS32           n_extended,
    36013763    psS32           n_cr,
     
    41834345    char            *uri;
    41844346    psF32           dtime_fake;
     4347    psF32           dtime_script;
    41854348    char            *hostname;
    41864349    char            *path_base;
     4350    char            *data_state;
    41874351    psS16           fault;
    41884352    psTime*         epoch;
     
    42004364    const char      *uri,
    42014365    psF32           dtime_fake,
     4366    psF32           dtime_script,
    42024367    const char      *hostname,
    42034368    const char      *path_base,
     4369    const char      *data_state,
    42044370    psS16           fault,
    42054371    psTime*         epoch
     
    42384404    const char      *uri,
    42394405    psF32           dtime_fake,
     4406    psF32           dtime_script,
    42404407    const char      *hostname,
    42414408    const char      *path_base,
     4409    const char      *data_state,
    42424410    psS16           fault,
    42434411    psTime*         epoch
     
    50325200    char            *uri;
    50335201    char            *path_base;
     5202    char            *data_state;
    50345203    psF64           bg;
    50355204    psF64           bg_stdev;
    50365205    psF32           dtime_warp;
     5206    psF32           dtime_script;
    50375207    char            *hostname;
    50385208    psF32           good_frac;
     
    50565226    const char      *uri,
    50575227    const char      *path_base,
     5228    const char      *data_state,
    50585229    psF64           bg,
    50595230    psF64           bg_stdev,
    50605231    psF32           dtime_warp,
     5232    psF32           dtime_script,
    50615233    const char      *hostname,
    50625234    psF32           good_frac,
     
    51015273    const char      *uri,
    51025274    const char      *path_base,
     5275    const char      *data_state,
    51035276    psF64           bg,
    51045277    psF64           bg_stdev,
    51055278    psF32           dtime_warp,
     5279    psF32           dtime_script,
    51065280    const char      *hostname,
    51075281    psF32           good_frac,
     
    54645638    psS64           diff_id;
    54655639    char            *state;
     5640    char            *label;
     5641    char            *reduction;
    54665642    char            *workdir;
    54675643    char            *dvodb;
     
    54795655    psS64           diff_id,
    54805656    const char      *state,
     5657    const char      *label,
     5658    const char      *reduction,
    54815659    const char      *workdir,
    54825660    const char      *dvodb,
     
    55155693    psS64           diff_id,
    55165694    const char      *state,
     5695    const char      *label,
     5696    const char      *reduction,
    55175697    const char      *workdir,
    55185698    const char      *dvodb,
     
    58946074    psF64           bg_stdev;
    58956075    psS32           stamps_num;
     6076    psF32           stamps_mean;
    58966077    psF32           stamps_rms;
     6078    psF32           norm;
     6079    psF32           bg_diff;
     6080    psF32           kernel_x;
     6081    psF32           kernel_y;
     6082    psF32           kernel_xx;
     6083    psF32           kernel_xy;
     6084    psF32           kernel_yy;
    58976085    psS32           sources;
    58986086    psF32           dtime_diff;
     6087    psF32           dtime_match;
     6088    psF32           dtime_phot;
     6089    psF32           dtime_script;
    58996090    char            *hostname;
    59006091    psF32           good_frac;
     
    59146105    psF64           bg_stdev,
    59156106    psS32           stamps_num,
     6107    psF32           stamps_mean,
    59166108    psF32           stamps_rms,
     6109    psF32           norm,
     6110    psF32           bg_diff,
     6111    psF32           kernel_x,
     6112    psF32           kernel_y,
     6113    psF32           kernel_xx,
     6114    psF32           kernel_xy,
     6115    psF32           kernel_yy,
    59176116    psS32           sources,
    59186117    psF32           dtime_diff,
     6118    psF32           dtime_match,
     6119    psF32           dtime_phot,
     6120    psF32           dtime_script,
    59196121    const char      *hostname,
    59206122    psF32           good_frac,
     
    59556157    psF64           bg_stdev,
    59566158    psS32           stamps_num,
     6159    psF32           stamps_mean,
    59576160    psF32           stamps_rms,
     6161    psF32           norm,
     6162    psF32           bg_diff,
     6163    psF32           kernel_x,
     6164    psF32           kernel_y,
     6165    psF32           kernel_xx,
     6166    psF32           kernel_xy,
     6167    psF32           kernel_yy,
    59586168    psS32           sources,
    59596169    psF32           dtime_diff,
     6170    psF32           dtime_match,
     6171    psF32           dtime_phot,
     6172    psF32           dtime_script,
    59606173    const char      *hostname,
    59616174    psF32           good_frac,
     
    61196332    char            *state;
    61206333    char            *workdir;
     6334    char            *label;
     6335    char            *reduction;
    61216336    char            *dvodb;
    61226337    psTime*         registered;
     
    61356350    const char      *state,
    61366351    const char      *workdir,
     6352    const char      *label,
     6353    const char      *reduction,
    61376354    const char      *dvodb,
    61386355    psTime*         registered,
     
    61726389    const char      *state,
    61736390    const char      *workdir,
     6391    const char      *label,
     6392    const char      *reduction,
    61746393    const char      *dvodb,
    61756394    psTime*         registered,
     
    65366755    psF64           bg_stdev;
    65376756    psF32           dtime_stack;
     6757    psF32           dtime_match_mean;
     6758    psF32           dtime_match_stdev;
     6759    psF32           dtime_initial;
     6760    psF32           dtime_reject;
     6761    psF32           dtime_final;
     6762    psF32           dtime_phot;
     6763    psF32           dtime_script;
     6764    psF32           match_mean;
     6765    psF32           match_stdev;
     6766    psF32           match_rms;
     6767    psF32           stamps_mean;
     6768    psF32           stamps_stdev;
     6769    psS32           stamps_min;
     6770    psS32           reject_images;
     6771    psF32           reject_pix_mean;
     6772    psF32           reject_pix_stdev;
     6773    psS32           sources;
    65386774    char            *hostname;
    65396775    psF32           good_frac;
     
    65536789    psF64           bg_stdev,
    65546790    psF32           dtime_stack,
     6791    psF32           dtime_match_mean,
     6792    psF32           dtime_match_stdev,
     6793    psF32           dtime_initial,
     6794    psF32           dtime_reject,
     6795    psF32           dtime_final,
     6796    psF32           dtime_phot,
     6797    psF32           dtime_script,
     6798    psF32           match_mean,
     6799    psF32           match_stdev,
     6800    psF32           match_rms,
     6801    psF32           stamps_mean,
     6802    psF32           stamps_stdev,
     6803    psS32           stamps_min,
     6804    psS32           reject_images,
     6805    psF32           reject_pix_mean,
     6806    psF32           reject_pix_stdev,
     6807    psS32           sources,
    65556808    const char      *hostname,
    65566809    psF32           good_frac,
     
    65916844    psF64           bg_stdev,
    65926845    psF32           dtime_stack,
     6846    psF32           dtime_match_mean,
     6847    psF32           dtime_match_stdev,
     6848    psF32           dtime_initial,
     6849    psF32           dtime_reject,
     6850    psF32           dtime_final,
     6851    psF32           dtime_phot,
     6852    psF32           dtime_script,
     6853    psF32           match_mean,
     6854    psF32           match_stdev,
     6855    psF32           match_rms,
     6856    psF32           stamps_mean,
     6857    psF32           stamps_stdev,
     6858    psS32           stamps_min,
     6859    psS32           reject_images,
     6860    psF32           reject_pix_mean,
     6861    psF32           reject_pix_stdev,
     6862    psS32           sources,
    65936863    const char      *hostname,
    65946864    psF32           good_frac,
     
    67777047    psF32           solang_max;
    67787048    char            *label;
    6779     psS32           parent;
     7049    psS64           ref_det_id;
     7050    psS32           ref_iter;
    67807051} detRunRow;
    67817052
     
    68147085    psF32           solang_max,
    68157086    const char      *label,
    6816     psS32           parent
     7087    psS64           ref_det_id,
     7088    psS32           ref_iter
    68177089);
    68187090
     
    68727144    psF32           solang_max,
    68737145    const char      *label,
    6874     psS32           parent
     7146    psS64           ref_det_id,
     7147    psS32           ref_iter
    68757148);
    68767149
     
    72497522    psF64           user_5;
    72507523    char            *path_base;
     7524    char            *data_state;
    72517525    psS16           fault;
    72527526} detProcessedImfileRow;
     
    72757549    psF64           user_5,
    72767550    const char      *path_base,
     7551    const char      *data_state,
    72777552    psS16           fault
    72787553);
     
    73227597    psF64           user_5,
    73237598    const char      *path_base,
     7599    const char      *data_state,
    73247600    psS16           fault
    73257601);
     
    74937769    psF64           user_5;
    74947770    char            *path_base;
     7771    char            *data_state;
    74957772    psS16           fault;
    74967773} detProcessedExpRow;
     
    75177794    psF64           user_5,
    75187795    const char      *path_base,
     7796    const char      *data_state,
    75197797    psS16           fault
    75207798);
     
    75627840    psF64           user_5,
    75637841    const char      *path_base,
     7842    const char      *data_state,
    75647843    psS16           fault
    75657844);
     
    77318010    psF64           user_4;
    77328011    psF64           user_5;
     8012    char            *data_state;
    77338013    psS16           fault;
    77348014} detStackedImfileRow;
     
    77538033    psF64           user_4,
    77548034    psF64           user_5,
     8035    const char      *data_state,
    77558036    psS16           fault
    77568037);
     
    77968077    psF64           user_4,
    77978078    psF64           user_5,
     8079    const char      *data_state,
    77988080    psS16           fault
    77998081);
     
    79568238    char            *class_id;
    79578239    psF32           norm;
     8240    char            *data_state;
    79588241    psS16           fault;
    79598242} detNormalizedStatImfileRow;
     
    79698252    const char      *class_id,
    79708253    psF32           norm,
     8254    const char      *data_state,
    79718255    psS16           fault
    79728256);
     
    80038287    const char      *class_id,
    80048288    psF32           norm,
     8289    const char      *data_state,
    80058290    psS16           fault
    80068291);
     
    81728457    psF64           user_5;
    81738458    char            *path_base;
     8459    char            *data_state;
    81748460    psS16           fault;
    81758461} detNormalizedImfileRow;
     
    81948480    psF64           user_5,
    81958481    const char      *path_base,
     8482    const char      *data_state,
    81968483    psS16           fault
    81978484);
     
    82378524    psF64           user_5,
    82388525    const char      *path_base,
     8526    const char      *data_state,
    82398527    psS16           fault
    82408528);
     
    84058693    psF64           user_5;
    84068694    char            *path_base;
     8695    char            *data_state;
    84078696    psS16           fault;
    84088697} detNormalizedExpRow;
     
    84268715    psF64           user_5,
    84278716    const char      *path_base,
     8717    const char      *data_state,
    84288718    psS16           fault
    84298719);
     
    84688758    psF64           user_5,
    84698759    const char      *path_base,
     8760    const char      *data_state,
    84708761    psS16           fault
    84718762);
     
    86268917    psS64           det_id;
    86278918    psS32           iteration;
     8919    psS64           ref_det_id;
     8920    psS32           ref_iter;
    86288921    psS64           exp_id;
    86298922    char            *class_id;
     
    86488941    psF64           user_5;
    86498942    char            *path_base;
     8943    char            *data_state;
    86508944    psS16           fault;
    86518945} detResidImfileRow;
     
    86598953    psS64           det_id,
    86608954    psS32           iteration,
     8955    psS64           ref_det_id,
     8956    psS32           ref_iter,
    86618957    psS64           exp_id,
    86628958    const char      *class_id,
     
    86818977    psF64           user_5,
    86828978    const char      *path_base,
     8979    const char      *data_state,
    86838980    psS16           fault
    86848981);
     
    87139010    psS64           det_id,
    87149011    psS32           iteration,
     9012    psS64           ref_det_id,
     9013    psS32           ref_iter,
    87159014    psS64           exp_id,
    87169015    const char      *class_id,
     
    87359034    psF64           user_5,
    87369035    const char      *path_base,
     9036    const char      *data_state,
    87379037    psS16           fault
    87389038);
     
    89139213    psF64           user_5;
    89149214    char            *path_base;
     9215    char            *data_state;
    89159216    bool            accept;
    89169217    psS16           fault;
     
    89459246    psF64           user_5,
    89469247    const char      *path_base,
     9248    const char      *data_state,
    89479249    bool            accept,
    89489250    psS16           fault
     
    89989300    psF64           user_5,
    89999301    const char      *path_base,
     9302    const char      *data_state,
    90009303    bool            accept,
    90019304    psS16           fault
     
    91579460    psS64           det_id;
    91589461    psS32           iteration;
     9462    char            *data_state;
    91599463    psF64           bg;
    91609464    psF64           bg_stdev;
     
    91729476    psS64           det_id,
    91739477    psS32           iteration,
     9478    const char      *data_state,
    91749479    psF64           bg,
    91759480    psF64           bg_stdev,
     
    92089513    psS64           det_id,
    92099514    psS32           iteration,
     9515    const char      *data_state,
    92109516    psF64           bg,
    92119517    psF64           bg_stdev,
     
    93819687    psF64           user_5;
    93829688    char            *path_base;
     9689    char            *data_state;
    93839690    psS16           fault;
    93849691} detRegisteredImfileRow;
     
    94039710    psF64           user_5,
    94049711    const char      *path_base,
     9712    const char      *data_state,
    94059713    psS16           fault
    94069714);
     
    94469754    psF64           user_5,
    94479755    const char      *path_base,
     9756    const char      *data_state,
    94489757    psS16           fault
    94499758);
     
    1146811777    char            *workdir;
    1146911778    char            *label;
    11470     char            *stats;
     11779    char            *reduction;
    1147111780    char            *region;
     11781    char            *hostname;
     11782    psS16           fault;
    1147211783} flatcorrRunRow;
    1147311784
     
    1148411795    const char      *workdir,
    1148511796    const char      *label,
    11486     const char      *stats,
    11487     const char      *region
     11797    const char      *reduction,
     11798    const char      *region,
     11799    const char      *hostname,
     11800    psS16           fault
    1148811801);
    1148911802
     
    1152111834    const char      *workdir,
    1152211835    const char      *label,
    11523     const char      *stats,
    11524     const char      *region
     11836    const char      *reduction,
     11837    const char      *region,
     11838    const char      *hostname,
     11839    psS16           fault
    1152511840);
    1152611841
     
    1167211987    bool            mdcf                ///< format as mdconfig or simple
    1167311988);
    11674 /** flatcorrExpRow data structure
    11675  *
    11676  * Structure for representing a single row of flatcorrExp table data.
     11989/** flatcorrChipLinkRow data structure
     11990 *
     11991 * Structure for representing a single row of flatcorrChipLink table data.
    1167711992 */
    1167811993
     
    1168011995    psS64           corr_id;
    1168111996    psS64           chip_id;
    11682 } flatcorrExpRow;
    11683 
    11684 /** Creates a new flatcorrExpRow object
    11685  *
    11686  *  @return A new flatcorrExpRow object or NULL on failure.
    11687  */
    11688 
    11689 flatcorrExpRow *flatcorrExpRowAlloc(
     11997} flatcorrChipLinkRow;
     11998
     11999/** Creates a new flatcorrChipLinkRow object
     12000 *
     12001 *  @return A new flatcorrChipLinkRow object or NULL on failure.
     12002 */
     12003
     12004flatcorrChipLinkRow *flatcorrChipLinkRowAlloc(
    1169012005    psS64           corr_id,
    1169112006    psS64           chip_id
    1169212007);
    1169312008
    11694 /** Creates a new flatcorrExp table
    11695  *
    11696  * @return true on success
    11697  */
    11698 
    11699 bool flatcorrExpCreateTable(
     12009/** Creates a new flatcorrChipLink table
     12010 *
     12011 * @return true on success
     12012 */
     12013
     12014bool flatcorrChipLinkCreateTable(
    1170012015    psDB            *dbh                ///< Database handle
    1170112016);
    1170212017
    11703 /** Deletes a flatcorrExp table
    11704  *
    11705  * @return true on success
    11706  */
    11707 
    11708 bool flatcorrExpDropTable(
     12018/** Deletes a flatcorrChipLink table
     12019 *
     12020 * @return true on success
     12021 */
     12022
     12023bool flatcorrChipLinkDropTable(
    1170912024    psDB            *dbh                ///< Database handle
    1171012025);
     
    1171712032 */
    1171812033
    11719 bool flatcorrExpInsert(
     12034bool flatcorrChipLinkInsert(
    1172012035    psDB            *dbh,               ///< Database handle
    1172112036    psS64           corr_id,
     
    1172812043 */
    1172912044
    11730 long long flatcorrExpDelete(
     12045long long flatcorrChipLinkDelete(
    1173112046    psDB            *dbh,               ///< Database handle
    1173212047    const psMetadata *where,            ///< Row match criteria
     
    1173412049);
    1173512050
    11736 /** Insert a single flatcorrExpRow object into a table
     12051/** Insert a single flatcorrChipLinkRow object into a table
    1173712052 *
    1173812053 * This function constructs and inserts a single row based on it's parameters.
     
    1174112056 */
    1174212057
    11743 bool flatcorrExpInsertObject(
    11744     psDB            *dbh,               ///< Database handle
    11745     flatcorrExpRow  *object             ///< flatcorrExpRow object
    11746 );
    11747 
    11748 /** Insert an array of flatcorrExpRow object into a table
     12058bool flatcorrChipLinkInsertObject(
     12059    psDB            *dbh,               ///< Database handle
     12060    flatcorrChipLinkRow *object             ///< flatcorrChipLinkRow object
     12061);
     12062
     12063/** Insert an array of flatcorrChipLinkRow object into a table
    1174912064 *
    1175012065 * This function constructs and inserts multiple rows based on it's parameters.
     
    1175312068 */
    1175412069
    11755 bool flatcorrExpInsertObjects(
    11756     psDB            *dbh,               ///< Database handle
    11757     psArray         *objects            ///< array of flatcorrExpRow objects
    11758 );
    11759 
    11760 /** Insert data from a binary FITS table flatcorrExpRow into the database
     12070bool flatcorrChipLinkInsertObjects(
     12071    psDB            *dbh,               ///< Database handle
     12072    psArray         *objects            ///< array of flatcorrChipLinkRow objects
     12073);
     12074
     12075/** Insert data from a binary FITS table flatcorrChipLinkRow into the database
    1176112076 *
    1176212077 * This function expects a psFits object with a FITS table as the first
     
    1176812083 */
    1176912084
    11770 bool flatcorrExpInsertFits(
     12085bool flatcorrChipLinkInsertFits(
    1177112086    psDB            *dbh,               ///< Database handle
    1177212087    const psFits    *fits               ///< psFits object
     
    1178312098 */
    1178412099
    11785 bool flatcorrExpSelectRowsFits(
     12100bool flatcorrChipLinkSelectRowsFits(
    1178612101    psDB            *dbh,               ///< Database handle
    1178712102    psFits          *fits,              ///< psFits object
     
    1179012105);
    1179112106
    11792 /** Convert a flatcorrExpRow into an equivalent psMetadata
     12107/** Convert a flatcorrChipLinkRow into an equivalent psMetadata
    1179312108 *
    1179412109 * @return A psMetadata pointer or NULL on error
    1179512110 */
    1179612111
    11797 psMetadata *flatcorrExpMetadataFromObject(
    11798     const flatcorrExpRow *object             ///< fooRow to convert into a psMetadata
     12112psMetadata *flatcorrChipLinkMetadataFromObject(
     12113    const flatcorrChipLinkRow *object             ///< fooRow to convert into a psMetadata
    1179912114);
    1180012115
    1180112116/** Convert a psMetadata into an equivalent fooRow
    1180212117 *
    11803  * @return A flatcorrExpRow pointer or NULL on error
    11804  */
    11805 
    11806 flatcorrExpRow *flatcorrExpObjectFromMetadata(
     12118 * @return A flatcorrChipLinkRow pointer or NULL on error
     12119 */
     12120
     12121flatcorrChipLinkRow *flatcorrChipLinkObjectFromMetadata(
    1180712122    psMetadata      *md                 ///< psMetadata to convert into a fooRow
    1180812123);
    11809 /** Selects up to limit rows from the database and returns as flatcorrExpRow objects in a psArray
     12124/** Selects up to limit rows from the database and returns as flatcorrChipLinkRow objects in a psArray
    1181012125 *
    1181112126 *  See psDBSelectRows() for documentation on the format of where.
     
    1181412129 */
    1181512130
    11816 psArray *flatcorrExpSelectRowObjects(
     12131psArray *flatcorrChipLinkSelectRowObjects(
    1181712132    psDB            *dbh,               ///< Database handle
    1181812133    const psMetadata *where,            ///< Row match criteria
    1181912134    unsigned long long limit            ///< Maximum number of elements to return
    1182012135);
    11821 /** Deletes a row from the database coresponding to an flatcorrExp
     12136/** Deletes a row from the database coresponding to an flatcorrChipLink
    1182212137 *
    1182312138 *  Note that a 'where' search psMetadata is constructed from each object and
     
    1182712142 */
    1182812143
    11829 bool flatcorrExpDeleteObject(
    11830     psDB            *dbh,               ///< Database handle
    11831     const flatcorrExpRow *object    ///< Object to delete
     12144bool flatcorrChipLinkDeleteObject(
     12145    psDB            *dbh,               ///< Database handle
     12146    const flatcorrChipLinkRow *object    ///< Object to delete
    1183212147);
    1183312148/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     
    1183912154 */
    1184012155
    11841 long long flatcorrExpDeleteRowObjects(
     12156long long flatcorrChipLinkDeleteRowObjects(
    1184212157    psDB            *dbh,               ///< Database handle
    1184312158    const psArray   *objects,           ///< Array of objects to delete
    1184412159    unsigned long long limit            ///< Maximum number of elements to delete
    1184512160);
    11846 /** Formats and prints an array of flatcorrExpRow objects
     12161/** Formats and prints an array of flatcorrChipLinkRow objects
    1184712162 *
    1184812163 * When mdcf is set the formated output is in psMetadataConfig
     
    1185212167 */
    1185312168
    11854 bool flatcorrExpPrintObjects(
     12169bool flatcorrChipLinkPrintObjects(
    1185512170    FILE            *stream,            ///< a stream
    11856     psArray         *objects,           ///< An array of flatcorrExpRow objects
     12171    psArray         *objects,           ///< An array of flatcorrChipLinkRow objects
    1185712172    bool            mdcf                ///< format as mdconfig or simple
    1185812173);
    11859 /** Formats and prints an flatcorrExpRow object
     12174/** Formats and prints an flatcorrChipLinkRow object
    1186012175 *
    1186112176 * When mdcf is set the formated output is in psMetadataConfig
     
    1186512180 */
    1186612181
    11867 bool flatcorrExpPrintObject(
     12182bool flatcorrChipLinkPrintObject(
    1186812183    FILE            *stream,            ///< a stream
    11869     flatcorrExpRow *object,    ///< an flatcorrExpRow object
     12184    flatcorrChipLinkRow *object,    ///< an flatcorrChipLinkRow object
     12185    bool            mdcf                ///< format as mdconfig or simple
     12186);
     12187/** flatcorrCamLinkRow data structure
     12188 *
     12189 * Structure for representing a single row of flatcorrCamLink table data.
     12190 */
     12191
     12192typedef struct {
     12193    psS64           corr_id;
     12194    psS64           chip_id;
     12195    psS64           cam_id;
     12196} flatcorrCamLinkRow;
     12197
     12198/** Creates a new flatcorrCamLinkRow object
     12199 *
     12200 *  @return A new flatcorrCamLinkRow object or NULL on failure.
     12201 */
     12202
     12203flatcorrCamLinkRow *flatcorrCamLinkRowAlloc(
     12204    psS64           corr_id,
     12205    psS64           chip_id,
     12206    psS64           cam_id
     12207);
     12208
     12209/** Creates a new flatcorrCamLink table
     12210 *
     12211 * @return true on success
     12212 */
     12213
     12214bool flatcorrCamLinkCreateTable(
     12215    psDB            *dbh                ///< Database handle
     12216);
     12217
     12218/** Deletes a flatcorrCamLink table
     12219 *
     12220 * @return true on success
     12221 */
     12222
     12223bool flatcorrCamLinkDropTable(
     12224    psDB            *dbh                ///< Database handle
     12225);
     12226
     12227/** Insert a single row into a table
     12228 *
     12229 * This function constructs and inserts a single row based on it's parameters.
     12230 *
     12231 * @return true on success
     12232 */
     12233
     12234bool flatcorrCamLinkInsert(
     12235    psDB            *dbh,               ///< Database handle
     12236    psS64           corr_id,
     12237    psS64           chip_id,
     12238    psS64           cam_id
     12239);
     12240
     12241/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     12242 *
     12243 * @return A The number of rows removed or a negative value on error
     12244 */
     12245
     12246long long flatcorrCamLinkDelete(
     12247    psDB            *dbh,               ///< Database handle
     12248    const psMetadata *where,            ///< Row match criteria
     12249    unsigned long long limit            ///< Maximum number of elements to delete
     12250);
     12251
     12252/** Insert a single flatcorrCamLinkRow object into a table
     12253 *
     12254 * This function constructs and inserts a single row based on it's parameters.
     12255 *
     12256 * @return true on success
     12257 */
     12258
     12259bool flatcorrCamLinkInsertObject(
     12260    psDB            *dbh,               ///< Database handle
     12261    flatcorrCamLinkRow *object             ///< flatcorrCamLinkRow object
     12262);
     12263
     12264/** Insert an array of flatcorrCamLinkRow object into a table
     12265 *
     12266 * This function constructs and inserts multiple rows based on it's parameters.
     12267 *
     12268 * @return true on success
     12269 */
     12270
     12271bool flatcorrCamLinkInsertObjects(
     12272    psDB            *dbh,               ///< Database handle
     12273    psArray         *objects            ///< array of flatcorrCamLinkRow objects
     12274);
     12275
     12276/** Insert data from a binary FITS table flatcorrCamLinkRow into the database
     12277 *
     12278 * This function expects a psFits object with a FITS table as the first
     12279 * extension.  The table must have at least one row of data in it, that is of
     12280 * the appropriate format (number of columns and their type).  All other
     12281 * extensions are ignored.
     12282 *
     12283 * @return true on success
     12284 */
     12285
     12286bool flatcorrCamLinkInsertFits(
     12287    psDB            *dbh,               ///< Database handle
     12288    const psFits    *fits               ///< psFits object
     12289);
     12290
     12291/** Selects up to limit from the database and returns them in a binary FITS table
     12292 *
     12293 * This function assumes an empty psFits object and will create a FITS table
     12294 * as the first extension.
     12295 *
     12296 *  See psDBSelectRows() for documentation on the format of where.
     12297 *
     12298 * @return true on success
     12299 */
     12300
     12301bool flatcorrCamLinkSelectRowsFits(
     12302    psDB            *dbh,               ///< Database handle
     12303    psFits          *fits,              ///< psFits object
     12304    const psMetadata *where,            ///< Row match criteria
     12305    unsigned long long limit            ///< Maximum number of elements to return
     12306);
     12307
     12308/** Convert a flatcorrCamLinkRow into an equivalent psMetadata
     12309 *
     12310 * @return A psMetadata pointer or NULL on error
     12311 */
     12312
     12313psMetadata *flatcorrCamLinkMetadataFromObject(
     12314    const flatcorrCamLinkRow *object             ///< fooRow to convert into a psMetadata
     12315);
     12316
     12317/** Convert a psMetadata into an equivalent fooRow
     12318 *
     12319 * @return A flatcorrCamLinkRow pointer or NULL on error
     12320 */
     12321
     12322flatcorrCamLinkRow *flatcorrCamLinkObjectFromMetadata(
     12323    psMetadata      *md                 ///< psMetadata to convert into a fooRow
     12324);
     12325/** Selects up to limit rows from the database and returns as flatcorrCamLinkRow objects in a psArray
     12326 *
     12327 *  See psDBSelectRows() for documentation on the format of where.
     12328 *
     12329 * @return A psArray pointer or NULL on error
     12330 */
     12331
     12332psArray *flatcorrCamLinkSelectRowObjects(
     12333    psDB            *dbh,               ///< Database handle
     12334    const psMetadata *where,            ///< Row match criteria
     12335    unsigned long long limit            ///< Maximum number of elements to return
     12336);
     12337/** Deletes a row from the database coresponding to an flatcorrCamLink
     12338 *
     12339 *  Note that a 'where' search psMetadata is constructed from each object and
     12340 *  used to find rows to delete.
     12341 *
     12342 * @return A The number of rows removed or a negative value on error
     12343 */
     12344
     12345bool flatcorrCamLinkDeleteObject(
     12346    psDB            *dbh,               ///< Database handle
     12347    const flatcorrCamLinkRow *object    ///< Object to delete
     12348);
     12349/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     12350 *
     12351 *  Note that a 'where' search psMetadata is constructed from each object and
     12352 *  used to find rows to delete.
     12353 *
     12354 * @return A The number of rows removed or a negative value on error
     12355 */
     12356
     12357long long flatcorrCamLinkDeleteRowObjects(
     12358    psDB            *dbh,               ///< Database handle
     12359    const psArray   *objects,           ///< Array of objects to delete
     12360    unsigned long long limit            ///< Maximum number of elements to delete
     12361);
     12362/** Formats and prints an array of flatcorrCamLinkRow objects
     12363 *
     12364 * When mdcf is set the formated output is in psMetadataConfig
     12365 * format, otherwise it is in a simple tabular format.
     12366 *
     12367 * @return true on success
     12368 */
     12369
     12370bool flatcorrCamLinkPrintObjects(
     12371    FILE            *stream,            ///< a stream
     12372    psArray         *objects,           ///< An array of flatcorrCamLinkRow objects
     12373    bool            mdcf                ///< format as mdconfig or simple
     12374);
     12375/** Formats and prints an flatcorrCamLinkRow object
     12376 *
     12377 * When mdcf is set the formated output is in psMetadataConfig
     12378 * format, otherwise it is in a simple tabular format.
     12379 *
     12380 * @return true on success
     12381 */
     12382
     12383bool flatcorrCamLinkPrintObject(
     12384    FILE            *stream,            ///< a stream
     12385    flatcorrCamLinkRow *object,    ///< an flatcorrCamLinkRow object
    1187012386    bool            mdcf                ///< format as mdconfig or simple
    1187112387);
     
    1207512591    FILE            *stream,            ///< a stream
    1207612592    pstampDataStoreRow *object,    ///< an pstampDataStoreRow object
     12593    bool            mdcf                ///< format as mdconfig or simple
     12594);
     12595/** pstampProjectRow data structure
     12596 *
     12597 * Structure for representing a single row of pstampProject table data.
     12598 */
     12599
     12600typedef struct {
     12601    psS64           proj_id;
     12602    char            *name;
     12603    char            *state;
     12604    char            *dbname;
     12605    char            *dvodb;
     12606    char            *camera;
     12607    char            *telescope;
     12608    bool            need_magic;
     12609} pstampProjectRow;
     12610
     12611/** Creates a new pstampProjectRow object
     12612 *
     12613 *  @return A new pstampProjectRow object or NULL on failure.
     12614 */
     12615
     12616pstampProjectRow *pstampProjectRowAlloc(
     12617    psS64           proj_id,
     12618    const char      *name,
     12619    const char      *state,
     12620    const char      *dbname,
     12621    const char      *dvodb,
     12622    const char      *camera,
     12623    const char      *telescope,
     12624    bool            need_magic
     12625);
     12626
     12627/** Creates a new pstampProject table
     12628 *
     12629 * @return true on success
     12630 */
     12631
     12632bool pstampProjectCreateTable(
     12633    psDB            *dbh                ///< Database handle
     12634);
     12635
     12636/** Deletes a pstampProject table
     12637 *
     12638 * @return true on success
     12639 */
     12640
     12641bool pstampProjectDropTable(
     12642    psDB            *dbh                ///< Database handle
     12643);
     12644
     12645/** Insert a single row into a table
     12646 *
     12647 * This function constructs and inserts a single row based on it's parameters.
     12648 *
     12649 * @return true on success
     12650 */
     12651
     12652bool pstampProjectInsert(
     12653    psDB            *dbh,               ///< Database handle
     12654    psS64           proj_id,
     12655    const char      *name,
     12656    const char      *state,
     12657    const char      *dbname,
     12658    const char      *dvodb,
     12659    const char      *camera,
     12660    const char      *telescope,
     12661    bool            need_magic
     12662);
     12663
     12664/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     12665 *
     12666 * @return A The number of rows removed or a negative value on error
     12667 */
     12668
     12669long long pstampProjectDelete(
     12670    psDB            *dbh,               ///< Database handle
     12671    const psMetadata *where,            ///< Row match criteria
     12672    unsigned long long limit            ///< Maximum number of elements to delete
     12673);
     12674
     12675/** Insert a single pstampProjectRow object into a table
     12676 *
     12677 * This function constructs and inserts a single row based on it's parameters.
     12678 *
     12679 * @return true on success
     12680 */
     12681
     12682bool pstampProjectInsertObject(
     12683    psDB            *dbh,               ///< Database handle
     12684    pstampProjectRow *object             ///< pstampProjectRow object
     12685);
     12686
     12687/** Insert an array of pstampProjectRow object into a table
     12688 *
     12689 * This function constructs and inserts multiple rows based on it's parameters.
     12690 *
     12691 * @return true on success
     12692 */
     12693
     12694bool pstampProjectInsertObjects(
     12695    psDB            *dbh,               ///< Database handle
     12696    psArray         *objects            ///< array of pstampProjectRow objects
     12697);
     12698
     12699/** Insert data from a binary FITS table pstampProjectRow into the database
     12700 *
     12701 * This function expects a psFits object with a FITS table as the first
     12702 * extension.  The table must have at least one row of data in it, that is of
     12703 * the appropriate format (number of columns and their type).  All other
     12704 * extensions are ignored.
     12705 *
     12706 * @return true on success
     12707 */
     12708
     12709bool pstampProjectInsertFits(
     12710    psDB            *dbh,               ///< Database handle
     12711    const psFits    *fits               ///< psFits object
     12712);
     12713
     12714/** Selects up to limit from the database and returns them in a binary FITS table
     12715 *
     12716 * This function assumes an empty psFits object and will create a FITS table
     12717 * as the first extension.
     12718 *
     12719 *  See psDBSelectRows() for documentation on the format of where.
     12720 *
     12721 * @return true on success
     12722 */
     12723
     12724bool pstampProjectSelectRowsFits(
     12725    psDB            *dbh,               ///< Database handle
     12726    psFits          *fits,              ///< psFits object
     12727    const psMetadata *where,            ///< Row match criteria
     12728    unsigned long long limit            ///< Maximum number of elements to return
     12729);
     12730
     12731/** Convert a pstampProjectRow into an equivalent psMetadata
     12732 *
     12733 * @return A psMetadata pointer or NULL on error
     12734 */
     12735
     12736psMetadata *pstampProjectMetadataFromObject(
     12737    const pstampProjectRow *object             ///< fooRow to convert into a psMetadata
     12738);
     12739
     12740/** Convert a psMetadata into an equivalent fooRow
     12741 *
     12742 * @return A pstampProjectRow pointer or NULL on error
     12743 */
     12744
     12745pstampProjectRow *pstampProjectObjectFromMetadata(
     12746    psMetadata      *md                 ///< psMetadata to convert into a fooRow
     12747);
     12748/** Selects up to limit rows from the database and returns as pstampProjectRow objects in a psArray
     12749 *
     12750 *  See psDBSelectRows() for documentation on the format of where.
     12751 *
     12752 * @return A psArray pointer or NULL on error
     12753 */
     12754
     12755psArray *pstampProjectSelectRowObjects(
     12756    psDB            *dbh,               ///< Database handle
     12757    const psMetadata *where,            ///< Row match criteria
     12758    unsigned long long limit            ///< Maximum number of elements to return
     12759);
     12760/** Deletes a row from the database coresponding to an pstampProject
     12761 *
     12762 *  Note that a 'where' search psMetadata is constructed from each object and
     12763 *  used to find rows to delete.
     12764 *
     12765 * @return A The number of rows removed or a negative value on error
     12766 */
     12767
     12768bool pstampProjectDeleteObject(
     12769    psDB            *dbh,               ///< Database handle
     12770    const pstampProjectRow *object    ///< Object to delete
     12771);
     12772/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     12773 *
     12774 *  Note that a 'where' search psMetadata is constructed from each object and
     12775 *  used to find rows to delete.
     12776 *
     12777 * @return A The number of rows removed or a negative value on error
     12778 */
     12779
     12780long long pstampProjectDeleteRowObjects(
     12781    psDB            *dbh,               ///< Database handle
     12782    const psArray   *objects,           ///< Array of objects to delete
     12783    unsigned long long limit            ///< Maximum number of elements to delete
     12784);
     12785/** Formats and prints an array of pstampProjectRow objects
     12786 *
     12787 * When mdcf is set the formated output is in psMetadataConfig
     12788 * format, otherwise it is in a simple tabular format.
     12789 *
     12790 * @return true on success
     12791 */
     12792
     12793bool pstampProjectPrintObjects(
     12794    FILE            *stream,            ///< a stream
     12795    psArray         *objects,           ///< An array of pstampProjectRow objects
     12796    bool            mdcf                ///< format as mdconfig or simple
     12797);
     12798/** Formats and prints an pstampProjectRow object
     12799 *
     12800 * When mdcf is set the formated output is in psMetadataConfig
     12801 * format, otherwise it is in a simple tabular format.
     12802 *
     12803 * @return true on success
     12804 */
     12805
     12806bool pstampProjectPrintObject(
     12807    FILE            *stream,            ///< a stream
     12808    pstampProjectRow *object,    ///< an pstampProjectRow object
    1207712809    bool            mdcf                ///< format as mdconfig or simple
    1207812810);
     
    1230613038    psS32           fault;
    1230713039    char            *uri;
     13040    psS64           exp_id;
    1230813041    char            *outputBase;
    1230913042    char            *args;
     
    1232313056    psS32           fault,
    1232413057    const char      *uri,
     13058    psS64           exp_id,
    1232513059    const char      *outputBase,
    1232613060    const char      *args
     
    1236113095    psS32           fault,
    1236213096    const char      *uri,
     13097    psS64           exp_id,
    1236313098    const char      *outputBase,
    1236413099    const char      *args
  • trunk/ippdb/tests/alloc.c

    r18796 r20205  
    306306        rawExpRow       *object;
    307307
    308         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, "a string", -16, "0001-01-01T00:00:00Z"    );
     308        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", "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, 32.32, 32.32, 32.32, 32.32, "a string", -16, "0001-01-01T00:00:00Z"    );
    309309
    310310        if (!object) {
     
    371371            exit(EXIT_FAILURE);
    372372        }
     373        if (strncmp(object->obs_mode, "a string", MAX_STRING_LENGTH)) {
     374            psFree(object);
     375            exit(EXIT_FAILURE);
     376        }
     377        if (strncmp(object->obs_group, "a string", MAX_STRING_LENGTH)) {
     378            psFree(object);
     379            exit(EXIT_FAILURE);
     380        }
    373381        if (!object->airmass == 32.32) {
    374382            psFree(object);
     
    527535            exit(EXIT_FAILURE);
    528536        }
    529         if (!object->solang == 32.32) {
     537        if (!object->sun_angle == 32.32) {
     538            psFree(object);
     539            exit(EXIT_FAILURE);
     540        }
     541        if (!object->sun_alt == 32.32) {
     542            psFree(object);
     543            exit(EXIT_FAILURE);
     544        }
     545        if (!object->moon_angle == 32.32) {
     546            psFree(object);
     547            exit(EXIT_FAILURE);
     548        }
     549        if (!object->moon_alt == 32.32) {
     550            psFree(object);
     551            exit(EXIT_FAILURE);
     552        }
     553        if (!object->moon_phase == 32.32) {
    530554            psFree(object);
    531555            exit(EXIT_FAILURE);
     
    549573        rawImfileRow    *object;
    550574
    551         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", "a string", -16, "0001-01-01T00:00:00Z"    );
     575        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", "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, 32.32, 32.32, 32.32, 32.32, "a string", -16, "0001-01-01T00:00:00Z"    );
    552576
    553577        if (!object) {
     
    602626            exit(EXIT_FAILURE);
    603627        }
     628        if (strncmp(object->obs_mode, "a string", MAX_STRING_LENGTH)) {
     629            psFree(object);
     630            exit(EXIT_FAILURE);
     631        }
     632        if (strncmp(object->obs_group, "a string", MAX_STRING_LENGTH)) {
     633            psFree(object);
     634            exit(EXIT_FAILURE);
     635        }
    604636        if (!object->airmass == 32.32) {
    605637            psFree(object);
     
    758790            exit(EXIT_FAILURE);
    759791        }
     792        if (!object->sun_angle == 32.32) {
     793            psFree(object);
     794            exit(EXIT_FAILURE);
     795        }
     796        if (!object->sun_alt == 32.32) {
     797            psFree(object);
     798            exit(EXIT_FAILURE);
     799        }
     800        if (!object->moon_angle == 32.32) {
     801            psFree(object);
     802            exit(EXIT_FAILURE);
     803        }
     804        if (!object->moon_alt == 32.32) {
     805            psFree(object);
     806            exit(EXIT_FAILURE);
     807        }
     808        if (!object->moon_phase == 32.32) {
     809            psFree(object);
     810            exit(EXIT_FAILURE);
     811        }
    760812        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    761813            psFree(object);
     
    858910        chipProcessedImfileRow *object;
    859911
    860         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    );
     912        object = chipProcessedImfileRowAlloc(-64, -64, "a string", "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, 32.32, 32.32, 32.32, 32.32, 32.32, 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, -32, "a string", -16    );
    861913
    862914        if (!object) {
     
    876928            exit(EXIT_FAILURE);
    877929        }
     930        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     931            psFree(object);
     932            exit(EXIT_FAILURE);
     933        }
    878934        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    879935            psFree(object);
     
    912968            exit(EXIT_FAILURE);
    913969        }
     970        if (!object->ap_resid == 32.32) {
     971            psFree(object);
     972            exit(EXIT_FAILURE);
     973        }
     974        if (!object->ap_resid_stdev == 32.32) {
     975            psFree(object);
     976            exit(EXIT_FAILURE);
     977        }
     978        if (!object->fwhm_major == 32.32) {
     979            psFree(object);
     980            exit(EXIT_FAILURE);
     981        }
     982        if (!object->fwhm_minor == 32.32) {
     983            psFree(object);
     984            exit(EXIT_FAILURE);
     985        }
     986        if (!object->iq_m2 == 32.32) {
     987            psFree(object);
     988            exit(EXIT_FAILURE);
     989        }
     990        if (!object->iq_m2_err == 32.32) {
     991            psFree(object);
     992            exit(EXIT_FAILURE);
     993        }
     994        if (!object->iq_m2_lq == 32.32) {
     995            psFree(object);
     996            exit(EXIT_FAILURE);
     997        }
     998        if (!object->iq_m2_uq == 32.32) {
     999            psFree(object);
     1000            exit(EXIT_FAILURE);
     1001        }
     1002        if (!object->iq_m2c == 32.32) {
     1003            psFree(object);
     1004            exit(EXIT_FAILURE);
     1005        }
     1006        if (!object->iq_m2c_err == 32.32) {
     1007            psFree(object);
     1008            exit(EXIT_FAILURE);
     1009        }
     1010        if (!object->iq_m2c_lq == 32.32) {
     1011            psFree(object);
     1012            exit(EXIT_FAILURE);
     1013        }
     1014        if (!object->iq_m2c_uq == 32.32) {
     1015            psFree(object);
     1016            exit(EXIT_FAILURE);
     1017        }
     1018        if (!object->iq_m2s == 32.32) {
     1019            psFree(object);
     1020            exit(EXIT_FAILURE);
     1021        }
     1022        if (!object->iq_m2s_err == 32.32) {
     1023            psFree(object);
     1024            exit(EXIT_FAILURE);
     1025        }
     1026        if (!object->iq_m2s_lq == 32.32) {
     1027            psFree(object);
     1028            exit(EXIT_FAILURE);
     1029        }
     1030        if (!object->iq_m2s_uq == 32.32) {
     1031            psFree(object);
     1032            exit(EXIT_FAILURE);
     1033        }
     1034        if (!object->iq_m3 == 32.32) {
     1035            psFree(object);
     1036            exit(EXIT_FAILURE);
     1037        }
     1038        if (!object->iq_m3_err == 32.32) {
     1039            psFree(object);
     1040            exit(EXIT_FAILURE);
     1041        }
     1042        if (!object->iq_m3_lq == 32.32) {
     1043            psFree(object);
     1044            exit(EXIT_FAILURE);
     1045        }
     1046        if (!object->iq_m3_uq == 32.32) {
     1047            psFree(object);
     1048            exit(EXIT_FAILURE);
     1049        }
     1050        if (!object->iq_m4 == 32.32) {
     1051            psFree(object);
     1052            exit(EXIT_FAILURE);
     1053        }
     1054        if (!object->iq_m4_err == 32.32) {
     1055            psFree(object);
     1056            exit(EXIT_FAILURE);
     1057        }
     1058        if (!object->iq_m4_lq == 32.32) {
     1059            psFree(object);
     1060            exit(EXIT_FAILURE);
     1061        }
     1062        if (!object->iq_m4_uq == 32.32) {
     1063            psFree(object);
     1064            exit(EXIT_FAILURE);
     1065        }
     1066        if (!object->dtime_detrend == 32.32) {
     1067            psFree(object);
     1068            exit(EXIT_FAILURE);
     1069        }
     1070        if (!object->dtime_photom == 32.32) {
     1071            psFree(object);
     1072            exit(EXIT_FAILURE);
     1073        }
     1074        if (!object->dtime_total == 32.32) {
     1075            psFree(object);
     1076            exit(EXIT_FAILURE);
     1077        }
     1078        if (!object->dtime_script == 32.32) {
     1079            psFree(object);
     1080            exit(EXIT_FAILURE);
     1081        }
     1082        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     1083            psFree(object);
     1084            exit(EXIT_FAILURE);
     1085        }
     1086        if (!object->n_stars == -32) {
     1087            psFree(object);
     1088            exit(EXIT_FAILURE);
     1089        }
     1090        if (!object->n_psfstars == -32) {
     1091            psFree(object);
     1092            exit(EXIT_FAILURE);
     1093        }
     1094        if (!object->n_iqstars == -32) {
     1095            psFree(object);
     1096            exit(EXIT_FAILURE);
     1097        }
     1098        if (!object->n_extended == -32) {
     1099            psFree(object);
     1100            exit(EXIT_FAILURE);
     1101        }
     1102        if (!object->n_cr == -32) {
     1103            psFree(object);
     1104            exit(EXIT_FAILURE);
     1105        }
     1106        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     1107            psFree(object);
     1108            exit(EXIT_FAILURE);
     1109        }
     1110        if (!object->fault == -16) {
     1111            psFree(object);
     1112            exit(EXIT_FAILURE);
     1113        }
     1114
     1115        psFree(object);
     1116    }
     1117
     1118    {
     1119        chipMaskRow     *object;
     1120
     1121        object = chipMaskRowAlloc("a string"    );
     1122
     1123        if (!object) {
     1124            exit(EXIT_FAILURE);
     1125        }
     1126
     1127        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     1128            psFree(object);
     1129            exit(EXIT_FAILURE);
     1130        }
     1131
     1132        psFree(object);
     1133    }
     1134
     1135    {
     1136        camRunRow       *object;
     1137
     1138        object = camRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string"    );
     1139
     1140        if (!object) {
     1141            exit(EXIT_FAILURE);
     1142        }
     1143
     1144        if (!object->cam_id == -64) {
     1145            psFree(object);
     1146            exit(EXIT_FAILURE);
     1147        }
     1148        if (!object->chip_id == -64) {
     1149            psFree(object);
     1150            exit(EXIT_FAILURE);
     1151        }
     1152        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     1153            psFree(object);
     1154            exit(EXIT_FAILURE);
     1155        }
     1156        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     1157            psFree(object);
     1158            exit(EXIT_FAILURE);
     1159        }
     1160        if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
     1161            psFree(object);
     1162            exit(EXIT_FAILURE);
     1163        }
     1164        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     1165            psFree(object);
     1166            exit(EXIT_FAILURE);
     1167        }
     1168        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     1169            psFree(object);
     1170            exit(EXIT_FAILURE);
     1171        }
     1172        if (strncmp(object->expgroup, "a string", MAX_STRING_LENGTH)) {
     1173            psFree(object);
     1174            exit(EXIT_FAILURE);
     1175        }
     1176        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     1177            psFree(object);
     1178            exit(EXIT_FAILURE);
     1179        }
     1180        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1181            psFree(object);
     1182            exit(EXIT_FAILURE);
     1183        }
     1184        if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
     1185            psFree(object);
     1186            exit(EXIT_FAILURE);
     1187        }
     1188
     1189        psFree(object);
     1190    }
     1191
     1192    {
     1193        camProcessedExpRow *object;
     1194
     1195        object = camProcessedExpRowAlloc(-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, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 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, -32, -32, "a string", -16    );
     1196
     1197        if (!object) {
     1198            exit(EXIT_FAILURE);
     1199        }
     1200
     1201        if (!object->cam_id == -64) {
     1202            psFree(object);
     1203            exit(EXIT_FAILURE);
     1204        }
     1205        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1206            psFree(object);
     1207            exit(EXIT_FAILURE);
     1208        }
     1209        if (!object->bg == 32.32) {
     1210            psFree(object);
     1211            exit(EXIT_FAILURE);
     1212        }
     1213        if (!object->bg_stdev == 32.32) {
     1214            psFree(object);
     1215            exit(EXIT_FAILURE);
     1216        }
     1217        if (!object->bg_mean_stdev == 32.32) {
     1218            psFree(object);
     1219            exit(EXIT_FAILURE);
     1220        }
     1221        if (!object->bias == 32.32) {
     1222            psFree(object);
     1223            exit(EXIT_FAILURE);
     1224        }
     1225        if (!object->bias_stdev == 32.32) {
     1226            psFree(object);
     1227            exit(EXIT_FAILURE);
     1228        }
     1229        if (!object->fringe_0 == 32.32) {
     1230            psFree(object);
     1231            exit(EXIT_FAILURE);
     1232        }
     1233        if (!object->fringe_1 == 32.32) {
     1234            psFree(object);
     1235            exit(EXIT_FAILURE);
     1236        }
     1237        if (!object->fringe_2 == 32.32) {
     1238            psFree(object);
     1239            exit(EXIT_FAILURE);
     1240        }
    9141241        if (!object->sigma_ra == 32.32) {
    9151242            psFree(object);
     
    9441271            exit(EXIT_FAILURE);
    9451272        }
    946         if (!object->dtime_detrend == 32.32) {
    947             psFree(object);
    948             exit(EXIT_FAILURE);
    949         }
    950         if (!object->dtime_photom == 32.32) {
     1273        if (!object->iq_m2 == 32.32) {
     1274            psFree(object);
     1275            exit(EXIT_FAILURE);
     1276        }
     1277        if (!object->iq_m2_err == 32.32) {
     1278            psFree(object);
     1279            exit(EXIT_FAILURE);
     1280        }
     1281        if (!object->iq_m2_lq == 32.32) {
     1282            psFree(object);
     1283            exit(EXIT_FAILURE);
     1284        }
     1285        if (!object->iq_m2_uq == 32.32) {
     1286            psFree(object);
     1287            exit(EXIT_FAILURE);
     1288        }
     1289        if (!object->iq_m2c == 32.32) {
     1290            psFree(object);
     1291            exit(EXIT_FAILURE);
     1292        }
     1293        if (!object->iq_m2c_err == 32.32) {
     1294            psFree(object);
     1295            exit(EXIT_FAILURE);
     1296        }
     1297        if (!object->iq_m2c_lq == 32.32) {
     1298            psFree(object);
     1299            exit(EXIT_FAILURE);
     1300        }
     1301        if (!object->iq_m2c_uq == 32.32) {
     1302            psFree(object);
     1303            exit(EXIT_FAILURE);
     1304        }
     1305        if (!object->iq_m2s == 32.32) {
     1306            psFree(object);
     1307            exit(EXIT_FAILURE);
     1308        }
     1309        if (!object->iq_m2s_err == 32.32) {
     1310            psFree(object);
     1311            exit(EXIT_FAILURE);
     1312        }
     1313        if (!object->iq_m2s_lq == 32.32) {
     1314            psFree(object);
     1315            exit(EXIT_FAILURE);
     1316        }
     1317        if (!object->iq_m2s_uq == 32.32) {
     1318            psFree(object);
     1319            exit(EXIT_FAILURE);
     1320        }
     1321        if (!object->iq_m3 == 32.32) {
     1322            psFree(object);
     1323            exit(EXIT_FAILURE);
     1324        }
     1325        if (!object->iq_m3_err == 32.32) {
     1326            psFree(object);
     1327            exit(EXIT_FAILURE);
     1328        }
     1329        if (!object->iq_m3_lq == 32.32) {
     1330            psFree(object);
     1331            exit(EXIT_FAILURE);
     1332        }
     1333        if (!object->iq_m3_uq == 32.32) {
     1334            psFree(object);
     1335            exit(EXIT_FAILURE);
     1336        }
     1337        if (!object->iq_m4 == 32.32) {
     1338            psFree(object);
     1339            exit(EXIT_FAILURE);
     1340        }
     1341        if (!object->iq_m4_err == 32.32) {
     1342            psFree(object);
     1343            exit(EXIT_FAILURE);
     1344        }
     1345        if (!object->iq_m4_lq == 32.32) {
     1346            psFree(object);
     1347            exit(EXIT_FAILURE);
     1348        }
     1349        if (!object->iq_m4_uq == 32.32) {
     1350            psFree(object);
     1351            exit(EXIT_FAILURE);
     1352        }
     1353        if (!object->dtime_script == 32.32) {
    9511354            psFree(object);
    9521355            exit(EXIT_FAILURE);
     
    9561359            exit(EXIT_FAILURE);
    9571360        }
     1361        if (!object->dtime_addstar == 32.32) {
     1362            psFree(object);
     1363            exit(EXIT_FAILURE);
     1364        }
    9581365        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    9591366            psFree(object);
     
    9641371            exit(EXIT_FAILURE);
    9651372        }
     1373        if (!object->n_psfstars == -32) {
     1374            psFree(object);
     1375            exit(EXIT_FAILURE);
     1376        }
     1377        if (!object->n_iqstars == -32) {
     1378            psFree(object);
     1379            exit(EXIT_FAILURE);
     1380        }
    9661381        if (!object->n_extended == -32) {
    9671382            psFree(object);
     
    9891404
    9901405    {
    991         chipMaskRow     *object;
    992 
    993         object = chipMaskRowAlloc("a string"    );
     1406        camMaskRow      *object;
     1407
     1408        object = camMaskRowAlloc("a string"    );
    9941409
    9951410        if (!object) {
     
    10061421
    10071422    {
    1008         camRunRow       *object;
    1009 
    1010         object = camRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string"    );
    1011 
    1012         if (!object) {
    1013             exit(EXIT_FAILURE);
    1014         }
    1015 
     1423        fakeRunRow      *object;
     1424
     1425        object = fakeRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z"    );
     1426
     1427        if (!object) {
     1428            exit(EXIT_FAILURE);
     1429        }
     1430
     1431        if (!object->fake_id == -64) {
     1432            psFree(object);
     1433            exit(EXIT_FAILURE);
     1434        }
    10161435        if (!object->cam_id == -64) {
    10171436            psFree(object);
    10181437            exit(EXIT_FAILURE);
    10191438        }
     1439        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     1440            psFree(object);
     1441            exit(EXIT_FAILURE);
     1442        }
     1443        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     1444            psFree(object);
     1445            exit(EXIT_FAILURE);
     1446        }
     1447        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     1448            psFree(object);
     1449            exit(EXIT_FAILURE);
     1450        }
     1451        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     1452            psFree(object);
     1453            exit(EXIT_FAILURE);
     1454        }
     1455        if (strncmp(object->expgroup, "a string", MAX_STRING_LENGTH)) {
     1456            psFree(object);
     1457            exit(EXIT_FAILURE);
     1458        }
     1459        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     1460            psFree(object);
     1461            exit(EXIT_FAILURE);
     1462        }
     1463        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1464            psFree(object);
     1465            exit(EXIT_FAILURE);
     1466        }
     1467        if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
     1468            psFree(object);
     1469            exit(EXIT_FAILURE);
     1470        }
     1471            psFree(object);
     1472            exit(EXIT_FAILURE);
     1473        }
     1474
     1475        psFree(object);
     1476    }
     1477
     1478    {
     1479        fakeProcessedImfileRow *object;
     1480
     1481        object = fakeProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, 32.32, "a string", "a string", "a string", -16, "0001-01-01T00:00:00Z"    );
     1482
     1483        if (!object) {
     1484            exit(EXIT_FAILURE);
     1485        }
     1486
     1487        if (!object->fake_id == -64) {
     1488            psFree(object);
     1489            exit(EXIT_FAILURE);
     1490        }
     1491        if (!object->exp_id == -64) {
     1492            psFree(object);
     1493            exit(EXIT_FAILURE);
     1494        }
     1495        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1496            psFree(object);
     1497            exit(EXIT_FAILURE);
     1498        }
     1499        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1500            psFree(object);
     1501            exit(EXIT_FAILURE);
     1502        }
     1503        if (!object->dtime_fake == 32.32) {
     1504            psFree(object);
     1505            exit(EXIT_FAILURE);
     1506        }
     1507        if (!object->dtime_script == 32.32) {
     1508            psFree(object);
     1509            exit(EXIT_FAILURE);
     1510        }
     1511        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     1512            psFree(object);
     1513            exit(EXIT_FAILURE);
     1514        }
     1515        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     1516            psFree(object);
     1517            exit(EXIT_FAILURE);
     1518        }
     1519        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     1520            psFree(object);
     1521            exit(EXIT_FAILURE);
     1522        }
     1523        if (!object->fault == -16) {
     1524            psFree(object);
     1525            exit(EXIT_FAILURE);
     1526        }
     1527            psFree(object);
     1528            exit(EXIT_FAILURE);
     1529        }
     1530
     1531        psFree(object);
     1532    }
     1533
     1534    {
     1535        fakeMaskRow     *object;
     1536
     1537        object = fakeMaskRowAlloc("a string"    );
     1538
     1539        if (!object) {
     1540            exit(EXIT_FAILURE);
     1541        }
     1542
     1543        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     1544            psFree(object);
     1545            exit(EXIT_FAILURE);
     1546        }
     1547
     1548        psFree(object);
     1549    }
     1550
     1551    {
     1552        warpRunRow      *object;
     1553
     1554        object = warpRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", true    );
     1555
     1556        if (!object) {
     1557            exit(EXIT_FAILURE);
     1558        }
     1559
     1560        if (!object->warp_id == -64) {
     1561            psFree(object);
     1562            exit(EXIT_FAILURE);
     1563        }
     1564        if (!object->fake_id == -64) {
     1565            psFree(object);
     1566            exit(EXIT_FAILURE);
     1567        }
     1568        if (strncmp(object->mode, "a string", MAX_STRING_LENGTH)) {
     1569            psFree(object);
     1570            exit(EXIT_FAILURE);
     1571        }
     1572        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     1573            psFree(object);
     1574            exit(EXIT_FAILURE);
     1575        }
     1576        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     1577            psFree(object);
     1578            exit(EXIT_FAILURE);
     1579        }
     1580        if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
     1581            psFree(object);
     1582            exit(EXIT_FAILURE);
     1583        }
     1584        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     1585            psFree(object);
     1586            exit(EXIT_FAILURE);
     1587        }
     1588        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     1589            psFree(object);
     1590            exit(EXIT_FAILURE);
     1591        }
     1592        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1593            psFree(object);
     1594            exit(EXIT_FAILURE);
     1595        }
     1596        if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
     1597            psFree(object);
     1598            exit(EXIT_FAILURE);
     1599        }
     1600            psFree(object);
     1601            exit(EXIT_FAILURE);
     1602        }
     1603        if (!object->magiced == true) {
     1604            psFree(object);
     1605            exit(EXIT_FAILURE);
     1606        }
     1607
     1608        psFree(object);
     1609    }
     1610
     1611    {
     1612        warpSkyCellMapRow *object;
     1613
     1614        object = warpSkyCellMapRowAlloc(-64, "a string", "a string", "a string", -16    );
     1615
     1616        if (!object) {
     1617            exit(EXIT_FAILURE);
     1618        }
     1619
     1620        if (!object->warp_id == -64) {
     1621            psFree(object);
     1622            exit(EXIT_FAILURE);
     1623        }
     1624        if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
     1625            psFree(object);
     1626            exit(EXIT_FAILURE);
     1627        }
     1628        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1629            psFree(object);
     1630            exit(EXIT_FAILURE);
     1631        }
     1632        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1633            psFree(object);
     1634            exit(EXIT_FAILURE);
     1635        }
     1636        if (!object->fault == -16) {
     1637            psFree(object);
     1638            exit(EXIT_FAILURE);
     1639        }
     1640
     1641        psFree(object);
     1642    }
     1643
     1644    {
     1645        warpSkyfileRow  *object;
     1646
     1647        object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, 32.32, "a string", 32.32, -32, -32, -32, -32, true, -16    );
     1648
     1649        if (!object) {
     1650            exit(EXIT_FAILURE);
     1651        }
     1652
     1653        if (!object->warp_id == -64) {
     1654            psFree(object);
     1655            exit(EXIT_FAILURE);
     1656        }
     1657        if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
     1658            psFree(object);
     1659            exit(EXIT_FAILURE);
     1660        }
     1661        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1662            psFree(object);
     1663            exit(EXIT_FAILURE);
     1664        }
     1665        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1666            psFree(object);
     1667            exit(EXIT_FAILURE);
     1668        }
     1669        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     1670            psFree(object);
     1671            exit(EXIT_FAILURE);
     1672        }
     1673        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     1674            psFree(object);
     1675            exit(EXIT_FAILURE);
     1676        }
     1677        if (!object->bg == 64.64) {
     1678            psFree(object);
     1679            exit(EXIT_FAILURE);
     1680        }
     1681        if (!object->bg_stdev == 64.64) {
     1682            psFree(object);
     1683            exit(EXIT_FAILURE);
     1684        }
     1685        if (!object->dtime_warp == 32.32) {
     1686            psFree(object);
     1687            exit(EXIT_FAILURE);
     1688        }
     1689        if (!object->dtime_script == 32.32) {
     1690            psFree(object);
     1691            exit(EXIT_FAILURE);
     1692        }
     1693        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     1694            psFree(object);
     1695            exit(EXIT_FAILURE);
     1696        }
     1697        if (!object->good_frac == 32.32) {
     1698            psFree(object);
     1699            exit(EXIT_FAILURE);
     1700        }
     1701        if (!object->xmin == -32) {
     1702            psFree(object);
     1703            exit(EXIT_FAILURE);
     1704        }
     1705        if (!object->xmax == -32) {
     1706            psFree(object);
     1707            exit(EXIT_FAILURE);
     1708        }
     1709        if (!object->ymin == -32) {
     1710            psFree(object);
     1711            exit(EXIT_FAILURE);
     1712        }
     1713        if (!object->ymax == -32) {
     1714            psFree(object);
     1715            exit(EXIT_FAILURE);
     1716        }
     1717        if (!object->ignored == true) {
     1718            psFree(object);
     1719            exit(EXIT_FAILURE);
     1720        }
     1721        if (!object->fault == -16) {
     1722            psFree(object);
     1723            exit(EXIT_FAILURE);
     1724        }
     1725
     1726        psFree(object);
     1727    }
     1728
     1729    {
     1730        warpMaskRow     *object;
     1731
     1732        object = warpMaskRowAlloc("a string"    );
     1733
     1734        if (!object) {
     1735            exit(EXIT_FAILURE);
     1736        }
     1737
     1738        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     1739            psFree(object);
     1740            exit(EXIT_FAILURE);
     1741        }
     1742
     1743        psFree(object);
     1744    }
     1745
     1746    {
     1747        diffRunRow      *object;
     1748
     1749        object = diffRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string"    );
     1750
     1751        if (!object) {
     1752            exit(EXIT_FAILURE);
     1753        }
     1754
     1755        if (!object->diff_id == -64) {
     1756            psFree(object);
     1757            exit(EXIT_FAILURE);
     1758        }
     1759        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     1760            psFree(object);
     1761            exit(EXIT_FAILURE);
     1762        }
     1763        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     1764            psFree(object);
     1765            exit(EXIT_FAILURE);
     1766        }
     1767        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     1768            psFree(object);
     1769            exit(EXIT_FAILURE);
     1770        }
     1771        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     1772            psFree(object);
     1773            exit(EXIT_FAILURE);
     1774        }
     1775        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     1776            psFree(object);
     1777            exit(EXIT_FAILURE);
     1778        }
     1779            psFree(object);
     1780            exit(EXIT_FAILURE);
     1781        }
     1782        if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
     1783            psFree(object);
     1784            exit(EXIT_FAILURE);
     1785        }
     1786        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1787            psFree(object);
     1788            exit(EXIT_FAILURE);
     1789        }
     1790
     1791        psFree(object);
     1792    }
     1793
     1794    {
     1795        diffInputSkyfileRow *object;
     1796
     1797        object = diffInputSkyfileRowAlloc(-64, true, -64, -64, "a string", "a string", "a string"    );
     1798
     1799        if (!object) {
     1800            exit(EXIT_FAILURE);
     1801        }
     1802
     1803        if (!object->diff_id == -64) {
     1804            psFree(object);
     1805            exit(EXIT_FAILURE);
     1806        }
     1807        if (!object->template == true) {
     1808            psFree(object);
     1809            exit(EXIT_FAILURE);
     1810        }
     1811        if (!object->stack_id == -64) {
     1812            psFree(object);
     1813            exit(EXIT_FAILURE);
     1814        }
     1815        if (!object->warp_id == -64) {
     1816            psFree(object);
     1817            exit(EXIT_FAILURE);
     1818        }
     1819        if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
     1820            psFree(object);
     1821            exit(EXIT_FAILURE);
     1822        }
     1823        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1824            psFree(object);
     1825            exit(EXIT_FAILURE);
     1826        }
     1827        if (strncmp(object->kind, "a string", MAX_STRING_LENGTH)) {
     1828            psFree(object);
     1829            exit(EXIT_FAILURE);
     1830        }
     1831
     1832        psFree(object);
     1833    }
     1834
     1835    {
     1836        diffSkyfileRow  *object;
     1837
     1838        object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 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, "a string", 32.32, -16    );
     1839
     1840        if (!object) {
     1841            exit(EXIT_FAILURE);
     1842        }
     1843
     1844        if (!object->diff_id == -64) {
     1845            psFree(object);
     1846            exit(EXIT_FAILURE);
     1847        }
     1848        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1849            psFree(object);
     1850            exit(EXIT_FAILURE);
     1851        }
     1852        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     1853            psFree(object);
     1854            exit(EXIT_FAILURE);
     1855        }
     1856        if (!object->bg == 64.64) {
     1857            psFree(object);
     1858            exit(EXIT_FAILURE);
     1859        }
     1860        if (!object->bg_stdev == 64.64) {
     1861            psFree(object);
     1862            exit(EXIT_FAILURE);
     1863        }
     1864        if (!object->stamps_num == -32) {
     1865            psFree(object);
     1866            exit(EXIT_FAILURE);
     1867        }
     1868        if (!object->stamps_mean == 32.32) {
     1869            psFree(object);
     1870            exit(EXIT_FAILURE);
     1871        }
     1872        if (!object->stamps_rms == 32.32) {
     1873            psFree(object);
     1874            exit(EXIT_FAILURE);
     1875        }
     1876        if (!object->norm == 32.32) {
     1877            psFree(object);
     1878            exit(EXIT_FAILURE);
     1879        }
     1880        if (!object->bg_diff == 32.32) {
     1881            psFree(object);
     1882            exit(EXIT_FAILURE);
     1883        }
     1884        if (!object->kernel_x == 32.32) {
     1885            psFree(object);
     1886            exit(EXIT_FAILURE);
     1887        }
     1888        if (!object->kernel_y == 32.32) {
     1889            psFree(object);
     1890            exit(EXIT_FAILURE);
     1891        }
     1892        if (!object->kernel_xx == 32.32) {
     1893            psFree(object);
     1894            exit(EXIT_FAILURE);
     1895        }
     1896        if (!object->kernel_xy == 32.32) {
     1897            psFree(object);
     1898            exit(EXIT_FAILURE);
     1899        }
     1900        if (!object->kernel_yy == 32.32) {
     1901            psFree(object);
     1902            exit(EXIT_FAILURE);
     1903        }
     1904        if (!object->sources == -32) {
     1905            psFree(object);
     1906            exit(EXIT_FAILURE);
     1907        }
     1908        if (!object->dtime_diff == 32.32) {
     1909            psFree(object);
     1910            exit(EXIT_FAILURE);
     1911        }
     1912        if (!object->dtime_match == 32.32) {
     1913            psFree(object);
     1914            exit(EXIT_FAILURE);
     1915        }
     1916        if (!object->dtime_phot == 32.32) {
     1917            psFree(object);
     1918            exit(EXIT_FAILURE);
     1919        }
     1920        if (!object->dtime_script == 32.32) {
     1921            psFree(object);
     1922            exit(EXIT_FAILURE);
     1923        }
     1924        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     1925            psFree(object);
     1926            exit(EXIT_FAILURE);
     1927        }
     1928        if (!object->good_frac == 32.32) {
     1929            psFree(object);
     1930            exit(EXIT_FAILURE);
     1931        }
     1932        if (!object->fault == -16) {
     1933            psFree(object);
     1934            exit(EXIT_FAILURE);
     1935        }
     1936
     1937        psFree(object);
     1938    }
     1939
     1940    {
     1941        stackRunRow     *object;
     1942
     1943        object = stackRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string"    );
     1944
     1945        if (!object) {
     1946            exit(EXIT_FAILURE);
     1947        }
     1948
     1949        if (!object->stack_id == -64) {
     1950            psFree(object);
     1951            exit(EXIT_FAILURE);
     1952        }
     1953        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     1954            psFree(object);
     1955            exit(EXIT_FAILURE);
     1956        }
     1957        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     1958            psFree(object);
     1959            exit(EXIT_FAILURE);
     1960        }
     1961        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     1962            psFree(object);
     1963            exit(EXIT_FAILURE);
     1964        }
     1965        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     1966            psFree(object);
     1967            exit(EXIT_FAILURE);
     1968        }
     1969        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     1970            psFree(object);
     1971            exit(EXIT_FAILURE);
     1972        }
     1973            psFree(object);
     1974            exit(EXIT_FAILURE);
     1975        }
     1976        if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
     1977            psFree(object);
     1978            exit(EXIT_FAILURE);
     1979        }
     1980        if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
     1981            psFree(object);
     1982            exit(EXIT_FAILURE);
     1983        }
     1984        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
     1985            psFree(object);
     1986            exit(EXIT_FAILURE);
     1987        }
     1988
     1989        psFree(object);
     1990    }
     1991
     1992    {
     1993        stackInputSkyfileRow *object;
     1994
     1995        object = stackInputSkyfileRowAlloc(-64, -64    );
     1996
     1997        if (!object) {
     1998            exit(EXIT_FAILURE);
     1999        }
     2000
     2001        if (!object->stack_id == -64) {
     2002            psFree(object);
     2003            exit(EXIT_FAILURE);
     2004        }
     2005        if (!object->warp_id == -64) {
     2006            psFree(object);
     2007            exit(EXIT_FAILURE);
     2008        }
     2009
     2010        psFree(object);
     2011    }
     2012
     2013    {
     2014        stackSumSkyfileRow *object;
     2015
     2016        object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 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, "a string", 32.32, -16    );
     2017
     2018        if (!object) {
     2019            exit(EXIT_FAILURE);
     2020        }
     2021
     2022        if (!object->stack_id == -64) {
     2023            psFree(object);
     2024            exit(EXIT_FAILURE);
     2025        }
     2026        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2027            psFree(object);
     2028            exit(EXIT_FAILURE);
     2029        }
     2030        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2031            psFree(object);
     2032            exit(EXIT_FAILURE);
     2033        }
     2034        if (!object->bg == 64.64) {
     2035            psFree(object);
     2036            exit(EXIT_FAILURE);
     2037        }
     2038        if (!object->bg_stdev == 64.64) {
     2039            psFree(object);
     2040            exit(EXIT_FAILURE);
     2041        }
     2042        if (!object->dtime_stack == 32.32) {
     2043            psFree(object);
     2044            exit(EXIT_FAILURE);
     2045        }
     2046        if (!object->dtime_match_mean == 32.32) {
     2047            psFree(object);
     2048            exit(EXIT_FAILURE);
     2049        }
     2050        if (!object->dtime_match_stdev == 32.32) {
     2051            psFree(object);
     2052            exit(EXIT_FAILURE);
     2053        }
     2054        if (!object->dtime_initial == 32.32) {
     2055            psFree(object);
     2056            exit(EXIT_FAILURE);
     2057        }
     2058        if (!object->dtime_reject == 32.32) {
     2059            psFree(object);
     2060            exit(EXIT_FAILURE);
     2061        }
     2062        if (!object->dtime_final == 32.32) {
     2063            psFree(object);
     2064            exit(EXIT_FAILURE);
     2065        }
     2066        if (!object->dtime_phot == 32.32) {
     2067            psFree(object);
     2068            exit(EXIT_FAILURE);
     2069        }
     2070        if (!object->dtime_script == 32.32) {
     2071            psFree(object);
     2072            exit(EXIT_FAILURE);
     2073        }
     2074        if (!object->match_mean == 32.32) {
     2075            psFree(object);
     2076            exit(EXIT_FAILURE);
     2077        }
     2078        if (!object->match_stdev == 32.32) {
     2079            psFree(object);
     2080            exit(EXIT_FAILURE);
     2081        }
     2082        if (!object->match_rms == 32.32) {
     2083            psFree(object);
     2084            exit(EXIT_FAILURE);
     2085        }
     2086        if (!object->stamps_mean == 32.32) {
     2087            psFree(object);
     2088            exit(EXIT_FAILURE);
     2089        }
     2090        if (!object->stamps_stdev == 32.32) {
     2091            psFree(object);
     2092            exit(EXIT_FAILURE);
     2093        }
     2094        if (!object->stamps_min == -32) {
     2095            psFree(object);
     2096            exit(EXIT_FAILURE);
     2097        }
     2098        if (!object->reject_images == -32) {
     2099            psFree(object);
     2100            exit(EXIT_FAILURE);
     2101        }
     2102        if (!object->reject_pix_mean == 32.32) {
     2103            psFree(object);
     2104            exit(EXIT_FAILURE);
     2105        }
     2106        if (!object->reject_pix_stdev == 32.32) {
     2107            psFree(object);
     2108            exit(EXIT_FAILURE);
     2109        }
     2110        if (!object->sources == -32) {
     2111            psFree(object);
     2112            exit(EXIT_FAILURE);
     2113        }
     2114        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     2115            psFree(object);
     2116            exit(EXIT_FAILURE);
     2117        }
     2118        if (!object->good_frac == 32.32) {
     2119            psFree(object);
     2120            exit(EXIT_FAILURE);
     2121        }
     2122        if (!object->fault == -16) {
     2123            psFree(object);
     2124            exit(EXIT_FAILURE);
     2125        }
     2126
     2127        psFree(object);
     2128    }
     2129
     2130    {
     2131        detRunRow       *object;
     2132
     2133        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", -64, -32    );
     2134
     2135        if (!object) {
     2136            exit(EXIT_FAILURE);
     2137        }
     2138
     2139        if (!object->det_id == -64) {
     2140            psFree(object);
     2141            exit(EXIT_FAILURE);
     2142        }
     2143        if (!object->iteration == -32) {
     2144            psFree(object);
     2145            exit(EXIT_FAILURE);
     2146        }
     2147        if (strncmp(object->det_type, "a string", MAX_STRING_LENGTH)) {
     2148            psFree(object);
     2149            exit(EXIT_FAILURE);
     2150        }
     2151        if (strncmp(object->mode, "a string", MAX_STRING_LENGTH)) {
     2152            psFree(object);
     2153            exit(EXIT_FAILURE);
     2154        }
     2155        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     2156            psFree(object);
     2157            exit(EXIT_FAILURE);
     2158        }
     2159        if (strncmp(object->filelevel, "a string", MAX_STRING_LENGTH)) {
     2160            psFree(object);
     2161            exit(EXIT_FAILURE);
     2162        }
     2163        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     2164            psFree(object);
     2165            exit(EXIT_FAILURE);
     2166        }
     2167        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
     2168            psFree(object);
     2169            exit(EXIT_FAILURE);
     2170        }
     2171        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
     2172            psFree(object);
     2173            exit(EXIT_FAILURE);
     2174        }
     2175        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
     2176            psFree(object);
     2177            exit(EXIT_FAILURE);
     2178        }
     2179        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     2180            psFree(object);
     2181            exit(EXIT_FAILURE);
     2182        }
     2183        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
     2184            psFree(object);
     2185            exit(EXIT_FAILURE);
     2186        }
     2187        if (!object->airmass_min == 32.32) {
     2188            psFree(object);
     2189            exit(EXIT_FAILURE);
     2190        }
     2191        if (!object->airmass_max == 32.32) {
     2192            psFree(object);
     2193            exit(EXIT_FAILURE);
     2194        }
     2195        if (!object->exp_time_min == 32.32) {
     2196            psFree(object);
     2197            exit(EXIT_FAILURE);
     2198        }
     2199        if (!object->exp_time_max == 32.32) {
     2200            psFree(object);
     2201            exit(EXIT_FAILURE);
     2202        }
     2203        if (!object->ccd_temp_min == 32.32) {
     2204            psFree(object);
     2205            exit(EXIT_FAILURE);
     2206        }
     2207        if (!object->ccd_temp_max == 32.32) {
     2208            psFree(object);
     2209            exit(EXIT_FAILURE);
     2210        }
     2211        if (!object->posang_min == 64.64) {
     2212            psFree(object);
     2213            exit(EXIT_FAILURE);
     2214        }
     2215        if (!object->posang_max == 64.64) {
     2216            psFree(object);
     2217            exit(EXIT_FAILURE);
     2218        }
     2219            psFree(object);
     2220            exit(EXIT_FAILURE);
     2221        }
     2222            psFree(object);
     2223            exit(EXIT_FAILURE);
     2224        }
     2225            psFree(object);
     2226            exit(EXIT_FAILURE);
     2227        }
     2228            psFree(object);
     2229            exit(EXIT_FAILURE);
     2230        }
     2231            psFree(object);
     2232            exit(EXIT_FAILURE);
     2233        }
     2234        if (!object->solang_min == 32.32) {
     2235            psFree(object);
     2236            exit(EXIT_FAILURE);
     2237        }
     2238        if (!object->solang_max == 32.32) {
     2239            psFree(object);
     2240            exit(EXIT_FAILURE);
     2241        }
     2242        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     2243            psFree(object);
     2244            exit(EXIT_FAILURE);
     2245        }
     2246        if (!object->ref_det_id == -64) {
     2247            psFree(object);
     2248            exit(EXIT_FAILURE);
     2249        }
     2250        if (!object->ref_iter == -32) {
     2251            psFree(object);
     2252            exit(EXIT_FAILURE);
     2253        }
     2254
     2255        psFree(object);
     2256    }
     2257
     2258    {
     2259        detInputExpRow  *object;
     2260
     2261        object = detInputExpRowAlloc(-64, -32, -64, true    );
     2262
     2263        if (!object) {
     2264            exit(EXIT_FAILURE);
     2265        }
     2266
     2267        if (!object->det_id == -64) {
     2268            psFree(object);
     2269            exit(EXIT_FAILURE);
     2270        }
     2271        if (!object->iteration == -32) {
     2272            psFree(object);
     2273            exit(EXIT_FAILURE);
     2274        }
     2275        if (!object->exp_id == -64) {
     2276            psFree(object);
     2277            exit(EXIT_FAILURE);
     2278        }
     2279        if (!object->include == true) {
     2280            psFree(object);
     2281            exit(EXIT_FAILURE);
     2282        }
     2283
     2284        psFree(object);
     2285    }
     2286
     2287    {
     2288        detProcessedImfileRow *object;
     2289
     2290        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", "a string", -16    );
     2291
     2292        if (!object) {
     2293            exit(EXIT_FAILURE);
     2294        }
     2295
     2296        if (!object->det_id == -64) {
     2297            psFree(object);
     2298            exit(EXIT_FAILURE);
     2299        }
     2300        if (!object->exp_id == -64) {
     2301            psFree(object);
     2302            exit(EXIT_FAILURE);
     2303        }
     2304        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2305            psFree(object);
     2306            exit(EXIT_FAILURE);
     2307        }
     2308        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2309            psFree(object);
     2310            exit(EXIT_FAILURE);
     2311        }
     2312        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2313            psFree(object);
     2314            exit(EXIT_FAILURE);
     2315        }
     2316        if (!object->bg == 64.64) {
     2317            psFree(object);
     2318            exit(EXIT_FAILURE);
     2319        }
     2320        if (!object->bg_stdev == 64.64) {
     2321            psFree(object);
     2322            exit(EXIT_FAILURE);
     2323        }
     2324        if (!object->bg_mean_stdev == 64.64) {
     2325            psFree(object);
     2326            exit(EXIT_FAILURE);
     2327        }
     2328        if (!object->fringe_0 == 64.64) {
     2329            psFree(object);
     2330            exit(EXIT_FAILURE);
     2331        }
     2332        if (!object->fringe_1 == 64.64) {
     2333            psFree(object);
     2334            exit(EXIT_FAILURE);
     2335        }
     2336        if (!object->fringe_2 == 64.64) {
     2337            psFree(object);
     2338            exit(EXIT_FAILURE);
     2339        }
     2340        if (!object->user_1 == 64.64) {
     2341            psFree(object);
     2342            exit(EXIT_FAILURE);
     2343        }
     2344        if (!object->user_2 == 64.64) {
     2345            psFree(object);
     2346            exit(EXIT_FAILURE);
     2347        }
     2348        if (!object->user_3 == 64.64) {
     2349            psFree(object);
     2350            exit(EXIT_FAILURE);
     2351        }
     2352        if (!object->user_4 == 64.64) {
     2353            psFree(object);
     2354            exit(EXIT_FAILURE);
     2355        }
     2356        if (!object->user_5 == 64.64) {
     2357            psFree(object);
     2358            exit(EXIT_FAILURE);
     2359        }
     2360        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2361            psFree(object);
     2362            exit(EXIT_FAILURE);
     2363        }
     2364        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     2365            psFree(object);
     2366            exit(EXIT_FAILURE);
     2367        }
     2368        if (!object->fault == -16) {
     2369            psFree(object);
     2370            exit(EXIT_FAILURE);
     2371        }
     2372
     2373        psFree(object);
     2374    }
     2375
     2376    {
     2377        detProcessedExpRow *object;
     2378
     2379        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", "a string", -16    );
     2380
     2381        if (!object) {
     2382            exit(EXIT_FAILURE);
     2383        }
     2384
     2385        if (!object->det_id == -64) {
     2386            psFree(object);
     2387            exit(EXIT_FAILURE);
     2388        }
     2389        if (!object->exp_id == -64) {
     2390            psFree(object);
     2391            exit(EXIT_FAILURE);
     2392        }
     2393        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2394            psFree(object);
     2395            exit(EXIT_FAILURE);
     2396        }
     2397        if (!object->bg == 64.64) {
     2398            psFree(object);
     2399            exit(EXIT_FAILURE);
     2400        }
     2401        if (!object->bg_stdev == 64.64) {
     2402            psFree(object);
     2403            exit(EXIT_FAILURE);
     2404        }
     2405        if (!object->bg_mean_stdev == 64.64) {
     2406            psFree(object);
     2407            exit(EXIT_FAILURE);
     2408        }
     2409        if (!object->fringe_0 == 64.64) {
     2410            psFree(object);
     2411            exit(EXIT_FAILURE);
     2412        }
     2413        if (!object->fringe_1 == 64.64) {
     2414            psFree(object);
     2415            exit(EXIT_FAILURE);
     2416        }
     2417        if (!object->fringe_2 == 64.64) {
     2418            psFree(object);
     2419            exit(EXIT_FAILURE);
     2420        }
     2421        if (!object->user_1 == 64.64) {
     2422            psFree(object);
     2423            exit(EXIT_FAILURE);
     2424        }
     2425        if (!object->user_2 == 64.64) {
     2426            psFree(object);
     2427            exit(EXIT_FAILURE);
     2428        }
     2429        if (!object->user_3 == 64.64) {
     2430            psFree(object);
     2431            exit(EXIT_FAILURE);
     2432        }
     2433        if (!object->user_4 == 64.64) {
     2434            psFree(object);
     2435            exit(EXIT_FAILURE);
     2436        }
     2437        if (!object->user_5 == 64.64) {
     2438            psFree(object);
     2439            exit(EXIT_FAILURE);
     2440        }
     2441        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2442            psFree(object);
     2443            exit(EXIT_FAILURE);
     2444        }
     2445        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     2446            psFree(object);
     2447            exit(EXIT_FAILURE);
     2448        }
     2449        if (!object->fault == -16) {
     2450            psFree(object);
     2451            exit(EXIT_FAILURE);
     2452        }
     2453
     2454        psFree(object);
     2455    }
     2456
     2457    {
     2458        detStackedImfileRow *object;
     2459
     2460        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, "a string", -16    );
     2461
     2462        if (!object) {
     2463            exit(EXIT_FAILURE);
     2464        }
     2465
     2466        if (!object->det_id == -64) {
     2467            psFree(object);
     2468            exit(EXIT_FAILURE);
     2469        }
     2470        if (!object->iteration == -32) {
     2471            psFree(object);
     2472            exit(EXIT_FAILURE);
     2473        }
     2474        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2475            psFree(object);
     2476            exit(EXIT_FAILURE);
     2477        }
     2478        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2479            psFree(object);
     2480            exit(EXIT_FAILURE);
     2481        }
     2482        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2483            psFree(object);
     2484            exit(EXIT_FAILURE);
     2485        }
     2486        if (!object->bg == 64.64) {
     2487            psFree(object);
     2488            exit(EXIT_FAILURE);
     2489        }
     2490        if (!object->bg_stdev == 64.64) {
     2491            psFree(object);
     2492            exit(EXIT_FAILURE);
     2493        }
     2494        if (!object->bg_mean_stdev == 64.64) {
     2495            psFree(object);
     2496            exit(EXIT_FAILURE);
     2497        }
     2498        if (!object->user_1 == 64.64) {
     2499            psFree(object);
     2500            exit(EXIT_FAILURE);
     2501        }
     2502        if (!object->user_2 == 64.64) {
     2503            psFree(object);
     2504            exit(EXIT_FAILURE);
     2505        }
     2506        if (!object->user_3 == 64.64) {
     2507            psFree(object);
     2508            exit(EXIT_FAILURE);
     2509        }
     2510        if (!object->user_4 == 64.64) {
     2511            psFree(object);
     2512            exit(EXIT_FAILURE);
     2513        }
     2514        if (!object->user_5 == 64.64) {
     2515            psFree(object);
     2516            exit(EXIT_FAILURE);
     2517        }
     2518        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     2519            psFree(object);
     2520            exit(EXIT_FAILURE);
     2521        }
     2522        if (!object->fault == -16) {
     2523            psFree(object);
     2524            exit(EXIT_FAILURE);
     2525        }
     2526
     2527        psFree(object);
     2528    }
     2529
     2530    {
     2531        detNormalizedStatImfileRow *object;
     2532
     2533        object = detNormalizedStatImfileRowAlloc(-64, -32, "a string", 32.32, "a string", -16    );
     2534
     2535        if (!object) {
     2536            exit(EXIT_FAILURE);
     2537        }
     2538
     2539        if (!object->det_id == -64) {
     2540            psFree(object);
     2541            exit(EXIT_FAILURE);
     2542        }
     2543        if (!object->iteration == -32) {
     2544            psFree(object);
     2545            exit(EXIT_FAILURE);
     2546        }
     2547        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2548            psFree(object);
     2549            exit(EXIT_FAILURE);
     2550        }
     2551        if (!object->norm == 32.32) {
     2552            psFree(object);
     2553            exit(EXIT_FAILURE);
     2554        }
     2555        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     2556            psFree(object);
     2557            exit(EXIT_FAILURE);
     2558        }
     2559        if (!object->fault == -16) {
     2560            psFree(object);
     2561            exit(EXIT_FAILURE);
     2562        }
     2563
     2564        psFree(object);
     2565    }
     2566
     2567    {
     2568        detNormalizedImfileRow *object;
     2569
     2570        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", "a string", -16    );
     2571
     2572        if (!object) {
     2573            exit(EXIT_FAILURE);
     2574        }
     2575
     2576        if (!object->det_id == -64) {
     2577            psFree(object);
     2578            exit(EXIT_FAILURE);
     2579        }
     2580        if (!object->iteration == -32) {
     2581            psFree(object);
     2582            exit(EXIT_FAILURE);
     2583        }
     2584        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2585            psFree(object);
     2586            exit(EXIT_FAILURE);
     2587        }
     2588        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2589            psFree(object);
     2590            exit(EXIT_FAILURE);
     2591        }
     2592        if (!object->bg == 64.64) {
     2593            psFree(object);
     2594            exit(EXIT_FAILURE);
     2595        }
     2596        if (!object->bg_stdev == 64.64) {
     2597            psFree(object);
     2598            exit(EXIT_FAILURE);
     2599        }
     2600        if (!object->bg_mean_stdev == 64.64) {
     2601            psFree(object);
     2602            exit(EXIT_FAILURE);
     2603        }
     2604        if (!object->user_1 == 64.64) {
     2605            psFree(object);
     2606            exit(EXIT_FAILURE);
     2607        }
     2608        if (!object->user_2 == 64.64) {
     2609            psFree(object);
     2610            exit(EXIT_FAILURE);
     2611        }
     2612        if (!object->user_3 == 64.64) {
     2613            psFree(object);
     2614            exit(EXIT_FAILURE);
     2615        }
     2616        if (!object->user_4 == 64.64) {
     2617            psFree(object);
     2618            exit(EXIT_FAILURE);
     2619        }
     2620        if (!object->user_5 == 64.64) {
     2621            psFree(object);
     2622            exit(EXIT_FAILURE);
     2623        }
     2624        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2625            psFree(object);
     2626            exit(EXIT_FAILURE);
     2627        }
     2628        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     2629            psFree(object);
     2630            exit(EXIT_FAILURE);
     2631        }
     2632        if (!object->fault == -16) {
     2633            psFree(object);
     2634            exit(EXIT_FAILURE);
     2635        }
     2636
     2637        psFree(object);
     2638    }
     2639
     2640    {
     2641        detNormalizedExpRow *object;
     2642
     2643        object = detNormalizedExpRowAlloc(-64, -32, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16    );
     2644
     2645        if (!object) {
     2646            exit(EXIT_FAILURE);
     2647        }
     2648
     2649        if (!object->det_id == -64) {
     2650            psFree(object);
     2651            exit(EXIT_FAILURE);
     2652        }
     2653        if (!object->iteration == -32) {
     2654            psFree(object);
     2655            exit(EXIT_FAILURE);
     2656        }
     2657        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2658            psFree(object);
     2659            exit(EXIT_FAILURE);
     2660        }
     2661        if (!object->bg == 64.64) {
     2662            psFree(object);
     2663            exit(EXIT_FAILURE);
     2664        }
     2665        if (!object->bg_stdev == 64.64) {
     2666            psFree(object);
     2667            exit(EXIT_FAILURE);
     2668        }
     2669        if (!object->bg_mean_stdev == 64.64) {
     2670            psFree(object);
     2671            exit(EXIT_FAILURE);
     2672        }
     2673        if (!object->user_1 == 64.64) {
     2674            psFree(object);
     2675            exit(EXIT_FAILURE);
     2676        }
     2677        if (!object->user_2 == 64.64) {
     2678            psFree(object);
     2679            exit(EXIT_FAILURE);
     2680        }
     2681        if (!object->user_3 == 64.64) {
     2682            psFree(object);
     2683            exit(EXIT_FAILURE);
     2684        }
     2685        if (!object->user_4 == 64.64) {
     2686            psFree(object);
     2687            exit(EXIT_FAILURE);
     2688        }
     2689        if (!object->user_5 == 64.64) {
     2690            psFree(object);
     2691            exit(EXIT_FAILURE);
     2692        }
     2693        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2694            psFree(object);
     2695            exit(EXIT_FAILURE);
     2696        }
     2697        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     2698            psFree(object);
     2699            exit(EXIT_FAILURE);
     2700        }
     2701        if (!object->fault == -16) {
     2702            psFree(object);
     2703            exit(EXIT_FAILURE);
     2704        }
     2705
     2706        psFree(object);
     2707    }
     2708
     2709    {
     2710        detResidImfileRow *object;
     2711
     2712        object = detResidImfileRowAlloc(-64, -32, -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", "a string", -16    );
     2713
     2714        if (!object) {
     2715            exit(EXIT_FAILURE);
     2716        }
     2717
     2718        if (!object->det_id == -64) {
     2719            psFree(object);
     2720            exit(EXIT_FAILURE);
     2721        }
     2722        if (!object->iteration == -32) {
     2723            psFree(object);
     2724            exit(EXIT_FAILURE);
     2725        }
     2726        if (!object->ref_det_id == -64) {
     2727            psFree(object);
     2728            exit(EXIT_FAILURE);
     2729        }
     2730        if (!object->ref_iter == -32) {
     2731            psFree(object);
     2732            exit(EXIT_FAILURE);
     2733        }
     2734        if (!object->exp_id == -64) {
     2735            psFree(object);
     2736            exit(EXIT_FAILURE);
     2737        }
     2738        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     2739            psFree(object);
     2740            exit(EXIT_FAILURE);
     2741        }
     2742        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     2743            psFree(object);
     2744            exit(EXIT_FAILURE);
     2745        }
     2746        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2747            psFree(object);
     2748            exit(EXIT_FAILURE);
     2749        }
     2750        if (!object->bg == 64.64) {
     2751            psFree(object);
     2752            exit(EXIT_FAILURE);
     2753        }
     2754        if (!object->bg_stdev == 64.64) {
     2755            psFree(object);
     2756            exit(EXIT_FAILURE);
     2757        }
     2758        if (!object->bg_mean_stdev == 64.64) {
     2759            psFree(object);
     2760            exit(EXIT_FAILURE);
     2761        }
     2762        if (!object->bg_skewness == 64.64) {
     2763            psFree(object);
     2764            exit(EXIT_FAILURE);
     2765        }
     2766        if (!object->bg_kurtosis == 64.64) {
     2767            psFree(object);
     2768            exit(EXIT_FAILURE);
     2769        }
     2770        if (!object->bin_stdev == 64.64) {
     2771            psFree(object);
     2772            exit(EXIT_FAILURE);
     2773        }
     2774        if (!object->fringe_0 == 64.64) {
     2775            psFree(object);
     2776            exit(EXIT_FAILURE);
     2777        }
     2778        if (!object->fringe_1 == 64.64) {
     2779            psFree(object);
     2780            exit(EXIT_FAILURE);
     2781        }
     2782        if (!object->fringe_2 == 64.64) {
     2783            psFree(object);
     2784            exit(EXIT_FAILURE);
     2785        }
     2786        if (!object->fringe_resid_0 == 64.64) {
     2787            psFree(object);
     2788            exit(EXIT_FAILURE);
     2789        }
     2790        if (!object->fringe_resid_1 == 64.64) {
     2791            psFree(object);
     2792            exit(EXIT_FAILURE);
     2793        }
     2794        if (!object->fringe_resid_2 == 64.64) {
     2795            psFree(object);
     2796            exit(EXIT_FAILURE);
     2797        }
     2798        if (!object->user_1 == 64.64) {
     2799            psFree(object);
     2800            exit(EXIT_FAILURE);
     2801        }
     2802        if (!object->user_2 == 64.64) {
     2803            psFree(object);
     2804            exit(EXIT_FAILURE);
     2805        }
     2806        if (!object->user_3 == 64.64) {
     2807            psFree(object);
     2808            exit(EXIT_FAILURE);
     2809        }
     2810        if (!object->user_4 == 64.64) {
     2811            psFree(object);
     2812            exit(EXIT_FAILURE);
     2813        }
     2814        if (!object->user_5 == 64.64) {
     2815            psFree(object);
     2816            exit(EXIT_FAILURE);
     2817        }
     2818        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2819            psFree(object);
     2820            exit(EXIT_FAILURE);
     2821        }
     2822        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     2823            psFree(object);
     2824            exit(EXIT_FAILURE);
     2825        }
     2826        if (!object->fault == -16) {
     2827            psFree(object);
     2828            exit(EXIT_FAILURE);
     2829        }
     2830
     2831        psFree(object);
     2832    }
     2833
     2834    {
     2835        detResidExpRow  *object;
     2836
     2837        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", "a string", true, -16    );
     2838
     2839        if (!object) {
     2840            exit(EXIT_FAILURE);
     2841        }
     2842
     2843        if (!object->det_id == -64) {
     2844            psFree(object);
     2845            exit(EXIT_FAILURE);
     2846        }
     2847        if (!object->iteration == -32) {
     2848            psFree(object);
     2849            exit(EXIT_FAILURE);
     2850        }
     2851        if (!object->exp_id == -64) {
     2852            psFree(object);
     2853            exit(EXIT_FAILURE);
     2854        }
     2855        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     2856            psFree(object);
     2857            exit(EXIT_FAILURE);
     2858        }
     2859        if (!object->bg == 64.64) {
     2860            psFree(object);
     2861            exit(EXIT_FAILURE);
     2862        }
     2863        if (!object->bg_stdev == 64.64) {
     2864            psFree(object);
     2865            exit(EXIT_FAILURE);
     2866        }
     2867        if (!object->bg_mean_stdev == 64.64) {
     2868            psFree(object);
     2869            exit(EXIT_FAILURE);
     2870        }
     2871        if (!object->bg_skewness == 64.64) {
     2872            psFree(object);
     2873            exit(EXIT_FAILURE);
     2874        }
     2875        if (!object->bg_kurtosis == 64.64) {
     2876            psFree(object);
     2877            exit(EXIT_FAILURE);
     2878        }
     2879        if (!object->bin_stdev == 64.64) {
     2880            psFree(object);
     2881            exit(EXIT_FAILURE);
     2882        }
     2883        if (!object->fringe_0 == 64.64) {
     2884            psFree(object);
     2885            exit(EXIT_FAILURE);
     2886        }
     2887        if (!object->fringe_1 == 64.64) {
     2888            psFree(object);
     2889            exit(EXIT_FAILURE);
     2890        }
     2891        if (!object->fringe_2 == 64.64) {
     2892            psFree(object);
     2893            exit(EXIT_FAILURE);
     2894        }
     2895        if (!object->fringe_resid_0 == 64.64) {
     2896            psFree(object);
     2897            exit(EXIT_FAILURE);
     2898        }
     2899        if (!object->fringe_resid_1 == 64.64) {
     2900            psFree(object);
     2901            exit(EXIT_FAILURE);
     2902        }
     2903        if (!object->fringe_resid_2 == 64.64) {
     2904            psFree(object);
     2905            exit(EXIT_FAILURE);
     2906        }
     2907        if (!object->user_1 == 64.64) {
     2908            psFree(object);
     2909            exit(EXIT_FAILURE);
     2910        }
     2911        if (!object->user_2 == 64.64) {
     2912            psFree(object);
     2913            exit(EXIT_FAILURE);
     2914        }
     2915        if (!object->user_3 == 64.64) {
     2916            psFree(object);
     2917            exit(EXIT_FAILURE);
     2918        }
     2919        if (!object->user_4 == 64.64) {
     2920            psFree(object);
     2921            exit(EXIT_FAILURE);
     2922        }
     2923        if (!object->user_5 == 64.64) {
     2924            psFree(object);
     2925            exit(EXIT_FAILURE);
     2926        }
     2927        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2928            psFree(object);
     2929            exit(EXIT_FAILURE);
     2930        }
     2931        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     2932            psFree(object);
     2933            exit(EXIT_FAILURE);
     2934        }
     2935        if (!object->accept == true) {
     2936            psFree(object);
     2937            exit(EXIT_FAILURE);
     2938        }
     2939        if (!object->fault == -16) {
     2940            psFree(object);
     2941            exit(EXIT_FAILURE);
     2942        }
     2943
     2944        psFree(object);
     2945    }
     2946
     2947    {
     2948        detRunSummaryRow *object;
     2949
     2950        object = detRunSummaryRowAlloc(-64, -32, "a string", 64.64, 64.64, 64.64, true, -16    );
     2951
     2952        if (!object) {
     2953            exit(EXIT_FAILURE);
     2954        }
     2955
     2956        if (!object->det_id == -64) {
     2957            psFree(object);
     2958            exit(EXIT_FAILURE);
     2959        }
     2960        if (!object->iteration == -32) {
     2961            psFree(object);
     2962            exit(EXIT_FAILURE);
     2963        }
     2964        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     2965            psFree(object);
     2966            exit(EXIT_FAILURE);
     2967        }
     2968        if (!object->bg == 64.64) {
     2969            psFree(object);
     2970            exit(EXIT_FAILURE);
     2971        }
     2972        if (!object->bg_stdev == 64.64) {
     2973            psFree(object);
     2974            exit(EXIT_FAILURE);
     2975        }
     2976        if (!object->bg_mean_stdev == 64.64) {
     2977            psFree(object);
     2978            exit(EXIT_FAILURE);
     2979        }
     2980        if (!object->accept == true) {
     2981            psFree(object);
     2982            exit(EXIT_FAILURE);
     2983        }
     2984        if (!object->fault == -16) {
     2985            psFree(object);
     2986            exit(EXIT_FAILURE);
     2987        }
     2988
     2989        psFree(object);
     2990    }
     2991
     2992    {
     2993        detRegisteredImfileRow *object;
     2994
     2995        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", "a string", -16    );
     2996
     2997        if (!object) {
     2998            exit(EXIT_FAILURE);
     2999        }
     3000
     3001        if (!object->det_id == -64) {
     3002            psFree(object);
     3003            exit(EXIT_FAILURE);
     3004        }
     3005        if (!object->iteration == -32) {
     3006            psFree(object);
     3007            exit(EXIT_FAILURE);
     3008        }
     3009        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     3010            psFree(object);
     3011            exit(EXIT_FAILURE);
     3012        }
     3013        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     3014            psFree(object);
     3015            exit(EXIT_FAILURE);
     3016        }
     3017        if (!object->bg == 64.64) {
     3018            psFree(object);
     3019            exit(EXIT_FAILURE);
     3020        }
     3021        if (!object->bg_stdev == 64.64) {
     3022            psFree(object);
     3023            exit(EXIT_FAILURE);
     3024        }
     3025        if (!object->bg_mean_stdev == 64.64) {
     3026            psFree(object);
     3027            exit(EXIT_FAILURE);
     3028        }
     3029        if (!object->user_1 == 64.64) {
     3030            psFree(object);
     3031            exit(EXIT_FAILURE);
     3032        }
     3033        if (!object->user_2 == 64.64) {
     3034            psFree(object);
     3035            exit(EXIT_FAILURE);
     3036        }
     3037        if (!object->user_3 == 64.64) {
     3038            psFree(object);
     3039            exit(EXIT_FAILURE);
     3040        }
     3041        if (!object->user_4 == 64.64) {
     3042            psFree(object);
     3043            exit(EXIT_FAILURE);
     3044        }
     3045        if (!object->user_5 == 64.64) {
     3046            psFree(object);
     3047            exit(EXIT_FAILURE);
     3048        }
     3049        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     3050            psFree(object);
     3051            exit(EXIT_FAILURE);
     3052        }
     3053        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     3054            psFree(object);
     3055            exit(EXIT_FAILURE);
     3056        }
     3057        if (!object->fault == -16) {
     3058            psFree(object);
     3059            exit(EXIT_FAILURE);
     3060        }
     3061
     3062        psFree(object);
     3063    }
     3064
     3065    {
     3066        detCorrectedExpRow *object;
     3067
     3068        object = detCorrectedExpRowAlloc(-64, -64, "a string", -64, "a string", "a string", "a string", -16    );
     3069
     3070        if (!object) {
     3071            exit(EXIT_FAILURE);
     3072        }
     3073
     3074        if (!object->det_id == -64) {
     3075            psFree(object);
     3076            exit(EXIT_FAILURE);
     3077        }
     3078        if (!object->exp_id == -64) {
     3079            psFree(object);
     3080            exit(EXIT_FAILURE);
     3081        }
     3082        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     3083            psFree(object);
     3084            exit(EXIT_FAILURE);
     3085        }
     3086        if (!object->corr_id == -64) {
     3087            psFree(object);
     3088            exit(EXIT_FAILURE);
     3089        }
     3090        if (strncmp(object->corr_type, "a string", MAX_STRING_LENGTH)) {
     3091            psFree(object);
     3092            exit(EXIT_FAILURE);
     3093        }
     3094        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     3095            psFree(object);
     3096            exit(EXIT_FAILURE);
     3097        }
     3098        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     3099            psFree(object);
     3100            exit(EXIT_FAILURE);
     3101        }
     3102        if (!object->fault == -16) {
     3103            psFree(object);
     3104            exit(EXIT_FAILURE);
     3105        }
     3106
     3107        psFree(object);
     3108    }
     3109
     3110    {
     3111        detCorrectedImfileRow *object;
     3112
     3113        object = detCorrectedImfileRowAlloc(-64, -64, "a string", "a string", "a string", -16    );
     3114
     3115        if (!object) {
     3116            exit(EXIT_FAILURE);
     3117        }
     3118
     3119        if (!object->det_id == -64) {
     3120            psFree(object);
     3121            exit(EXIT_FAILURE);
     3122        }
     3123        if (!object->exp_id == -64) {
     3124            psFree(object);
     3125            exit(EXIT_FAILURE);
     3126        }
     3127        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     3128            psFree(object);
     3129            exit(EXIT_FAILURE);
     3130        }
     3131        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     3132            psFree(object);
     3133            exit(EXIT_FAILURE);
     3134        }
     3135        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     3136            psFree(object);
     3137            exit(EXIT_FAILURE);
     3138        }
     3139        if (!object->fault == -16) {
     3140            psFree(object);
     3141            exit(EXIT_FAILURE);
     3142        }
     3143
     3144        psFree(object);
     3145    }
     3146
     3147    {
     3148        magicRunRow     *object;
     3149
     3150        object = magicRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", -16    );
     3151
     3152        if (!object) {
     3153            exit(EXIT_FAILURE);
     3154        }
     3155
     3156        if (!object->magic_id == -64) {
     3157            psFree(object);
     3158            exit(EXIT_FAILURE);
     3159        }
     3160        if (!object->exp_id == -64) {
     3161            psFree(object);
     3162            exit(EXIT_FAILURE);
     3163        }
     3164        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     3165            psFree(object);
     3166            exit(EXIT_FAILURE);
     3167        }
     3168        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     3169            psFree(object);
     3170            exit(EXIT_FAILURE);
     3171        }
     3172        if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
     3173            psFree(object);
     3174            exit(EXIT_FAILURE);
     3175        }
     3176        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     3177            psFree(object);
     3178            exit(EXIT_FAILURE);
     3179        }
     3180        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     3181            psFree(object);
     3182            exit(EXIT_FAILURE);
     3183        }
     3184            psFree(object);
     3185            exit(EXIT_FAILURE);
     3186        }
     3187        if (!object->fault == -16) {
     3188            psFree(object);
     3189            exit(EXIT_FAILURE);
     3190        }
     3191
     3192        psFree(object);
     3193    }
     3194
     3195    {
     3196        magicInputSkyfileRow *object;
     3197
     3198        object = magicInputSkyfileRowAlloc(-64, -64, "a string"    );
     3199
     3200        if (!object) {
     3201            exit(EXIT_FAILURE);
     3202        }
     3203
     3204        if (!object->magic_id == -64) {
     3205            psFree(object);
     3206            exit(EXIT_FAILURE);
     3207        }
     3208        if (!object->diff_id == -64) {
     3209            psFree(object);
     3210            exit(EXIT_FAILURE);
     3211        }
     3212        if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
     3213            psFree(object);
     3214            exit(EXIT_FAILURE);
     3215        }
     3216
     3217        psFree(object);
     3218    }
     3219
     3220    {
     3221        magicTreeRow    *object;
     3222
     3223        object = magicTreeRowAlloc(-64, "a string", "a string"    );
     3224
     3225        if (!object) {
     3226            exit(EXIT_FAILURE);
     3227        }
     3228
     3229        if (!object->magic_id == -64) {
     3230            psFree(object);
     3231            exit(EXIT_FAILURE);
     3232        }
     3233        if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
     3234            psFree(object);
     3235            exit(EXIT_FAILURE);
     3236        }
     3237        if (strncmp(object->dep, "a string", MAX_STRING_LENGTH)) {
     3238            psFree(object);
     3239            exit(EXIT_FAILURE);
     3240        }
     3241
     3242        psFree(object);
     3243    }
     3244
     3245    {
     3246        magicNodeResultRow *object;
     3247
     3248        object = magicNodeResultRowAlloc(-64, "a string", "a string", -16    );
     3249
     3250        if (!object) {
     3251            exit(EXIT_FAILURE);
     3252        }
     3253
     3254        if (!object->magic_id == -64) {
     3255            psFree(object);
     3256            exit(EXIT_FAILURE);
     3257        }
     3258        if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
     3259            psFree(object);
     3260            exit(EXIT_FAILURE);
     3261        }
     3262        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     3263            psFree(object);
     3264            exit(EXIT_FAILURE);
     3265        }
     3266        if (!object->fault == -16) {
     3267            psFree(object);
     3268            exit(EXIT_FAILURE);
     3269        }
     3270
     3271        psFree(object);
     3272    }
     3273
     3274    {
     3275        magicMaskRow    *object;
     3276
     3277        object = magicMaskRowAlloc(-64, "a string", -32, -16    );
     3278
     3279        if (!object) {
     3280            exit(EXIT_FAILURE);
     3281        }
     3282
     3283        if (!object->magic_id == -64) {
     3284            psFree(object);
     3285            exit(EXIT_FAILURE);
     3286        }
     3287        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     3288            psFree(object);
     3289            exit(EXIT_FAILURE);
     3290        }
     3291        if (!object->streaks == -32) {
     3292            psFree(object);
     3293            exit(EXIT_FAILURE);
     3294        }
     3295        if (!object->fault == -16) {
     3296            psFree(object);
     3297            exit(EXIT_FAILURE);
     3298        }
     3299
     3300        psFree(object);
     3301    }
     3302
     3303    {
     3304        calDBRow        *object;
     3305
     3306        object = calDBRowAlloc(-64, "a string", "a string"    );
     3307
     3308        if (!object) {
     3309            exit(EXIT_FAILURE);
     3310        }
     3311
     3312        if (!object->cal_id == -64) {
     3313            psFree(object);
     3314            exit(EXIT_FAILURE);
     3315        }
     3316        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     3317            psFree(object);
     3318            exit(EXIT_FAILURE);
     3319        }
     3320        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     3321            psFree(object);
     3322            exit(EXIT_FAILURE);
     3323        }
     3324
     3325        psFree(object);
     3326    }
     3327
     3328    {
     3329        calRunRow       *object;
     3330
     3331        object = calRunRowAlloc(-64, "a string", "a string", "a string"    );
     3332
     3333        if (!object) {
     3334            exit(EXIT_FAILURE);
     3335        }
     3336
     3337        if (!object->cal_id == -64) {
     3338            psFree(object);
     3339            exit(EXIT_FAILURE);
     3340        }
     3341        if (strncmp(object->region, "a string", MAX_STRING_LENGTH)) {
     3342            psFree(object);
     3343            exit(EXIT_FAILURE);
     3344        }
     3345        if (strncmp(object->last_step, "a string", MAX_STRING_LENGTH)) {
     3346            psFree(object);
     3347            exit(EXIT_FAILURE);
     3348        }
     3349        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     3350            psFree(object);
     3351            exit(EXIT_FAILURE);
     3352        }
     3353
     3354        psFree(object);
     3355    }
     3356
     3357    {
     3358        flatcorrRunRow  *object;
     3359
     3360        object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", -16    );
     3361
     3362        if (!object) {
     3363            exit(EXIT_FAILURE);
     3364        }
     3365
     3366        if (!object->corr_id == -64) {
     3367            psFree(object);
     3368            exit(EXIT_FAILURE);
     3369        }
     3370        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     3371            psFree(object);
     3372            exit(EXIT_FAILURE);
     3373        }
     3374        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
     3375            psFree(object);
     3376            exit(EXIT_FAILURE);
     3377        }
     3378        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     3379            psFree(object);
     3380            exit(EXIT_FAILURE);
     3381        }
     3382        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     3383            psFree(object);
     3384            exit(EXIT_FAILURE);
     3385        }
     3386        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     3387            psFree(object);
     3388            exit(EXIT_FAILURE);
     3389        }
     3390        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
     3391            psFree(object);
     3392            exit(EXIT_FAILURE);
     3393        }
     3394        if (strncmp(object->region, "a string", MAX_STRING_LENGTH)) {
     3395            psFree(object);
     3396            exit(EXIT_FAILURE);
     3397        }
     3398        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     3399            psFree(object);
     3400            exit(EXIT_FAILURE);
     3401        }
     3402        if (!object->fault == -16) {
     3403            psFree(object);
     3404            exit(EXIT_FAILURE);
     3405        }
     3406
     3407        psFree(object);
     3408    }
     3409
     3410    {
     3411        flatcorrChipLinkRow *object;
     3412
     3413        object = flatcorrChipLinkRowAlloc(-64, -64    );
     3414
     3415        if (!object) {
     3416            exit(EXIT_FAILURE);
     3417        }
     3418
     3419        if (!object->corr_id == -64) {
     3420            psFree(object);
     3421            exit(EXIT_FAILURE);
     3422        }
    10203423        if (!object->chip_id == -64) {
    10213424            psFree(object);
    10223425            exit(EXIT_FAILURE);
    10233426        }
     3427
     3428        psFree(object);
     3429    }
     3430
     3431    {
     3432        flatcorrCamLinkRow *object;
     3433
     3434        object = flatcorrCamLinkRowAlloc(-64, -64, -64    );
     3435
     3436        if (!object) {
     3437            exit(EXIT_FAILURE);
     3438        }
     3439
     3440        if (!object->corr_id == -64) {
     3441            psFree(object);
     3442            exit(EXIT_FAILURE);
     3443        }
     3444        if (!object->chip_id == -64) {
     3445            psFree(object);
     3446            exit(EXIT_FAILURE);
     3447        }
     3448        if (!object->cam_id == -64) {
     3449            psFree(object);
     3450            exit(EXIT_FAILURE);
     3451        }
     3452
     3453        psFree(object);
     3454    }
     3455
     3456    {
     3457        pstampDataStoreRow *object;
     3458
     3459        object = pstampDataStoreRowAlloc(-64, "a string", "a string", "a string", "a string"    );
     3460
     3461        if (!object) {
     3462            exit(EXIT_FAILURE);
     3463        }
     3464
     3465        if (!object->ds_id == -64) {
     3466            psFree(object);
     3467            exit(EXIT_FAILURE);
     3468        }
    10243469        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    10253470            psFree(object);
    10263471            exit(EXIT_FAILURE);
    10273472        }
    1028         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1029             psFree(object);
    1030             exit(EXIT_FAILURE);
    1031         }
    1032         if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
    1033             psFree(object);
    1034             exit(EXIT_FAILURE);
    1035         }
    1036         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    1037             psFree(object);
    1038             exit(EXIT_FAILURE);
    1039         }
    1040         if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
    1041             psFree(object);
    1042             exit(EXIT_FAILURE);
    1043         }
    1044         if (strncmp(object->expgroup, "a string", MAX_STRING_LENGTH)) {
     3473        if (strncmp(object->lastFileset, "a string", MAX_STRING_LENGTH)) {
     3474            psFree(object);
     3475            exit(EXIT_FAILURE);
     3476        }
     3477        if (strncmp(object->outProduct, "a string", MAX_STRING_LENGTH)) {
     3478            psFree(object);
     3479            exit(EXIT_FAILURE);
     3480        }
     3481        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     3482            psFree(object);
     3483            exit(EXIT_FAILURE);
     3484        }
     3485
     3486        psFree(object);
     3487    }
     3488
     3489    {
     3490        pstampProjectRow *object;
     3491
     3492        object = pstampProjectRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", true    );
     3493
     3494        if (!object) {
     3495            exit(EXIT_FAILURE);
     3496        }
     3497
     3498        if (!object->proj_id == -64) {
     3499            psFree(object);
     3500            exit(EXIT_FAILURE);
     3501        }
     3502        if (strncmp(object->name, "a string", MAX_STRING_LENGTH)) {
     3503            psFree(object);
     3504            exit(EXIT_FAILURE);
     3505        }
     3506        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     3507            psFree(object);
     3508            exit(EXIT_FAILURE);
     3509        }
     3510        if (strncmp(object->dbname, "a string", MAX_STRING_LENGTH)) {
    10453511            psFree(object);
    10463512            exit(EXIT_FAILURE);
     
    10503516            exit(EXIT_FAILURE);
    10513517        }
    1052         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1053             psFree(object);
    1054             exit(EXIT_FAILURE);
    1055         }
    1056         if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
    1057             psFree(object);
    1058             exit(EXIT_FAILURE);
    1059         }
    1060 
    1061         psFree(object);
    1062     }
    1063 
    1064     {
    1065         camProcessedExpRow *object;
    1066 
    1067         object = camProcessedExpRowAlloc(-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    );
    1068 
    1069         if (!object) {
    1070             exit(EXIT_FAILURE);
    1071         }
    1072 
    1073         if (!object->cam_id == -64) {
     3518        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
     3519            psFree(object);
     3520            exit(EXIT_FAILURE);
     3521        }
     3522        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
     3523            psFree(object);
     3524            exit(EXIT_FAILURE);
     3525        }
     3526        if (!object->need_magic == true) {
     3527            psFree(object);
     3528            exit(EXIT_FAILURE);
     3529        }
     3530
     3531        psFree(object);
     3532    }
     3533
     3534    {
     3535        pstampRequestRow *object;
     3536
     3537        object = pstampRequestRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", -32    );
     3538
     3539        if (!object) {
     3540            exit(EXIT_FAILURE);
     3541        }
     3542
     3543        if (!object->req_id == -64) {
     3544            psFree(object);
     3545            exit(EXIT_FAILURE);
     3546        }
     3547        if (!object->ds_id == -64) {
     3548            psFree(object);
     3549            exit(EXIT_FAILURE);
     3550        }
     3551        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     3552            psFree(object);
     3553            exit(EXIT_FAILURE);
     3554        }
     3555        if (strncmp(object->name, "a string", MAX_STRING_LENGTH)) {
     3556            psFree(object);
     3557            exit(EXIT_FAILURE);
     3558        }
     3559        if (strncmp(object->reqType, "a string", MAX_STRING_LENGTH)) {
     3560            psFree(object);
     3561            exit(EXIT_FAILURE);
     3562        }
     3563        if (strncmp(object->outProduct, "a string", MAX_STRING_LENGTH)) {
    10743564            psFree(object);
    10753565            exit(EXIT_FAILURE);
     
    10793569            exit(EXIT_FAILURE);
    10803570        }
    1081         if (!object->bg == 32.32) {
    1082             psFree(object);
    1083             exit(EXIT_FAILURE);
    1084         }
    1085         if (!object->bg_stdev == 32.32) {
    1086             psFree(object);
    1087             exit(EXIT_FAILURE);
    1088         }
    1089         if (!object->bg_mean_stdev == 32.32) {
    1090             psFree(object);
    1091             exit(EXIT_FAILURE);
    1092         }
    1093         if (!object->bias == 32.32) {
    1094             psFree(object);
    1095             exit(EXIT_FAILURE);
    1096         }
    1097         if (!object->bias_stdev == 32.32) {
    1098             psFree(object);
    1099             exit(EXIT_FAILURE);
    1100         }
    1101         if (!object->fringe_0 == 32.32) {
    1102             psFree(object);
    1103             exit(EXIT_FAILURE);
    1104         }
    1105         if (!object->fringe_1 == 32.32) {
    1106             psFree(object);
    1107             exit(EXIT_FAILURE);
    1108         }
    1109         if (!object->fringe_2 == 32.32) {
    1110             psFree(object);
    1111             exit(EXIT_FAILURE);
    1112         }
    1113         if (!object->sigma_ra == 32.32) {
    1114             psFree(object);
    1115             exit(EXIT_FAILURE);
    1116         }
    1117         if (!object->sigma_dec == 32.32) {
    1118             psFree(object);
    1119             exit(EXIT_FAILURE);
    1120         }
    1121         if (!object->ap_resid == 32.32) {
    1122             psFree(object);
    1123             exit(EXIT_FAILURE);
    1124         }
    1125         if (!object->ap_resid_stdev == 32.32) {
    1126             psFree(object);
    1127             exit(EXIT_FAILURE);
    1128         }
    1129         if (!object->zp_mean == 32.32) {
    1130             psFree(object);
    1131             exit(EXIT_FAILURE);
    1132         }
    1133         if (!object->zp_stdev == 32.32) {
    1134             psFree(object);
    1135             exit(EXIT_FAILURE);
    1136         }
    1137         if (!object->fwhm_major == 32.32) {
    1138             psFree(object);
    1139             exit(EXIT_FAILURE);
    1140         }
    1141         if (!object->fwhm_minor == 32.32) {
    1142             psFree(object);
    1143             exit(EXIT_FAILURE);
    1144         }
    1145         if (!object->dtime_detrend == 32.32) {
    1146             psFree(object);
    1147             exit(EXIT_FAILURE);
    1148         }
    1149         if (!object->dtime_photom == 32.32) {
    1150             psFree(object);
    1151             exit(EXIT_FAILURE);
    1152         }
    1153         if (!object->dtime_astrom == 32.32) {
    1154             psFree(object);
    1155             exit(EXIT_FAILURE);
    1156         }
    1157         if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    1158             psFree(object);
    1159             exit(EXIT_FAILURE);
    1160         }
    1161         if (!object->n_stars == -32) {
    1162             psFree(object);
    1163             exit(EXIT_FAILURE);
    1164         }
    1165         if (!object->n_extended == -32) {
    1166             psFree(object);
    1167             exit(EXIT_FAILURE);
    1168         }
    1169         if (!object->n_cr == -32) {
    1170             psFree(object);
    1171             exit(EXIT_FAILURE);
    1172         }
    1173         if (!object->n_astrom == -32) {
    1174             psFree(object);
    1175             exit(EXIT_FAILURE);
    1176         }
    1177         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1178             psFree(object);
    1179             exit(EXIT_FAILURE);
    1180         }
    1181         if (!object->fault == -16) {
    1182             psFree(object);
    1183             exit(EXIT_FAILURE);
    1184         }
    1185 
    1186         psFree(object);
    1187     }
    1188 
    1189     {
    1190         camMaskRow      *object;
    1191 
    1192         object = camMaskRowAlloc("a string"    );
    1193 
    1194         if (!object) {
    1195             exit(EXIT_FAILURE);
    1196         }
    1197 
    1198         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    1199             psFree(object);
    1200             exit(EXIT_FAILURE);
    1201         }
    1202 
    1203         psFree(object);
    1204     }
    1205 
    1206     {
    1207         fakeRunRow      *object;
    1208 
    1209         object = fakeRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z"    );
    1210 
    1211         if (!object) {
    1212             exit(EXIT_FAILURE);
    1213         }
    1214 
    1215         if (!object->fake_id == -64) {
    1216             psFree(object);
    1217             exit(EXIT_FAILURE);
    1218         }
    1219         if (!object->cam_id == -64) {
     3571        if (!object->fault == -32) {
     3572            psFree(object);
     3573            exit(EXIT_FAILURE);
     3574        }
     3575
     3576        psFree(object);
     3577    }
     3578
     3579    {
     3580        pstampJobRow    *object;
     3581
     3582        object = pstampJobRowAlloc(-64, -64, "a string", "a string", "a string", -32, "a string", -64, "a string", "a string"    );
     3583
     3584        if (!object) {
     3585            exit(EXIT_FAILURE);
     3586        }
     3587
     3588        if (!object->job_id == -64) {
     3589            psFree(object);
     3590            exit(EXIT_FAILURE);
     3591        }
     3592        if (!object->req_id == -64) {
     3593            psFree(object);
     3594            exit(EXIT_FAILURE);
     3595        }
     3596        if (strncmp(object->rownum, "a string", MAX_STRING_LENGTH)) {
    12203597            psFree(object);
    12213598            exit(EXIT_FAILURE);
     
    12253602            exit(EXIT_FAILURE);
    12263603        }
    1227         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1228             psFree(object);
    1229             exit(EXIT_FAILURE);
    1230         }
    1231         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    1232             psFree(object);
    1233             exit(EXIT_FAILURE);
    1234         }
    1235         if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
    1236             psFree(object);
    1237             exit(EXIT_FAILURE);
    1238         }
    1239         if (strncmp(object->expgroup, "a string", MAX_STRING_LENGTH)) {
    1240             psFree(object);
    1241             exit(EXIT_FAILURE);
    1242         }
    1243         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    1244             psFree(object);
    1245             exit(EXIT_FAILURE);
    1246         }
    1247         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1248             psFree(object);
    1249             exit(EXIT_FAILURE);
    1250         }
    1251         if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
    1252             psFree(object);
    1253             exit(EXIT_FAILURE);
    1254         }
    1255             psFree(object);
    1256             exit(EXIT_FAILURE);
    1257         }
    1258 
    1259         psFree(object);
    1260     }
    1261 
    1262     {
    1263         fakeProcessedImfileRow *object;
    1264 
    1265         object = fakeProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, "a string", "a string", -16, "0001-01-01T00:00:00Z"    );
    1266 
    1267         if (!object) {
    1268             exit(EXIT_FAILURE);
    1269         }
    1270 
    1271         if (!object->fake_id == -64) {
     3604        if (strncmp(object->jobType, "a string", MAX_STRING_LENGTH)) {
     3605            psFree(object);
     3606            exit(EXIT_FAILURE);
     3607        }
     3608        if (!object->fault == -32) {
     3609            psFree(object);
     3610            exit(EXIT_FAILURE);
     3611        }
     3612        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    12723613            psFree(object);
    12733614            exit(EXIT_FAILURE);
    12743615        }
    12753616        if (!object->exp_id == -64) {
    1276             psFree(object);
    1277             exit(EXIT_FAILURE);
    1278         }
    1279         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1280             psFree(object);
    1281             exit(EXIT_FAILURE);
    1282         }
    1283         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1284             psFree(object);
    1285             exit(EXIT_FAILURE);
    1286         }
    1287         if (!object->dtime_fake == 32.32) {
    1288             psFree(object);
    1289             exit(EXIT_FAILURE);
    1290         }
    1291         if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    1292             psFree(object);
    1293             exit(EXIT_FAILURE);
    1294         }
    1295         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1296             psFree(object);
    1297             exit(EXIT_FAILURE);
    1298         }
    1299         if (!object->fault == -16) {
    1300             psFree(object);
    1301             exit(EXIT_FAILURE);
    1302         }
    1303             psFree(object);
    1304             exit(EXIT_FAILURE);
    1305         }
    1306 
    1307         psFree(object);
    1308     }
    1309 
    1310     {
    1311         fakeMaskRow     *object;
    1312 
    1313         object = fakeMaskRowAlloc("a string"    );
    1314 
    1315         if (!object) {
    1316             exit(EXIT_FAILURE);
    1317         }
    1318 
    1319         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    1320             psFree(object);
    1321             exit(EXIT_FAILURE);
    1322         }
    1323 
    1324         psFree(object);
    1325     }
    1326 
    1327     {
    1328         warpRunRow      *object;
    1329 
    1330         object = warpRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", true    );
    1331 
    1332         if (!object) {
    1333             exit(EXIT_FAILURE);
    1334         }
    1335 
    1336         if (!object->warp_id == -64) {
    1337             psFree(object);
    1338             exit(EXIT_FAILURE);
    1339         }
    1340         if (!object->fake_id == -64) {
    1341             psFree(object);
    1342             exit(EXIT_FAILURE);
    1343         }
    1344         if (strncmp(object->mode, "a string", MAX_STRING_LENGTH)) {
    1345             psFree(object);
    1346             exit(EXIT_FAILURE);
    1347         }
    1348         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    1349             psFree(object);
    1350             exit(EXIT_FAILURE);
    1351         }
    1352         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1353             psFree(object);
    1354             exit(EXIT_FAILURE);
    1355         }
    1356         if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
    1357             psFree(object);
    1358             exit(EXIT_FAILURE);
    1359         }
    1360         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    1361             psFree(object);
    1362             exit(EXIT_FAILURE);
    1363         }
    1364         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    1365             psFree(object);
    1366             exit(EXIT_FAILURE);
    1367         }
    1368         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1369             psFree(object);
    1370             exit(EXIT_FAILURE);
    1371         }
    1372         if (strncmp(object->end_stage, "a string", MAX_STRING_LENGTH)) {
    1373             psFree(object);
    1374             exit(EXIT_FAILURE);
    1375         }
    1376             psFree(object);
    1377             exit(EXIT_FAILURE);
    1378         }
    1379         if (!object->magiced == true) {
    1380             psFree(object);
    1381             exit(EXIT_FAILURE);
    1382         }
    1383 
    1384         psFree(object);
    1385     }
    1386 
    1387     {
    1388         warpSkyCellMapRow *object;
    1389 
    1390         object = warpSkyCellMapRowAlloc(-64, "a string", "a string", "a string", -16    );
    1391 
    1392         if (!object) {
    1393             exit(EXIT_FAILURE);
    1394         }
    1395 
    1396         if (!object->warp_id == -64) {
    1397             psFree(object);
    1398             exit(EXIT_FAILURE);
    1399         }
    1400         if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
    1401             psFree(object);
    1402             exit(EXIT_FAILURE);
    1403         }
    1404         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1405             psFree(object);
    1406             exit(EXIT_FAILURE);
    1407         }
    1408         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1409             psFree(object);
    1410             exit(EXIT_FAILURE);
    1411         }
    1412         if (!object->fault == -16) {
    1413             psFree(object);
    1414             exit(EXIT_FAILURE);
    1415         }
    1416 
    1417         psFree(object);
    1418     }
    1419 
    1420     {
    1421         warpSkyfileRow  *object;
    1422 
    1423         object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -32, -32, -32, -32, true, -16    );
    1424 
    1425         if (!object) {
    1426             exit(EXIT_FAILURE);
    1427         }
    1428 
    1429         if (!object->warp_id == -64) {
    1430             psFree(object);
    1431             exit(EXIT_FAILURE);
    1432         }
    1433         if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
    1434             psFree(object);
    1435             exit(EXIT_FAILURE);
    1436         }
    1437         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1438             psFree(object);
    1439             exit(EXIT_FAILURE);
    1440         }
    1441         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1442             psFree(object);
    1443             exit(EXIT_FAILURE);
    1444         }
    1445         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1446             psFree(object);
    1447             exit(EXIT_FAILURE);
    1448         }
    1449         if (!object->bg == 64.64) {
    1450             psFree(object);
    1451             exit(EXIT_FAILURE);
    1452         }
    1453         if (!object->bg_stdev == 64.64) {
    1454             psFree(object);
    1455             exit(EXIT_FAILURE);
    1456         }
    1457         if (!object->dtime_warp == 32.32) {
    1458             psFree(object);
    1459             exit(EXIT_FAILURE);
    1460         }
    1461         if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    1462             psFree(object);
    1463             exit(EXIT_FAILURE);
    1464         }
    1465         if (!object->good_frac == 32.32) {
    1466             psFree(object);
    1467             exit(EXIT_FAILURE);
    1468         }
    1469         if (!object->xmin == -32) {
    1470             psFree(object);
    1471             exit(EXIT_FAILURE);
    1472         }
    1473         if (!object->xmax == -32) {
    1474             psFree(object);
    1475             exit(EXIT_FAILURE);
    1476         }
    1477         if (!object->ymin == -32) {
    1478             psFree(object);
    1479             exit(EXIT_FAILURE);
    1480         }
    1481         if (!object->ymax == -32) {
    1482             psFree(object);
    1483             exit(EXIT_FAILURE);
    1484         }
    1485         if (!object->ignored == true) {
    1486             psFree(object);
    1487             exit(EXIT_FAILURE);
    1488         }
    1489         if (!object->fault == -16) {
    1490             psFree(object);
    1491             exit(EXIT_FAILURE);
    1492         }
    1493 
    1494         psFree(object);
    1495     }
    1496 
    1497     {
    1498         warpMaskRow     *object;
    1499 
    1500         object = warpMaskRowAlloc("a string"    );
    1501 
    1502         if (!object) {
    1503             exit(EXIT_FAILURE);
    1504         }
    1505 
    1506         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    1507             psFree(object);
    1508             exit(EXIT_FAILURE);
    1509         }
    1510 
    1511         psFree(object);
    1512     }
    1513 
    1514     {
    1515         diffRunRow      *object;
    1516 
    1517         object = diffRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string"    );
    1518 
    1519         if (!object) {
    1520             exit(EXIT_FAILURE);
    1521         }
    1522 
    1523         if (!object->diff_id == -64) {
    1524             psFree(object);
    1525             exit(EXIT_FAILURE);
    1526         }
    1527         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    1528             psFree(object);
    1529             exit(EXIT_FAILURE);
    1530         }
    1531         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1532             psFree(object);
    1533             exit(EXIT_FAILURE);
    1534         }
    1535         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    1536             psFree(object);
    1537             exit(EXIT_FAILURE);
    1538         }
    1539             psFree(object);
    1540             exit(EXIT_FAILURE);
    1541         }
    1542         if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
    1543             psFree(object);
    1544             exit(EXIT_FAILURE);
    1545         }
    1546         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1547             psFree(object);
    1548             exit(EXIT_FAILURE);
    1549         }
    1550 
    1551         psFree(object);
    1552     }
    1553 
    1554     {
    1555         diffInputSkyfileRow *object;
    1556 
    1557         object = diffInputSkyfileRowAlloc(-64, true, -64, -64, "a string", "a string", "a string"    );
    1558 
    1559         if (!object) {
    1560             exit(EXIT_FAILURE);
    1561         }
    1562 
    1563         if (!object->diff_id == -64) {
    1564             psFree(object);
    1565             exit(EXIT_FAILURE);
    1566         }
    1567         if (!object->template == true) {
    1568             psFree(object);
    1569             exit(EXIT_FAILURE);
    1570         }
    1571         if (!object->stack_id == -64) {
    1572             psFree(object);
    1573             exit(EXIT_FAILURE);
    1574         }
    1575         if (!object->warp_id == -64) {
    1576             psFree(object);
    1577             exit(EXIT_FAILURE);
    1578         }
    1579         if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
    1580             psFree(object);
    1581             exit(EXIT_FAILURE);
    1582         }
    1583         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1584             psFree(object);
    1585             exit(EXIT_FAILURE);
    1586         }
    1587         if (strncmp(object->kind, "a string", MAX_STRING_LENGTH)) {
    1588             psFree(object);
    1589             exit(EXIT_FAILURE);
    1590         }
    1591 
    1592         psFree(object);
    1593     }
    1594 
    1595     {
    1596         diffSkyfileRow  *object;
    1597 
    1598         object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, -32, 32.32, -32, 32.32, "a string", 32.32, -16    );
    1599 
    1600         if (!object) {
    1601             exit(EXIT_FAILURE);
    1602         }
    1603 
    1604         if (!object->diff_id == -64) {
    1605             psFree(object);
    1606             exit(EXIT_FAILURE);
    1607         }
    1608         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1609             psFree(object);
    1610             exit(EXIT_FAILURE);
    1611         }
    1612         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1613             psFree(object);
    1614             exit(EXIT_FAILURE);
    1615         }
    1616         if (!object->bg == 64.64) {
    1617             psFree(object);
    1618             exit(EXIT_FAILURE);
    1619         }
    1620         if (!object->bg_stdev == 64.64) {
    1621             psFree(object);
    1622             exit(EXIT_FAILURE);
    1623         }
    1624         if (!object->stamps_num == -32) {
    1625             psFree(object);
    1626             exit(EXIT_FAILURE);
    1627         }
    1628         if (!object->stamps_rms == 32.32) {
    1629             psFree(object);
    1630             exit(EXIT_FAILURE);
    1631         }
    1632         if (!object->sources == -32) {
    1633             psFree(object);
    1634             exit(EXIT_FAILURE);
    1635         }
    1636         if (!object->dtime_diff == 32.32) {
    1637             psFree(object);
    1638             exit(EXIT_FAILURE);
    1639         }
    1640         if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    1641             psFree(object);
    1642             exit(EXIT_FAILURE);
    1643         }
    1644         if (!object->good_frac == 32.32) {
    1645             psFree(object);
    1646             exit(EXIT_FAILURE);
    1647         }
    1648         if (!object->fault == -16) {
    1649             psFree(object);
    1650             exit(EXIT_FAILURE);
    1651         }
    1652 
    1653         psFree(object);
    1654     }
    1655 
    1656     {
    1657         stackRunRow     *object;
    1658 
    1659         object = stackRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string"    );
    1660 
    1661         if (!object) {
    1662             exit(EXIT_FAILURE);
    1663         }
    1664 
    1665         if (!object->stack_id == -64) {
    1666             psFree(object);
    1667             exit(EXIT_FAILURE);
    1668         }
    1669         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    1670             psFree(object);
    1671             exit(EXIT_FAILURE);
    1672         }
    1673         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1674             psFree(object);
    1675             exit(EXIT_FAILURE);
    1676         }
    1677         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    1678             psFree(object);
    1679             exit(EXIT_FAILURE);
    1680         }
    1681             psFree(object);
    1682             exit(EXIT_FAILURE);
    1683         }
    1684         if (strncmp(object->skycell_id, "a string", MAX_STRING_LENGTH)) {
    1685             psFree(object);
    1686             exit(EXIT_FAILURE);
    1687         }
    1688         if (strncmp(object->tess_id, "a string", MAX_STRING_LENGTH)) {
    1689             psFree(object);
    1690             exit(EXIT_FAILURE);
    1691         }
    1692         if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
    1693             psFree(object);
    1694             exit(EXIT_FAILURE);
    1695         }
    1696 
    1697         psFree(object);
    1698     }
    1699 
    1700     {
    1701         stackInputSkyfileRow *object;
    1702 
    1703         object = stackInputSkyfileRowAlloc(-64, -64    );
    1704 
    1705         if (!object) {
    1706             exit(EXIT_FAILURE);
    1707         }
    1708 
    1709         if (!object->stack_id == -64) {
    1710             psFree(object);
    1711             exit(EXIT_FAILURE);
    1712         }
    1713         if (!object->warp_id == -64) {
    1714             psFree(object);
    1715             exit(EXIT_FAILURE);
    1716         }
    1717 
    1718         psFree(object);
    1719     }
    1720 
    1721     {
    1722         stackSumSkyfileRow *object;
    1723 
    1724         object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16    );
    1725 
    1726         if (!object) {
    1727             exit(EXIT_FAILURE);
    1728         }
    1729 
    1730         if (!object->stack_id == -64) {
    1731             psFree(object);
    1732             exit(EXIT_FAILURE);
    1733         }
    1734         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1735             psFree(object);
    1736             exit(EXIT_FAILURE);
    1737         }
    1738         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1739             psFree(object);
    1740             exit(EXIT_FAILURE);
    1741         }
    1742         if (!object->bg == 64.64) {
    1743             psFree(object);
    1744             exit(EXIT_FAILURE);
    1745         }
    1746         if (!object->bg_stdev == 64.64) {
    1747             psFree(object);
    1748             exit(EXIT_FAILURE);
    1749         }
    1750         if (!object->dtime_stack == 32.32) {
    1751             psFree(object);
    1752             exit(EXIT_FAILURE);
    1753         }
    1754         if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    1755             psFree(object);
    1756             exit(EXIT_FAILURE);
    1757         }
    1758         if (!object->good_frac == 32.32) {
    1759             psFree(object);
    1760             exit(EXIT_FAILURE);
    1761         }
    1762         if (!object->fault == -16) {
    1763             psFree(object);
    1764             exit(EXIT_FAILURE);
    1765         }
    1766 
    1767         psFree(object);
    1768     }
    1769 
    1770     {
    1771         detRunRow       *object;
    1772 
    1773         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    );
    1774 
    1775         if (!object) {
    1776             exit(EXIT_FAILURE);
    1777         }
    1778 
    1779         if (!object->det_id == -64) {
    1780             psFree(object);
    1781             exit(EXIT_FAILURE);
    1782         }
    1783         if (!object->iteration == -32) {
    1784             psFree(object);
    1785             exit(EXIT_FAILURE);
    1786         }
    1787         if (strncmp(object->det_type, "a string", MAX_STRING_LENGTH)) {
    1788             psFree(object);
    1789             exit(EXIT_FAILURE);
    1790         }
    1791         if (strncmp(object->mode, "a string", MAX_STRING_LENGTH)) {
    1792             psFree(object);
    1793             exit(EXIT_FAILURE);
    1794         }
    1795         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    1796             psFree(object);
    1797             exit(EXIT_FAILURE);
    1798         }
    1799         if (strncmp(object->filelevel, "a string", MAX_STRING_LENGTH)) {
    1800             psFree(object);
    1801             exit(EXIT_FAILURE);
    1802         }
    1803         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    1804             psFree(object);
    1805             exit(EXIT_FAILURE);
    1806         }
    1807         if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
    1808             psFree(object);
    1809             exit(EXIT_FAILURE);
    1810         }
    1811         if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
    1812             psFree(object);
    1813             exit(EXIT_FAILURE);
    1814         }
    1815         if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
    1816             psFree(object);
    1817             exit(EXIT_FAILURE);
    1818         }
    1819         if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
    1820             psFree(object);
    1821             exit(EXIT_FAILURE);
    1822         }
    1823         if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
    1824             psFree(object);
    1825             exit(EXIT_FAILURE);
    1826         }
    1827         if (!object->airmass_min == 32.32) {
    1828             psFree(object);
    1829             exit(EXIT_FAILURE);
    1830         }
    1831         if (!object->airmass_max == 32.32) {
    1832             psFree(object);
    1833             exit(EXIT_FAILURE);
    1834         }
    1835         if (!object->exp_time_min == 32.32) {
    1836             psFree(object);
    1837             exit(EXIT_FAILURE);
    1838         }
    1839         if (!object->exp_time_max == 32.32) {
    1840             psFree(object);
    1841             exit(EXIT_FAILURE);
    1842         }
    1843         if (!object->ccd_temp_min == 32.32) {
    1844             psFree(object);
    1845             exit(EXIT_FAILURE);
    1846         }
    1847         if (!object->ccd_temp_max == 32.32) {
    1848             psFree(object);
    1849             exit(EXIT_FAILURE);
    1850         }
    1851         if (!object->posang_min == 64.64) {
    1852             psFree(object);
    1853             exit(EXIT_FAILURE);
    1854         }
    1855         if (!object->posang_max == 64.64) {
    1856             psFree(object);
    1857             exit(EXIT_FAILURE);
    1858         }
    1859             psFree(object);
    1860             exit(EXIT_FAILURE);
    1861         }
    1862             psFree(object);
    1863             exit(EXIT_FAILURE);
    1864         }
    1865             psFree(object);
    1866             exit(EXIT_FAILURE);
    1867         }
    1868             psFree(object);
    1869             exit(EXIT_FAILURE);
    1870         }
    1871             psFree(object);
    1872             exit(EXIT_FAILURE);
    1873         }
    1874         if (!object->solang_min == 32.32) {
    1875             psFree(object);
    1876             exit(EXIT_FAILURE);
    1877         }
    1878         if (!object->solang_max == 32.32) {
    1879             psFree(object);
    1880             exit(EXIT_FAILURE);
    1881         }
    1882         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    1883             psFree(object);
    1884             exit(EXIT_FAILURE);
    1885         }
    1886         if (!object->parent == -32) {
    1887             psFree(object);
    1888             exit(EXIT_FAILURE);
    1889         }
    1890 
    1891         psFree(object);
    1892     }
    1893 
    1894     {
    1895         detInputExpRow  *object;
    1896 
    1897         object = detInputExpRowAlloc(-64, -32, -64, true    );
    1898 
    1899         if (!object) {
    1900             exit(EXIT_FAILURE);
    1901         }
    1902 
    1903         if (!object->det_id == -64) {
    1904             psFree(object);
    1905             exit(EXIT_FAILURE);
    1906         }
    1907         if (!object->iteration == -32) {
    1908             psFree(object);
    1909             exit(EXIT_FAILURE);
    1910         }
    1911         if (!object->exp_id == -64) {
    1912             psFree(object);
    1913             exit(EXIT_FAILURE);
    1914         }
    1915         if (!object->include == true) {
    1916             psFree(object);
    1917             exit(EXIT_FAILURE);
    1918         }
    1919 
    1920         psFree(object);
    1921     }
    1922 
    1923     {
    1924         detProcessedImfileRow *object;
    1925 
    1926         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    );
    1927 
    1928         if (!object) {
    1929             exit(EXIT_FAILURE);
    1930         }
    1931 
    1932         if (!object->det_id == -64) {
    1933             psFree(object);
    1934             exit(EXIT_FAILURE);
    1935         }
    1936         if (!object->exp_id == -64) {
    1937             psFree(object);
    1938             exit(EXIT_FAILURE);
    1939         }
    1940         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1941             psFree(object);
    1942             exit(EXIT_FAILURE);
    1943         }
    1944         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1945             psFree(object);
    1946             exit(EXIT_FAILURE);
    1947         }
    1948         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    1949             psFree(object);
    1950             exit(EXIT_FAILURE);
    1951         }
    1952         if (!object->bg == 64.64) {
    1953             psFree(object);
    1954             exit(EXIT_FAILURE);
    1955         }
    1956         if (!object->bg_stdev == 64.64) {
    1957             psFree(object);
    1958             exit(EXIT_FAILURE);
    1959         }
    1960         if (!object->bg_mean_stdev == 64.64) {
    1961             psFree(object);
    1962             exit(EXIT_FAILURE);
    1963         }
    1964         if (!object->fringe_0 == 64.64) {
    1965             psFree(object);
    1966             exit(EXIT_FAILURE);
    1967         }
    1968         if (!object->fringe_1 == 64.64) {
    1969             psFree(object);
    1970             exit(EXIT_FAILURE);
    1971         }
    1972         if (!object->fringe_2 == 64.64) {
    1973             psFree(object);
    1974             exit(EXIT_FAILURE);
    1975         }
    1976         if (!object->user_1 == 64.64) {
    1977             psFree(object);
    1978             exit(EXIT_FAILURE);
    1979         }
    1980         if (!object->user_2 == 64.64) {
    1981             psFree(object);
    1982             exit(EXIT_FAILURE);
    1983         }
    1984         if (!object->user_3 == 64.64) {
    1985             psFree(object);
    1986             exit(EXIT_FAILURE);
    1987         }
    1988         if (!object->user_4 == 64.64) {
    1989             psFree(object);
    1990             exit(EXIT_FAILURE);
    1991         }
    1992         if (!object->user_5 == 64.64) {
    1993             psFree(object);
    1994             exit(EXIT_FAILURE);
    1995         }
    1996         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    1997             psFree(object);
    1998             exit(EXIT_FAILURE);
    1999         }
    2000         if (!object->fault == -16) {
    2001             psFree(object);
    2002             exit(EXIT_FAILURE);
    2003         }
    2004 
    2005         psFree(object);
    2006     }
    2007 
    2008     {
    2009         detProcessedExpRow *object;
    2010 
    2011         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    );
    2012 
    2013         if (!object) {
    2014             exit(EXIT_FAILURE);
    2015         }
    2016 
    2017         if (!object->det_id == -64) {
    2018             psFree(object);
    2019             exit(EXIT_FAILURE);
    2020         }
    2021         if (!object->exp_id == -64) {
    2022             psFree(object);
    2023             exit(EXIT_FAILURE);
    2024         }
    2025         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2026             psFree(object);
    2027             exit(EXIT_FAILURE);
    2028         }
    2029         if (!object->bg == 64.64) {
    2030             psFree(object);
    2031             exit(EXIT_FAILURE);
    2032         }
    2033         if (!object->bg_stdev == 64.64) {
    2034             psFree(object);
    2035             exit(EXIT_FAILURE);
    2036         }
    2037         if (!object->bg_mean_stdev == 64.64) {
    2038             psFree(object);
    2039             exit(EXIT_FAILURE);
    2040         }
    2041         if (!object->fringe_0 == 64.64) {
    2042             psFree(object);
    2043             exit(EXIT_FAILURE);
    2044         }
    2045         if (!object->fringe_1 == 64.64) {
    2046             psFree(object);
    2047             exit(EXIT_FAILURE);
    2048         }
    2049         if (!object->fringe_2 == 64.64) {
    2050             psFree(object);
    2051             exit(EXIT_FAILURE);
    2052         }
    2053         if (!object->user_1 == 64.64) {
    2054             psFree(object);
    2055             exit(EXIT_FAILURE);
    2056         }
    2057         if (!object->user_2 == 64.64) {
    2058             psFree(object);
    2059             exit(EXIT_FAILURE);
    2060         }
    2061         if (!object->user_3 == 64.64) {
    2062             psFree(object);
    2063             exit(EXIT_FAILURE);
    2064         }
    2065         if (!object->user_4 == 64.64) {
    2066             psFree(object);
    2067             exit(EXIT_FAILURE);
    2068         }
    2069         if (!object->user_5 == 64.64) {
    2070             psFree(object);
    2071             exit(EXIT_FAILURE);
    2072         }
    2073         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2074             psFree(object);
    2075             exit(EXIT_FAILURE);
    2076         }
    2077         if (!object->fault == -16) {
    2078             psFree(object);
    2079             exit(EXIT_FAILURE);
    2080         }
    2081 
    2082         psFree(object);
    2083     }
    2084 
    2085     {
    2086         detStackedImfileRow *object;
    2087 
    2088         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    );
    2089 
    2090         if (!object) {
    2091             exit(EXIT_FAILURE);
    2092         }
    2093 
    2094         if (!object->det_id == -64) {
    2095             psFree(object);
    2096             exit(EXIT_FAILURE);
    2097         }
    2098         if (!object->iteration == -32) {
    2099             psFree(object);
    2100             exit(EXIT_FAILURE);
    2101         }
    2102         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2103             psFree(object);
    2104             exit(EXIT_FAILURE);
    2105         }
    2106         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2107             psFree(object);
    2108             exit(EXIT_FAILURE);
    2109         }
    2110         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2111             psFree(object);
    2112             exit(EXIT_FAILURE);
    2113         }
    2114         if (!object->bg == 64.64) {
    2115             psFree(object);
    2116             exit(EXIT_FAILURE);
    2117         }
    2118         if (!object->bg_stdev == 64.64) {
    2119             psFree(object);
    2120             exit(EXIT_FAILURE);
    2121         }
    2122         if (!object->bg_mean_stdev == 64.64) {
    2123             psFree(object);
    2124             exit(EXIT_FAILURE);
    2125         }
    2126         if (!object->user_1 == 64.64) {
    2127             psFree(object);
    2128             exit(EXIT_FAILURE);
    2129         }
    2130         if (!object->user_2 == 64.64) {
    2131             psFree(object);
    2132             exit(EXIT_FAILURE);
    2133         }
    2134         if (!object->user_3 == 64.64) {
    2135             psFree(object);
    2136             exit(EXIT_FAILURE);
    2137         }
    2138         if (!object->user_4 == 64.64) {
    2139             psFree(object);
    2140             exit(EXIT_FAILURE);
    2141         }
    2142         if (!object->user_5 == 64.64) {
    2143             psFree(object);
    2144             exit(EXIT_FAILURE);
    2145         }
    2146         if (!object->fault == -16) {
    2147             psFree(object);
    2148             exit(EXIT_FAILURE);
    2149         }
    2150 
    2151         psFree(object);
    2152     }
    2153 
    2154     {
    2155         detNormalizedStatImfileRow *object;
    2156 
    2157         object = detNormalizedStatImfileRowAlloc(-64, -32, "a string", 32.32, -16    );
    2158 
    2159         if (!object) {
    2160             exit(EXIT_FAILURE);
    2161         }
    2162 
    2163         if (!object->det_id == -64) {
    2164             psFree(object);
    2165             exit(EXIT_FAILURE);
    2166         }
    2167         if (!object->iteration == -32) {
    2168             psFree(object);
    2169             exit(EXIT_FAILURE);
    2170         }
    2171         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2172             psFree(object);
    2173             exit(EXIT_FAILURE);
    2174         }
    2175         if (!object->norm == 32.32) {
    2176             psFree(object);
    2177             exit(EXIT_FAILURE);
    2178         }
    2179         if (!object->fault == -16) {
    2180             psFree(object);
    2181             exit(EXIT_FAILURE);
    2182         }
    2183 
    2184         psFree(object);
    2185     }
    2186 
    2187     {
    2188         detNormalizedImfileRow *object;
    2189 
    2190         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    );
    2191 
    2192         if (!object) {
    2193             exit(EXIT_FAILURE);
    2194         }
    2195 
    2196         if (!object->det_id == -64) {
    2197             psFree(object);
    2198             exit(EXIT_FAILURE);
    2199         }
    2200         if (!object->iteration == -32) {
    2201             psFree(object);
    2202             exit(EXIT_FAILURE);
    2203         }
    2204         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2205             psFree(object);
    2206             exit(EXIT_FAILURE);
    2207         }
    2208         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2209             psFree(object);
    2210             exit(EXIT_FAILURE);
    2211         }
    2212         if (!object->bg == 64.64) {
    2213             psFree(object);
    2214             exit(EXIT_FAILURE);
    2215         }
    2216         if (!object->bg_stdev == 64.64) {
    2217             psFree(object);
    2218             exit(EXIT_FAILURE);
    2219         }
    2220         if (!object->bg_mean_stdev == 64.64) {
    2221             psFree(object);
    2222             exit(EXIT_FAILURE);
    2223         }
    2224         if (!object->user_1 == 64.64) {
    2225             psFree(object);
    2226             exit(EXIT_FAILURE);
    2227         }
    2228         if (!object->user_2 == 64.64) {
    2229             psFree(object);
    2230             exit(EXIT_FAILURE);
    2231         }
    2232         if (!object->user_3 == 64.64) {
    2233             psFree(object);
    2234             exit(EXIT_FAILURE);
    2235         }
    2236         if (!object->user_4 == 64.64) {
    2237             psFree(object);
    2238             exit(EXIT_FAILURE);
    2239         }
    2240         if (!object->user_5 == 64.64) {
    2241             psFree(object);
    2242             exit(EXIT_FAILURE);
    2243         }
    2244         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2245             psFree(object);
    2246             exit(EXIT_FAILURE);
    2247         }
    2248         if (!object->fault == -16) {
    2249             psFree(object);
    2250             exit(EXIT_FAILURE);
    2251         }
    2252 
    2253         psFree(object);
    2254     }
    2255 
    2256     {
    2257         detNormalizedExpRow *object;
    2258 
    2259         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    );
    2260 
    2261         if (!object) {
    2262             exit(EXIT_FAILURE);
    2263         }
    2264 
    2265         if (!object->det_id == -64) {
    2266             psFree(object);
    2267             exit(EXIT_FAILURE);
    2268         }
    2269         if (!object->iteration == -32) {
    2270             psFree(object);
    2271             exit(EXIT_FAILURE);
    2272         }
    2273         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2274             psFree(object);
    2275             exit(EXIT_FAILURE);
    2276         }
    2277         if (!object->bg == 64.64) {
    2278             psFree(object);
    2279             exit(EXIT_FAILURE);
    2280         }
    2281         if (!object->bg_stdev == 64.64) {
    2282             psFree(object);
    2283             exit(EXIT_FAILURE);
    2284         }
    2285         if (!object->bg_mean_stdev == 64.64) {
    2286             psFree(object);
    2287             exit(EXIT_FAILURE);
    2288         }
    2289         if (!object->user_1 == 64.64) {
    2290             psFree(object);
    2291             exit(EXIT_FAILURE);
    2292         }
    2293         if (!object->user_2 == 64.64) {
    2294             psFree(object);
    2295             exit(EXIT_FAILURE);
    2296         }
    2297         if (!object->user_3 == 64.64) {
    2298             psFree(object);
    2299             exit(EXIT_FAILURE);
    2300         }
    2301         if (!object->user_4 == 64.64) {
    2302             psFree(object);
    2303             exit(EXIT_FAILURE);
    2304         }
    2305         if (!object->user_5 == 64.64) {
    2306             psFree(object);
    2307             exit(EXIT_FAILURE);
    2308         }
    2309         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2310             psFree(object);
    2311             exit(EXIT_FAILURE);
    2312         }
    2313         if (!object->fault == -16) {
    2314             psFree(object);
    2315             exit(EXIT_FAILURE);
    2316         }
    2317 
    2318         psFree(object);
    2319     }
    2320 
    2321     {
    2322         detResidImfileRow *object;
    2323 
    2324         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    );
    2325 
    2326         if (!object) {
    2327             exit(EXIT_FAILURE);
    2328         }
    2329 
    2330         if (!object->det_id == -64) {
    2331             psFree(object);
    2332             exit(EXIT_FAILURE);
    2333         }
    2334         if (!object->iteration == -32) {
    2335             psFree(object);
    2336             exit(EXIT_FAILURE);
    2337         }
    2338         if (!object->exp_id == -64) {
    2339             psFree(object);
    2340             exit(EXIT_FAILURE);
    2341         }
    2342         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2343             psFree(object);
    2344             exit(EXIT_FAILURE);
    2345         }
    2346         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2347             psFree(object);
    2348             exit(EXIT_FAILURE);
    2349         }
    2350         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2351             psFree(object);
    2352             exit(EXIT_FAILURE);
    2353         }
    2354         if (!object->bg == 64.64) {
    2355             psFree(object);
    2356             exit(EXIT_FAILURE);
    2357         }
    2358         if (!object->bg_stdev == 64.64) {
    2359             psFree(object);
    2360             exit(EXIT_FAILURE);
    2361         }
    2362         if (!object->bg_mean_stdev == 64.64) {
    2363             psFree(object);
    2364             exit(EXIT_FAILURE);
    2365         }
    2366         if (!object->bg_skewness == 64.64) {
    2367             psFree(object);
    2368             exit(EXIT_FAILURE);
    2369         }
    2370         if (!object->bg_kurtosis == 64.64) {
    2371             psFree(object);
    2372             exit(EXIT_FAILURE);
    2373         }
    2374         if (!object->bin_stdev == 64.64) {
    2375             psFree(object);
    2376             exit(EXIT_FAILURE);
    2377         }
    2378         if (!object->fringe_0 == 64.64) {
    2379             psFree(object);
    2380             exit(EXIT_FAILURE);
    2381         }
    2382         if (!object->fringe_1 == 64.64) {
    2383             psFree(object);
    2384             exit(EXIT_FAILURE);
    2385         }
    2386         if (!object->fringe_2 == 64.64) {
    2387             psFree(object);
    2388             exit(EXIT_FAILURE);
    2389         }
    2390         if (!object->fringe_resid_0 == 64.64) {
    2391             psFree(object);
    2392             exit(EXIT_FAILURE);
    2393         }
    2394         if (!object->fringe_resid_1 == 64.64) {
    2395             psFree(object);
    2396             exit(EXIT_FAILURE);
    2397         }
    2398         if (!object->fringe_resid_2 == 64.64) {
    2399             psFree(object);
    2400             exit(EXIT_FAILURE);
    2401         }
    2402         if (!object->user_1 == 64.64) {
    2403             psFree(object);
    2404             exit(EXIT_FAILURE);
    2405         }
    2406         if (!object->user_2 == 64.64) {
    2407             psFree(object);
    2408             exit(EXIT_FAILURE);
    2409         }
    2410         if (!object->user_3 == 64.64) {
    2411             psFree(object);
    2412             exit(EXIT_FAILURE);
    2413         }
    2414         if (!object->user_4 == 64.64) {
    2415             psFree(object);
    2416             exit(EXIT_FAILURE);
    2417         }
    2418         if (!object->user_5 == 64.64) {
    2419             psFree(object);
    2420             exit(EXIT_FAILURE);
    2421         }
    2422         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2423             psFree(object);
    2424             exit(EXIT_FAILURE);
    2425         }
    2426         if (!object->fault == -16) {
    2427             psFree(object);
    2428             exit(EXIT_FAILURE);
    2429         }
    2430 
    2431         psFree(object);
    2432     }
    2433 
    2434     {
    2435         detResidExpRow  *object;
    2436 
    2437         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    );
    2438 
    2439         if (!object) {
    2440             exit(EXIT_FAILURE);
    2441         }
    2442 
    2443         if (!object->det_id == -64) {
    2444             psFree(object);
    2445             exit(EXIT_FAILURE);
    2446         }
    2447         if (!object->iteration == -32) {
    2448             psFree(object);
    2449             exit(EXIT_FAILURE);
    2450         }
    2451         if (!object->exp_id == -64) {
    2452             psFree(object);
    2453             exit(EXIT_FAILURE);
    2454         }
    2455         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2456             psFree(object);
    2457             exit(EXIT_FAILURE);
    2458         }
    2459         if (!object->bg == 64.64) {
    2460             psFree(object);
    2461             exit(EXIT_FAILURE);
    2462         }
    2463         if (!object->bg_stdev == 64.64) {
    2464             psFree(object);
    2465             exit(EXIT_FAILURE);
    2466         }
    2467         if (!object->bg_mean_stdev == 64.64) {
    2468             psFree(object);
    2469             exit(EXIT_FAILURE);
    2470         }
    2471         if (!object->bg_skewness == 64.64) {
    2472             psFree(object);
    2473             exit(EXIT_FAILURE);
    2474         }
    2475         if (!object->bg_kurtosis == 64.64) {
    2476             psFree(object);
    2477             exit(EXIT_FAILURE);
    2478         }
    2479         if (!object->bin_stdev == 64.64) {
    2480             psFree(object);
    2481             exit(EXIT_FAILURE);
    2482         }
    2483         if (!object->fringe_0 == 64.64) {
    2484             psFree(object);
    2485             exit(EXIT_FAILURE);
    2486         }
    2487         if (!object->fringe_1 == 64.64) {
    2488             psFree(object);
    2489             exit(EXIT_FAILURE);
    2490         }
    2491         if (!object->fringe_2 == 64.64) {
    2492             psFree(object);
    2493             exit(EXIT_FAILURE);
    2494         }
    2495         if (!object->fringe_resid_0 == 64.64) {
    2496             psFree(object);
    2497             exit(EXIT_FAILURE);
    2498         }
    2499         if (!object->fringe_resid_1 == 64.64) {
    2500             psFree(object);
    2501             exit(EXIT_FAILURE);
    2502         }
    2503         if (!object->fringe_resid_2 == 64.64) {
    2504             psFree(object);
    2505             exit(EXIT_FAILURE);
    2506         }
    2507         if (!object->user_1 == 64.64) {
    2508             psFree(object);
    2509             exit(EXIT_FAILURE);
    2510         }
    2511         if (!object->user_2 == 64.64) {
    2512             psFree(object);
    2513             exit(EXIT_FAILURE);
    2514         }
    2515         if (!object->user_3 == 64.64) {
    2516             psFree(object);
    2517             exit(EXIT_FAILURE);
    2518         }
    2519         if (!object->user_4 == 64.64) {
    2520             psFree(object);
    2521             exit(EXIT_FAILURE);
    2522         }
    2523         if (!object->user_5 == 64.64) {
    2524             psFree(object);
    2525             exit(EXIT_FAILURE);
    2526         }
    2527         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2528             psFree(object);
    2529             exit(EXIT_FAILURE);
    2530         }
    2531         if (!object->accept == true) {
    2532             psFree(object);
    2533             exit(EXIT_FAILURE);
    2534         }
    2535         if (!object->fault == -16) {
    2536             psFree(object);
    2537             exit(EXIT_FAILURE);
    2538         }
    2539 
    2540         psFree(object);
    2541     }
    2542 
    2543     {
    2544         detRunSummaryRow *object;
    2545 
    2546         object = detRunSummaryRowAlloc(-64, -32, 64.64, 64.64, 64.64, true, -16    );
    2547 
    2548         if (!object) {
    2549             exit(EXIT_FAILURE);
    2550         }
    2551 
    2552         if (!object->det_id == -64) {
    2553             psFree(object);
    2554             exit(EXIT_FAILURE);
    2555         }
    2556         if (!object->iteration == -32) {
    2557             psFree(object);
    2558             exit(EXIT_FAILURE);
    2559         }
    2560         if (!object->bg == 64.64) {
    2561             psFree(object);
    2562             exit(EXIT_FAILURE);
    2563         }
    2564         if (!object->bg_stdev == 64.64) {
    2565             psFree(object);
    2566             exit(EXIT_FAILURE);
    2567         }
    2568         if (!object->bg_mean_stdev == 64.64) {
    2569             psFree(object);
    2570             exit(EXIT_FAILURE);
    2571         }
    2572         if (!object->accept == true) {
    2573             psFree(object);
    2574             exit(EXIT_FAILURE);
    2575         }
    2576         if (!object->fault == -16) {
    2577             psFree(object);
    2578             exit(EXIT_FAILURE);
    2579         }
    2580 
    2581         psFree(object);
    2582     }
    2583 
    2584     {
    2585         detRegisteredImfileRow *object;
    2586 
    2587         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    );
    2588 
    2589         if (!object) {
    2590             exit(EXIT_FAILURE);
    2591         }
    2592 
    2593         if (!object->det_id == -64) {
    2594             psFree(object);
    2595             exit(EXIT_FAILURE);
    2596         }
    2597         if (!object->iteration == -32) {
    2598             psFree(object);
    2599             exit(EXIT_FAILURE);
    2600         }
    2601         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2602             psFree(object);
    2603             exit(EXIT_FAILURE);
    2604         }
    2605         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2606             psFree(object);
    2607             exit(EXIT_FAILURE);
    2608         }
    2609         if (!object->bg == 64.64) {
    2610             psFree(object);
    2611             exit(EXIT_FAILURE);
    2612         }
    2613         if (!object->bg_stdev == 64.64) {
    2614             psFree(object);
    2615             exit(EXIT_FAILURE);
    2616         }
    2617         if (!object->bg_mean_stdev == 64.64) {
    2618             psFree(object);
    2619             exit(EXIT_FAILURE);
    2620         }
    2621         if (!object->user_1 == 64.64) {
    2622             psFree(object);
    2623             exit(EXIT_FAILURE);
    2624         }
    2625         if (!object->user_2 == 64.64) {
    2626             psFree(object);
    2627             exit(EXIT_FAILURE);
    2628         }
    2629         if (!object->user_3 == 64.64) {
    2630             psFree(object);
    2631             exit(EXIT_FAILURE);
    2632         }
    2633         if (!object->user_4 == 64.64) {
    2634             psFree(object);
    2635             exit(EXIT_FAILURE);
    2636         }
    2637         if (!object->user_5 == 64.64) {
    2638             psFree(object);
    2639             exit(EXIT_FAILURE);
    2640         }
    2641         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2642             psFree(object);
    2643             exit(EXIT_FAILURE);
    2644         }
    2645         if (!object->fault == -16) {
    2646             psFree(object);
    2647             exit(EXIT_FAILURE);
    2648         }
    2649 
    2650         psFree(object);
    2651     }
    2652 
    2653     {
    2654         detCorrectedExpRow *object;
    2655 
    2656         object = detCorrectedExpRowAlloc(-64, -64, "a string", -64, "a string", "a string", "a string", -16    );
    2657 
    2658         if (!object) {
    2659             exit(EXIT_FAILURE);
    2660         }
    2661 
    2662         if (!object->det_id == -64) {
    2663             psFree(object);
    2664             exit(EXIT_FAILURE);
    2665         }
    2666         if (!object->exp_id == -64) {
    2667             psFree(object);
    2668             exit(EXIT_FAILURE);
    2669         }
    2670         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2671             psFree(object);
    2672             exit(EXIT_FAILURE);
    2673         }
    2674         if (!object->corr_id == -64) {
    2675             psFree(object);
    2676             exit(EXIT_FAILURE);
    2677         }
    2678         if (strncmp(object->corr_type, "a string", MAX_STRING_LENGTH)) {
    2679             psFree(object);
    2680             exit(EXIT_FAILURE);
    2681         }
    2682         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    2683             psFree(object);
    2684             exit(EXIT_FAILURE);
    2685         }
    2686         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2687             psFree(object);
    2688             exit(EXIT_FAILURE);
    2689         }
    2690         if (!object->fault == -16) {
    2691             psFree(object);
    2692             exit(EXIT_FAILURE);
    2693         }
    2694 
    2695         psFree(object);
    2696     }
    2697 
    2698     {
    2699         detCorrectedImfileRow *object;
    2700 
    2701         object = detCorrectedImfileRowAlloc(-64, -64, "a string", "a string", "a string", -16    );
    2702 
    2703         if (!object) {
    2704             exit(EXIT_FAILURE);
    2705         }
    2706 
    2707         if (!object->det_id == -64) {
    2708             psFree(object);
    2709             exit(EXIT_FAILURE);
    2710         }
    2711         if (!object->exp_id == -64) {
    2712             psFree(object);
    2713             exit(EXIT_FAILURE);
    2714         }
    2715         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    2716             psFree(object);
    2717             exit(EXIT_FAILURE);
    2718         }
    2719         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2720             psFree(object);
    2721             exit(EXIT_FAILURE);
    2722         }
    2723         if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
    2724             psFree(object);
    2725             exit(EXIT_FAILURE);
    2726         }
    2727         if (!object->fault == -16) {
    2728             psFree(object);
    2729             exit(EXIT_FAILURE);
    2730         }
    2731 
    2732         psFree(object);
    2733     }
    2734 
    2735     {
    2736         magicRunRow     *object;
    2737 
    2738         object = magicRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", -16    );
    2739 
    2740         if (!object) {
    2741             exit(EXIT_FAILURE);
    2742         }
    2743 
    2744         if (!object->magic_id == -64) {
    2745             psFree(object);
    2746             exit(EXIT_FAILURE);
    2747         }
    2748         if (!object->exp_id == -64) {
    2749             psFree(object);
    2750             exit(EXIT_FAILURE);
    2751         }
    2752         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    2753             psFree(object);
    2754             exit(EXIT_FAILURE);
    2755         }
    2756         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    2757             psFree(object);
    2758             exit(EXIT_FAILURE);
    2759         }
    2760         if (strncmp(object->workdir_state, "a string", MAX_STRING_LENGTH)) {
    2761             psFree(object);
    2762             exit(EXIT_FAILURE);
    2763         }
    2764         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    2765             psFree(object);
    2766             exit(EXIT_FAILURE);
    2767         }
    2768         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    2769             psFree(object);
    2770             exit(EXIT_FAILURE);
    2771         }
    2772             psFree(object);
    2773             exit(EXIT_FAILURE);
    2774         }
    2775         if (!object->fault == -16) {
    2776             psFree(object);
    2777             exit(EXIT_FAILURE);
    2778         }
    2779 
    2780         psFree(object);
    2781     }
    2782 
    2783     {
    2784         magicInputSkyfileRow *object;
    2785 
    2786         object = magicInputSkyfileRowAlloc(-64, -64, "a string"    );
    2787 
    2788         if (!object) {
    2789             exit(EXIT_FAILURE);
    2790         }
    2791 
    2792         if (!object->magic_id == -64) {
    2793             psFree(object);
    2794             exit(EXIT_FAILURE);
    2795         }
    2796         if (!object->diff_id == -64) {
    2797             psFree(object);
    2798             exit(EXIT_FAILURE);
    2799         }
    2800         if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
    2801             psFree(object);
    2802             exit(EXIT_FAILURE);
    2803         }
    2804 
    2805         psFree(object);
    2806     }
    2807 
    2808     {
    2809         magicTreeRow    *object;
    2810 
    2811         object = magicTreeRowAlloc(-64, "a string", "a string"    );
    2812 
    2813         if (!object) {
    2814             exit(EXIT_FAILURE);
    2815         }
    2816 
    2817         if (!object->magic_id == -64) {
    2818             psFree(object);
    2819             exit(EXIT_FAILURE);
    2820         }
    2821         if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
    2822             psFree(object);
    2823             exit(EXIT_FAILURE);
    2824         }
    2825         if (strncmp(object->dep, "a string", MAX_STRING_LENGTH)) {
    2826             psFree(object);
    2827             exit(EXIT_FAILURE);
    2828         }
    2829 
    2830         psFree(object);
    2831     }
    2832 
    2833     {
    2834         magicNodeResultRow *object;
    2835 
    2836         object = magicNodeResultRowAlloc(-64, "a string", "a string", -16    );
    2837 
    2838         if (!object) {
    2839             exit(EXIT_FAILURE);
    2840         }
    2841 
    2842         if (!object->magic_id == -64) {
    2843             psFree(object);
    2844             exit(EXIT_FAILURE);
    2845         }
    2846         if (strncmp(object->node, "a string", MAX_STRING_LENGTH)) {
    2847             psFree(object);
    2848             exit(EXIT_FAILURE);
    2849         }
    2850         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2851             psFree(object);
    2852             exit(EXIT_FAILURE);
    2853         }
    2854         if (!object->fault == -16) {
    2855             psFree(object);
    2856             exit(EXIT_FAILURE);
    2857         }
    2858 
    2859         psFree(object);
    2860     }
    2861 
    2862     {
    2863         magicMaskRow    *object;
    2864 
    2865         object = magicMaskRowAlloc(-64, "a string", -32, -16    );
    2866 
    2867         if (!object) {
    2868             exit(EXIT_FAILURE);
    2869         }
    2870 
    2871         if (!object->magic_id == -64) {
    2872             psFree(object);
    2873             exit(EXIT_FAILURE);
    2874         }
    2875         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    2876             psFree(object);
    2877             exit(EXIT_FAILURE);
    2878         }
    2879         if (!object->streaks == -32) {
    2880             psFree(object);
    2881             exit(EXIT_FAILURE);
    2882         }
    2883         if (!object->fault == -16) {
    2884             psFree(object);
    2885             exit(EXIT_FAILURE);
    2886         }
    2887 
    2888         psFree(object);
    2889     }
    2890 
    2891     {
    2892         calDBRow        *object;
    2893 
    2894         object = calDBRowAlloc(-64, "a string", "a string"    );
    2895 
    2896         if (!object) {
    2897             exit(EXIT_FAILURE);
    2898         }
    2899 
    2900         if (!object->cal_id == -64) {
    2901             psFree(object);
    2902             exit(EXIT_FAILURE);
    2903         }
    2904         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    2905             psFree(object);
    2906             exit(EXIT_FAILURE);
    2907         }
    2908         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    2909             psFree(object);
    2910             exit(EXIT_FAILURE);
    2911         }
    2912 
    2913         psFree(object);
    2914     }
    2915 
    2916     {
    2917         calRunRow       *object;
    2918 
    2919         object = calRunRowAlloc(-64, "a string", "a string", "a string"    );
    2920 
    2921         if (!object) {
    2922             exit(EXIT_FAILURE);
    2923         }
    2924 
    2925         if (!object->cal_id == -64) {
    2926             psFree(object);
    2927             exit(EXIT_FAILURE);
    2928         }
    2929         if (strncmp(object->region, "a string", MAX_STRING_LENGTH)) {
    2930             psFree(object);
    2931             exit(EXIT_FAILURE);
    2932         }
    2933         if (strncmp(object->last_step, "a string", MAX_STRING_LENGTH)) {
    2934             psFree(object);
    2935             exit(EXIT_FAILURE);
    2936         }
    2937         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    2938             psFree(object);
    2939             exit(EXIT_FAILURE);
    2940         }
    2941 
    2942         psFree(object);
    2943     }
    2944 
    2945     {
    2946         flatcorrRunRow  *object;
    2947 
    2948         object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string"    );
    2949 
    2950         if (!object) {
    2951             exit(EXIT_FAILURE);
    2952         }
    2953 
    2954         if (!object->corr_id == -64) {
    2955             psFree(object);
    2956             exit(EXIT_FAILURE);
    2957         }
    2958         if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
    2959             psFree(object);
    2960             exit(EXIT_FAILURE);
    2961         }
    2962         if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
    2963             psFree(object);
    2964             exit(EXIT_FAILURE);
    2965         }
    2966         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    2967             psFree(object);
    2968             exit(EXIT_FAILURE);
    2969         }
    2970         if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
    2971             psFree(object);
    2972             exit(EXIT_FAILURE);
    2973         }
    2974         if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
    2975             psFree(object);
    2976             exit(EXIT_FAILURE);
    2977         }
    2978         if (strncmp(object->stats, "a string", MAX_STRING_LENGTH)) {
    2979             psFree(object);
    2980             exit(EXIT_FAILURE);
    2981         }
    2982         if (strncmp(object->region, "a string", MAX_STRING_LENGTH)) {
    2983             psFree(object);
    2984             exit(EXIT_FAILURE);
    2985         }
    2986 
    2987         psFree(object);
    2988     }
    2989 
    2990     {
    2991         flatcorrExpRow  *object;
    2992 
    2993         object = flatcorrExpRowAlloc(-64, -64    );
    2994 
    2995         if (!object) {
    2996             exit(EXIT_FAILURE);
    2997         }
    2998 
    2999         if (!object->corr_id == -64) {
    3000             psFree(object);
    3001             exit(EXIT_FAILURE);
    3002         }
    3003         if (!object->chip_id == -64) {
    3004             psFree(object);
    3005             exit(EXIT_FAILURE);
    3006         }
    3007 
    3008         psFree(object);
    3009     }
    3010 
    3011     {
    3012         pstampDataStoreRow *object;
    3013 
    3014         object = pstampDataStoreRowAlloc(-64, "a string", "a string", "a string", "a string"    );
    3015 
    3016         if (!object) {
    3017             exit(EXIT_FAILURE);
    3018         }
    3019 
    3020         if (!object->ds_id == -64) {
    3021             psFree(object);
    3022             exit(EXIT_FAILURE);
    3023         }
    3024         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    3025             psFree(object);
    3026             exit(EXIT_FAILURE);
    3027         }
    3028         if (strncmp(object->lastFileset, "a string", MAX_STRING_LENGTH)) {
    3029             psFree(object);
    3030             exit(EXIT_FAILURE);
    3031         }
    3032         if (strncmp(object->outProduct, "a string", MAX_STRING_LENGTH)) {
    3033             psFree(object);
    3034             exit(EXIT_FAILURE);
    3035         }
    3036         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    3037             psFree(object);
    3038             exit(EXIT_FAILURE);
    3039         }
    3040 
    3041         psFree(object);
    3042     }
    3043 
    3044     {
    3045         pstampRequestRow *object;
    3046 
    3047         object = pstampRequestRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", -32    );
    3048 
    3049         if (!object) {
    3050             exit(EXIT_FAILURE);
    3051         }
    3052 
    3053         if (!object->req_id == -64) {
    3054             psFree(object);
    3055             exit(EXIT_FAILURE);
    3056         }
    3057         if (!object->ds_id == -64) {
    3058             psFree(object);
    3059             exit(EXIT_FAILURE);
    3060         }
    3061         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    3062             psFree(object);
    3063             exit(EXIT_FAILURE);
    3064         }
    3065         if (strncmp(object->name, "a string", MAX_STRING_LENGTH)) {
    3066             psFree(object);
    3067             exit(EXIT_FAILURE);
    3068         }
    3069         if (strncmp(object->reqType, "a string", MAX_STRING_LENGTH)) {
    3070             psFree(object);
    3071             exit(EXIT_FAILURE);
    3072         }
    3073         if (strncmp(object->outProduct, "a string", MAX_STRING_LENGTH)) {
    3074             psFree(object);
    3075             exit(EXIT_FAILURE);
    3076         }
    3077         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    3078             psFree(object);
    3079             exit(EXIT_FAILURE);
    3080         }
    3081         if (!object->fault == -32) {
    3082             psFree(object);
    3083             exit(EXIT_FAILURE);
    3084         }
    3085 
    3086         psFree(object);
    3087     }
    3088 
    3089     {
    3090         pstampJobRow    *object;
    3091 
    3092         object = pstampJobRowAlloc(-64, -64, "a string", "a string", "a string", -32, "a string", "a string", "a string"    );
    3093 
    3094         if (!object) {
    3095             exit(EXIT_FAILURE);
    3096         }
    3097 
    3098         if (!object->job_id == -64) {
    3099             psFree(object);
    3100             exit(EXIT_FAILURE);
    3101         }
    3102         if (!object->req_id == -64) {
    3103             psFree(object);
    3104             exit(EXIT_FAILURE);
    3105         }
    3106         if (strncmp(object->rownum, "a string", MAX_STRING_LENGTH)) {
    3107             psFree(object);
    3108             exit(EXIT_FAILURE);
    3109         }
    3110         if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
    3111             psFree(object);
    3112             exit(EXIT_FAILURE);
    3113         }
    3114         if (strncmp(object->jobType, "a string", MAX_STRING_LENGTH)) {
    3115             psFree(object);
    3116             exit(EXIT_FAILURE);
    3117         }
    3118         if (!object->fault == -32) {
    3119             psFree(object);
    3120             exit(EXIT_FAILURE);
    3121         }
    3122         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    31233617            psFree(object);
    31243618            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/createtable.c

    r18595 r20205  
    778778        }
    779779
    780         if(!flatcorrExpCreateTable(dbh)) {
     780        if(!flatcorrChipLinkCreateTable(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(!flatcorrCamLinkCreateTable(dbh)) {
    781796            exit(EXIT_FAILURE);
    782797        }
     
    794809
    795810        if(!pstampDataStoreCreateTable(dbh)) {
     811            exit(EXIT_FAILURE);
     812        }
     813
     814        psDBCleanup(dbh);
     815    }
     816
     817    {
     818        psDB            *dbh;
     819
     820        dbh = psDBInit("localhost", "test", NULL, "test");
     821        if (!dbh) {
     822            exit(EXIT_FAILURE);
     823        }
     824
     825        if(!pstampProjectCreateTable(dbh)) {
    796826            exit(EXIT_FAILURE);
    797827        }
  • trunk/ippdb/tests/dbcleanup.c

    r18595 r20205  
    6262    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS calRun");
    6363    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS flatcorrRun");
    64     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS flatcorrExp");
     64    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS flatcorrChipLink");
     65    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS flatcorrCamLink");
    6566    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampDataStore");
     67    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampProject");
    6668    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampRequest");
    6769    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampJob");
  • trunk/ippdb/tests/dbsetup.c

    r18595 r20205  
    166166    flatcorrRunCreateTable(dbh);
    167167
    168     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS flatcorrExp");
    169     flatcorrExpCreateTable(dbh);
     168    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS flatcorrChipLink");
     169    flatcorrChipLinkCreateTable(dbh);
     170
     171    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS flatcorrCamLink");
     172    flatcorrCamLinkCreateTable(dbh);
    170173
    171174    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampDataStore");
    172175    pstampDataStoreCreateTable(dbh);
     176
     177    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampProject");
     178    pstampProjectCreateTable(dbh);
    173179
    174180    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS pstampRequest");
  • trunk/ippdb/tests/droptable.c

    r18595 r20205  
    778778        }
    779779
    780         if (!flatcorrExpDropTable(dbh)) {
     780        if (!flatcorrChipLinkDropTable(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 (!flatcorrCamLinkDropTable(dbh)) {
    781796            exit(EXIT_FAILURE);
    782797        }
     
    794809
    795810        if (!pstampDataStoreDropTable(dbh)) {
     811            exit(EXIT_FAILURE);
     812        }
     813
     814        psDBCleanup(dbh);
     815    }
     816
     817    {
     818        psDB            *dbh;
     819
     820        dbh = psDBInit("localhost", "test", NULL, "test");
     821        if (!dbh) {
     822            exit(EXIT_FAILURE);
     823        }
     824
     825        if (!pstampProjectDropTable(dbh)) {
    796826            exit(EXIT_FAILURE);
    797827        }
  • trunk/ippdb/tests/insert.c

    r18796 r20205  
    118118        }
    119119
    120         if (!rawExpInsert(dbh, -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, "a string", -16, "0001-01-01T00:00:00Z")) {
    121             exit(EXIT_FAILURE);
    122         }
    123 
    124         psDBCleanup(dbh);
    125     }
    126 
    127     {
    128         psDB            *dbh;
    129 
    130         dbh = psDBInit("localhost", "test", NULL, "test");
    131         if (!dbh) {
    132             exit(EXIT_FAILURE);
    133         }
    134 
    135         if (!rawImfileInsert(dbh, -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", "a string", -16, "0001-01-01T00:00:00Z")) {
     120        if (!rawExpInsert(dbh, -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", "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, 32.32, 32.32, 32.32, 32.32, "a string", -16, "0001-01-01T00:00:00Z")) {
     121            exit(EXIT_FAILURE);
     122        }
     123
     124        psDBCleanup(dbh);
     125    }
     126
     127    {
     128        psDB            *dbh;
     129
     130        dbh = psDBInit("localhost", "test", NULL, "test");
     131        if (!dbh) {
     132            exit(EXIT_FAILURE);
     133        }
     134
     135        if (!rawImfileInsert(dbh, -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", 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, 32.32, 32.32, 32.32, 32.32, "a string", -16, "0001-01-01T00:00:00Z")) {
    136136            exit(EXIT_FAILURE);
    137137        }
     
    178178        }
    179179
    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)) {
     180        if (!chipProcessedImfileInsert(dbh, -64, -64, "a string", "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, 32.32, 32.32, 32.32, 32.32, 32.32, 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, -32, "a string", -16)) {
    181181            exit(EXIT_FAILURE);
    182182        }
     
    223223        }
    224224
    225         if (!camProcessedExpInsert(dbh, -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)) {
     225        if (!camProcessedExpInsert(dbh, -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, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 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, -32, -32, "a string", -16)) {
    226226            exit(EXIT_FAILURE);
    227227        }
     
    268268        }
    269269
    270         if (!fakeProcessedImfileInsert(dbh, -64, -64, "a string", "a string", 32.32, "a string", "a string", -16, "0001-01-01T00:00:00Z")) {
     270        if (!fakeProcessedImfileInsert(dbh, -64, -64, "a string", "a string", 32.32, 32.32, "a string", "a string", "a string", -16, "0001-01-01T00:00:00Z")) {
    271271            exit(EXIT_FAILURE);
    272272        }
     
    328328        }
    329329
    330         if (!warpSkyfileInsert(dbh, -64, "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -32, -32, -32, -32, true, -16)) {
     330        if (!warpSkyfileInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, 32.32, "a string", 32.32, -32, -32, -32, -32, true, -16)) {
    331331            exit(EXIT_FAILURE);
    332332        }
     
    358358        }
    359359
    360         if (!diffRunInsert(dbh, -64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string")) {
     360        if (!diffRunInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string")) {
    361361            exit(EXIT_FAILURE);
    362362        }
     
    388388        }
    389389
    390         if (!diffSkyfileInsert(dbh, -64, "a string", "a string", 64.64, 64.64, -32, 32.32, -32, 32.32, "a string", 32.32, -16)) {
    391             exit(EXIT_FAILURE);
    392         }
    393 
    394         psDBCleanup(dbh);
    395     }
    396 
    397     {
    398         psDB            *dbh;
    399 
    400         dbh = psDBInit("localhost", "test", NULL, "test");
    401         if (!dbh) {
    402             exit(EXIT_FAILURE);
    403         }
    404 
    405         if (!stackRunInsert(dbh, -64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string")) {
     390        if (!diffSkyfileInsert(dbh, -64, "a string", "a string", 64.64, 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, "a string", 32.32, -16)) {
     391            exit(EXIT_FAILURE);
     392        }
     393
     394        psDBCleanup(dbh);
     395    }
     396
     397    {
     398        psDB            *dbh;
     399
     400        dbh = psDBInit("localhost", "test", NULL, "test");
     401        if (!dbh) {
     402            exit(EXIT_FAILURE);
     403        }
     404
     405        if (!stackRunInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string")) {
    406406            exit(EXIT_FAILURE);
    407407        }
     
    433433        }
    434434
    435         if (!stackSumSkyfileInsert(dbh, -64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16)) {
    436             exit(EXIT_FAILURE);
    437         }
    438 
    439         psDBCleanup(dbh);
    440     }
    441 
    442     {
    443         psDB            *dbh;
    444 
    445         dbh = psDBInit("localhost", "test", NULL, "test");
    446         if (!dbh) {
    447             exit(EXIT_FAILURE);
    448         }
    449 
    450         if (!detRunInsert(dbh, -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)) {
     435        if (!stackSumSkyfileInsert(dbh, -64, "a string", "a string", 64.64, 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, "a string", 32.32, -16)) {
     436            exit(EXIT_FAILURE);
     437        }
     438
     439        psDBCleanup(dbh);
     440    }
     441
     442    {
     443        psDB            *dbh;
     444
     445        dbh = psDBInit("localhost", "test", NULL, "test");
     446        if (!dbh) {
     447            exit(EXIT_FAILURE);
     448        }
     449
     450        if (!detRunInsert(dbh, -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", -64, -32)) {
    451451            exit(EXIT_FAILURE);
    452452        }
     
    478478        }
    479479
    480         if (!detProcessedImfileInsert(dbh, -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)) {
    481             exit(EXIT_FAILURE);
    482         }
    483 
    484         psDBCleanup(dbh);
    485     }
    486 
    487     {
    488         psDB            *dbh;
    489 
    490         dbh = psDBInit("localhost", "test", NULL, "test");
    491         if (!dbh) {
    492             exit(EXIT_FAILURE);
    493         }
    494 
    495         if (!detProcessedExpInsert(dbh, -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)) {
    496             exit(EXIT_FAILURE);
    497         }
    498 
    499         psDBCleanup(dbh);
    500     }
    501 
    502     {
    503         psDB            *dbh;
    504 
    505         dbh = psDBInit("localhost", "test", NULL, "test");
    506         if (!dbh) {
    507             exit(EXIT_FAILURE);
    508         }
    509 
    510         if (!detStackedImfileInsert(dbh, -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)) {
    511             exit(EXIT_FAILURE);
    512         }
    513 
    514         psDBCleanup(dbh);
    515     }
    516 
    517     {
    518         psDB            *dbh;
    519 
    520         dbh = psDBInit("localhost", "test", NULL, "test");
    521         if (!dbh) {
    522             exit(EXIT_FAILURE);
    523         }
    524 
    525         if (!detNormalizedStatImfileInsert(dbh, -64, -32, "a string", 32.32, -16)) {
    526             exit(EXIT_FAILURE);
    527         }
    528 
    529         psDBCleanup(dbh);
    530     }
    531 
    532     {
    533         psDB            *dbh;
    534 
    535         dbh = psDBInit("localhost", "test", NULL, "test");
    536         if (!dbh) {
    537             exit(EXIT_FAILURE);
    538         }
    539 
    540         if (!detNormalizedImfileInsert(dbh, -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)) {
    541             exit(EXIT_FAILURE);
    542         }
    543 
    544         psDBCleanup(dbh);
    545     }
    546 
    547     {
    548         psDB            *dbh;
    549 
    550         dbh = psDBInit("localhost", "test", NULL, "test");
    551         if (!dbh) {
    552             exit(EXIT_FAILURE);
    553         }
    554 
    555         if (!detNormalizedExpInsert(dbh, -64, -32, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16)) {
    556             exit(EXIT_FAILURE);
    557         }
    558 
    559         psDBCleanup(dbh);
    560     }
    561 
    562     {
    563         psDB            *dbh;
    564 
    565         dbh = psDBInit("localhost", "test", NULL, "test");
    566         if (!dbh) {
    567             exit(EXIT_FAILURE);
    568         }
    569 
    570         if (!detResidImfileInsert(dbh, -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)) {
    571             exit(EXIT_FAILURE);
    572         }
    573 
    574         psDBCleanup(dbh);
    575     }
    576 
    577     {
    578         psDB            *dbh;
    579 
    580         dbh = psDBInit("localhost", "test", NULL, "test");
    581         if (!dbh) {
    582             exit(EXIT_FAILURE);
    583         }
    584 
    585         if (!detResidExpInsert(dbh, -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)) {
    586             exit(EXIT_FAILURE);
    587         }
    588 
    589         psDBCleanup(dbh);
    590     }
    591 
    592     {
    593         psDB            *dbh;
    594 
    595         dbh = psDBInit("localhost", "test", NULL, "test");
    596         if (!dbh) {
    597             exit(EXIT_FAILURE);
    598         }
    599 
    600         if (!detRunSummaryInsert(dbh, -64, -32, 64.64, 64.64, 64.64, true, -16)) {
    601             exit(EXIT_FAILURE);
    602         }
    603 
    604         psDBCleanup(dbh);
    605     }
    606 
    607     {
    608         psDB            *dbh;
    609 
    610         dbh = psDBInit("localhost", "test", NULL, "test");
    611         if (!dbh) {
    612             exit(EXIT_FAILURE);
    613         }
    614 
    615         if (!detRegisteredImfileInsert(dbh, -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)) {
     480        if (!detProcessedImfileInsert(dbh, -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", "a string", -16)) {
     481            exit(EXIT_FAILURE);
     482        }
     483
     484        psDBCleanup(dbh);
     485    }
     486
     487    {
     488        psDB            *dbh;
     489
     490        dbh = psDBInit("localhost", "test", NULL, "test");
     491        if (!dbh) {
     492            exit(EXIT_FAILURE);
     493        }
     494
     495        if (!detProcessedExpInsert(dbh, -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", "a string", -16)) {
     496            exit(EXIT_FAILURE);
     497        }
     498
     499        psDBCleanup(dbh);
     500    }
     501
     502    {
     503        psDB            *dbh;
     504
     505        dbh = psDBInit("localhost", "test", NULL, "test");
     506        if (!dbh) {
     507            exit(EXIT_FAILURE);
     508        }
     509
     510        if (!detStackedImfileInsert(dbh, -64, -32, "a string", "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", -16)) {
     511            exit(EXIT_FAILURE);
     512        }
     513
     514        psDBCleanup(dbh);
     515    }
     516
     517    {
     518        psDB            *dbh;
     519
     520        dbh = psDBInit("localhost", "test", NULL, "test");
     521        if (!dbh) {
     522            exit(EXIT_FAILURE);
     523        }
     524
     525        if (!detNormalizedStatImfileInsert(dbh, -64, -32, "a string", 32.32, "a string", -16)) {
     526            exit(EXIT_FAILURE);
     527        }
     528
     529        psDBCleanup(dbh);
     530    }
     531
     532    {
     533        psDB            *dbh;
     534
     535        dbh = psDBInit("localhost", "test", NULL, "test");
     536        if (!dbh) {
     537            exit(EXIT_FAILURE);
     538        }
     539
     540        if (!detNormalizedImfileInsert(dbh, -64, -32, "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16)) {
     541            exit(EXIT_FAILURE);
     542        }
     543
     544        psDBCleanup(dbh);
     545    }
     546
     547    {
     548        psDB            *dbh;
     549
     550        dbh = psDBInit("localhost", "test", NULL, "test");
     551        if (!dbh) {
     552            exit(EXIT_FAILURE);
     553        }
     554
     555        if (!detNormalizedExpInsert(dbh, -64, -32, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16)) {
     556            exit(EXIT_FAILURE);
     557        }
     558
     559        psDBCleanup(dbh);
     560    }
     561
     562    {
     563        psDB            *dbh;
     564
     565        dbh = psDBInit("localhost", "test", NULL, "test");
     566        if (!dbh) {
     567            exit(EXIT_FAILURE);
     568        }
     569
     570        if (!detResidImfileInsert(dbh, -64, -32, -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", "a string", -16)) {
     571            exit(EXIT_FAILURE);
     572        }
     573
     574        psDBCleanup(dbh);
     575    }
     576
     577    {
     578        psDB            *dbh;
     579
     580        dbh = psDBInit("localhost", "test", NULL, "test");
     581        if (!dbh) {
     582            exit(EXIT_FAILURE);
     583        }
     584
     585        if (!detResidExpInsert(dbh, -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", "a string", true, -16)) {
     586            exit(EXIT_FAILURE);
     587        }
     588
     589        psDBCleanup(dbh);
     590    }
     591
     592    {
     593        psDB            *dbh;
     594
     595        dbh = psDBInit("localhost", "test", NULL, "test");
     596        if (!dbh) {
     597            exit(EXIT_FAILURE);
     598        }
     599
     600        if (!detRunSummaryInsert(dbh, -64, -32, "a string", 64.64, 64.64, 64.64, true, -16)) {
     601            exit(EXIT_FAILURE);
     602        }
     603
     604        psDBCleanup(dbh);
     605    }
     606
     607    {
     608        psDB            *dbh;
     609
     610        dbh = psDBInit("localhost", "test", NULL, "test");
     611        if (!dbh) {
     612            exit(EXIT_FAILURE);
     613        }
     614
     615        if (!detRegisteredImfileInsert(dbh, -64, -32, "a string", "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16)) {
    616616            exit(EXIT_FAILURE);
    617617        }
     
    763763        }
    764764
    765         if (!flatcorrRunInsert(dbh, -64, "a string", "a string", "a string", "a string", "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 (!flatcorrExpInsert(dbh, -64, -64)) {
     765        if (!flatcorrRunInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", -16)) {
     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 (!flatcorrChipLinkInsert(dbh, -64, -64)) {
     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 (!flatcorrCamLinkInsert(dbh, -64, -64, -64)) {
    781796            exit(EXIT_FAILURE);
    782797        }
     
    808823        }
    809824
     825        if (!pstampProjectInsert(dbh, -64, "a string", "a string", "a string", "a string", "a string", "a string", true)) {
     826            exit(EXIT_FAILURE);
     827        }
     828
     829        psDBCleanup(dbh);
     830    }
     831
     832    {
     833        psDB            *dbh;
     834
     835        dbh = psDBInit("localhost", "test", NULL, "test");
     836        if (!dbh) {
     837            exit(EXIT_FAILURE);
     838        }
     839
    810840        if (!pstampRequestInsert(dbh, -64, -64, "a string", "a string", "a string", "a string", "a string", -32)) {
    811841            exit(EXIT_FAILURE);
     
    823853        }
    824854
    825         if (!pstampJobInsert(dbh, -64, -64, "a string", "a string", "a string", -32, "a string", "a string", "a string")) {
     855        if (!pstampJobInsert(dbh, -64, -64, "a string", "a string", "a string", -32, "a string", -64, "a string", "a string")) {
    826856            exit(EXIT_FAILURE);
    827857        }
  • trunk/ippdb/tests/insertfits.c

    r18595 r20205  
    13501350        }
    13511351
    1352         if (!flatcorrExpInsertFits(dbh, fits)) {
     1352        if (!flatcorrChipLinkInsertFits(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 (!flatcorrCamLinkInsertFits(dbh, fits)) {
    13531379            exit(EXIT_FAILURE);
    13541380        }
     
    13771403
    13781404        if (!pstampDataStoreInsertFits(dbh, fits)) {
     1405            exit(EXIT_FAILURE);
     1406        }
     1407
     1408        if (!psFitsClose(fits)) {
     1409            exit(EXIT_FAILURE);
     1410        }
     1411
     1412        psDBCleanup(dbh);
     1413    }
     1414
     1415    {
     1416        psDB            *dbh;
     1417        psFits          *fits;
     1418
     1419        dbh = psDBInit("localhost", "test", NULL, "test");
     1420        if (!dbh) {
     1421            exit(EXIT_FAILURE);
     1422        }
     1423
     1424        // open a temp
     1425        fits = psFitsOpen(TMP_FILENAME, "r");
     1426        if (!fits) {
     1427            exit(EXIT_FAILURE);
     1428        }
     1429
     1430        if (!pstampProjectInsertFits(dbh, fits)) {
    13791431            exit(EXIT_FAILURE);
    13801432        }
  • trunk/ippdb/tests/insertobject.c

    r18796 r20205  
    168168        }
    169169
    170         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, "a string", -16, "0001-01-01T00:00:00Z");
     170        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", "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, 32.32, 32.32, 32.32, 32.32, "a string", -16, "0001-01-01T00:00:00Z");
    171171        if (!object) {
    172172            exit(EXIT_FAILURE);
     
    190190        }
    191191
    192         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", "a string", -16, "0001-01-01T00:00:00Z");
     192        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", "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, 32.32, 32.32, 32.32, 32.32, "a string", -16, "0001-01-01T00:00:00Z");
    193193        if (!object) {
    194194            exit(EXIT_FAILURE);
     
    256256        }
    257257
    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);
     258        object = chipProcessedImfileRowAlloc(-64, -64, "a string", "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, 32.32, 32.32, 32.32, 32.32, 32.32, 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, -32, "a string", -16);
    259259        if (!object) {
    260260            exit(EXIT_FAILURE);
     
    322322        }
    323323
    324         object = camProcessedExpRowAlloc(-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);
     324        object = camProcessedExpRowAlloc(-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, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 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, -32, -32, "a string", -16);
    325325        if (!object) {
    326326            exit(EXIT_FAILURE);
     
    388388        }
    389389
    390         object = fakeProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, "a string", "a string", -16, "0001-01-01T00:00:00Z");
     390        object = fakeProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, 32.32, "a string", "a string", "a string", -16, "0001-01-01T00:00:00Z");
    391391        if (!object) {
    392392            exit(EXIT_FAILURE);
     
    476476        }
    477477
    478         object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -32, -32, -32, -32, true, -16);
     478        object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, 32.32, "a string", 32.32, -32, -32, -32, -32, true, -16);
    479479        if (!object) {
    480480            exit(EXIT_FAILURE);
     
    520520        }
    521521
    522         object = diffRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string");
     522        object = diffRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string");
    523523        if (!object) {
    524524            exit(EXIT_FAILURE);
     
    564564        }
    565565
    566         object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, -32, 32.32, -32, 32.32, "a string", 32.32, -16);
     566        object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 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, "a string", 32.32, -16);
    567567        if (!object) {
    568568            exit(EXIT_FAILURE);
     
    586586        }
    587587
    588         object = stackRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string");
     588        object = stackRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string");
    589589        if (!object) {
    590590            exit(EXIT_FAILURE);
     
    630630        }
    631631
    632         object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16);
     632        object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 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, "a string", 32.32, -16);
    633633        if (!object) {
    634634            exit(EXIT_FAILURE);
     
    652652        }
    653653
    654         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);
     654        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", -64, -32);
    655655        if (!object) {
    656656            exit(EXIT_FAILURE);
     
    696696        }
    697697
    698         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);
     698        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", "a string", -16);
    699699        if (!object) {
    700700            exit(EXIT_FAILURE);
     
    718718        }
    719719
    720         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);
     720        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", "a string", -16);
    721721        if (!object) {
    722722            exit(EXIT_FAILURE);
     
    740740        }
    741741
    742         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);
     742        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, "a string", -16);
    743743        if (!object) {
    744744            exit(EXIT_FAILURE);
     
    762762        }
    763763
    764         object = detNormalizedStatImfileRowAlloc(-64, -32, "a string", 32.32, -16);
     764        object = detNormalizedStatImfileRowAlloc(-64, -32, "a string", 32.32, "a string", -16);
    765765        if (!object) {
    766766            exit(EXIT_FAILURE);
     
    784784        }
    785785
    786         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);
     786        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", "a string", -16);
    787787        if (!object) {
    788788            exit(EXIT_FAILURE);
     
    806806        }
    807807
    808         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);
     808        object = detNormalizedExpRowAlloc(-64, -32, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16);
    809809        if (!object) {
    810810            exit(EXIT_FAILURE);
     
    828828        }
    829829
    830         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);
     830        object = detResidImfileRowAlloc(-64, -32, -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", "a string", -16);
    831831        if (!object) {
    832832            exit(EXIT_FAILURE);
     
    850850        }
    851851
    852         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);
     852        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", "a string", true, -16);
    853853        if (!object) {
    854854            exit(EXIT_FAILURE);
     
    872872        }
    873873
    874         object = detRunSummaryRowAlloc(-64, -32, 64.64, 64.64, 64.64, true, -16);
     874        object = detRunSummaryRowAlloc(-64, -32, "a string", 64.64, 64.64, 64.64, true, -16);
    875875        if (!object) {
    876876            exit(EXIT_FAILURE);
     
    894894        }
    895895
    896         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);
     896        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", "a string", -16);
    897897        if (!object) {
    898898            exit(EXIT_FAILURE);
     
    11141114        }
    11151115
    1116         object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string");
     1116        object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", -16);
    11171117        if (!object) {
    11181118            exit(EXIT_FAILURE);
     
    11291129    {
    11301130        psDB            *dbh;
    1131         flatcorrExpRow  *object;
    1132 
    1133         dbh = psDBInit("localhost", "test", NULL, "test");
    1134         if (!dbh) {
    1135             exit(EXIT_FAILURE);
    1136         }
    1137 
    1138         object = flatcorrExpRowAlloc(-64, -64);
    1139         if (!object) {
    1140             exit(EXIT_FAILURE);
    1141         }
    1142 
    1143         if (!flatcorrExpInsertObject(dbh, object)) {
     1131        flatcorrChipLinkRow *object;
     1132
     1133        dbh = psDBInit("localhost", "test", NULL, "test");
     1134        if (!dbh) {
     1135            exit(EXIT_FAILURE);
     1136        }
     1137
     1138        object = flatcorrChipLinkRowAlloc(-64, -64);
     1139        if (!object) {
     1140            exit(EXIT_FAILURE);
     1141        }
     1142
     1143        if (!flatcorrChipLinkInsertObject(dbh, object)) {
     1144            exit(EXIT_FAILURE);
     1145        }
     1146
     1147        psFree(object);
     1148        psDBCleanup(dbh);
     1149    }
     1150
     1151    {
     1152        psDB            *dbh;
     1153        flatcorrCamLinkRow *object;
     1154
     1155        dbh = psDBInit("localhost", "test", NULL, "test");
     1156        if (!dbh) {
     1157            exit(EXIT_FAILURE);
     1158        }
     1159
     1160        object = flatcorrCamLinkRowAlloc(-64, -64, -64);
     1161        if (!object) {
     1162            exit(EXIT_FAILURE);
     1163        }
     1164
     1165        if (!flatcorrCamLinkInsertObject(dbh, object)) {
    11441166            exit(EXIT_FAILURE);
    11451167        }
     
    11731195    {
    11741196        psDB            *dbh;
     1197        pstampProjectRow *object;
     1198
     1199        dbh = psDBInit("localhost", "test", NULL, "test");
     1200        if (!dbh) {
     1201            exit(EXIT_FAILURE);
     1202        }
     1203
     1204        object = pstampProjectRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", true);
     1205        if (!object) {
     1206            exit(EXIT_FAILURE);
     1207        }
     1208
     1209        if (!pstampProjectInsertObject(dbh, object)) {
     1210            exit(EXIT_FAILURE);
     1211        }
     1212
     1213        psFree(object);
     1214        psDBCleanup(dbh);
     1215    }
     1216
     1217    {
     1218        psDB            *dbh;
    11751219        pstampRequestRow *object;
    11761220
     
    12021246        }
    12031247
    1204         object = pstampJobRowAlloc(-64, -64, "a string", "a string", "a string", -32, "a string", "a string", "a string");
     1248        object = pstampJobRowAlloc(-64, -64, "a string", "a string", "a string", -32, "a string", -64, "a string", "a string");
    12051249        if (!object) {
    12061250            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/metadatafromobject.c

    r18796 r20205  
    360360        bool            status;
    361361
    362         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, "a string", -16, "0001-01-01T00:00:00Z");
     362        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", "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, 32.32, 32.32, 32.32, 32.32, "a string", -16, "0001-01-01T00:00:00Z");
    363363        if (!object) {
    364364            exit(EXIT_FAILURE);
     
    430430            exit(EXIT_FAILURE);
    431431        }
     432        if (strncmp(psMetadataLookupPtr(&status, md, "obs_mode"), "a string", MAX_STRING_LENGTH)) {
     433            psFree(md);
     434            exit(EXIT_FAILURE);
     435        }
     436        if (strncmp(psMetadataLookupPtr(&status, md, "obs_group"), "a string", MAX_STRING_LENGTH)) {
     437            psFree(md);
     438            exit(EXIT_FAILURE);
     439        }
    432440        if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
    433441            psFree(md);
     
    586594            exit(EXIT_FAILURE);
    587595        }
    588         if (!psMetadataLookupF32(&status, md, "solang") == 32.32) {
     596        if (!psMetadataLookupF32(&status, md, "sun_angle") == 32.32) {
     597            psFree(md);
     598            exit(EXIT_FAILURE);
     599        }
     600        if (!psMetadataLookupF32(&status, md, "sun_alt") == 32.32) {
     601            psFree(md);
     602            exit(EXIT_FAILURE);
     603        }
     604        if (!psMetadataLookupF32(&status, md, "moon_angle") == 32.32) {
     605            psFree(md);
     606            exit(EXIT_FAILURE);
     607        }
     608        if (!psMetadataLookupF32(&status, md, "moon_alt") == 32.32) {
     609            psFree(md);
     610            exit(EXIT_FAILURE);
     611        }
     612        if (!psMetadataLookupF32(&status, md, "moon_phase") == 32.32) {
    589613            psFree(md);
    590614            exit(EXIT_FAILURE);
     
    609633        bool            status;
    610634
    611         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", "a string", -16, "0001-01-01T00:00:00Z");
     635        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", "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, 32.32, 32.32, 32.32, 32.32, "a string", -16, "0001-01-01T00:00:00Z");
    612636        if (!object) {
    613637            exit(EXIT_FAILURE);
     
    667691            exit(EXIT_FAILURE);
    668692        }
     693        if (strncmp(psMetadataLookupPtr(&status, md, "obs_mode"), "a string", MAX_STRING_LENGTH)) {
     694            psFree(md);
     695            exit(EXIT_FAILURE);
     696        }
     697        if (strncmp(psMetadataLookupPtr(&status, md, "obs_group"), "a string", MAX_STRING_LENGTH)) {
     698            psFree(md);
     699            exit(EXIT_FAILURE);
     700        }
    669701        if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
    670702            psFree(md);
     
    823855            exit(EXIT_FAILURE);
    824856        }
     857        if (!psMetadataLookupF32(&status, md, "sun_angle") == 32.32) {
     858            psFree(md);
     859            exit(EXIT_FAILURE);
     860        }
     861        if (!psMetadataLookupF32(&status, md, "sun_alt") == 32.32) {
     862            psFree(md);
     863            exit(EXIT_FAILURE);
     864        }
     865        if (!psMetadataLookupF32(&status, md, "moon_angle") == 32.32) {
     866            psFree(md);
     867            exit(EXIT_FAILURE);
     868        }
     869        if (!psMetadataLookupF32(&status, md, "moon_alt") == 32.32) {
     870            psFree(md);
     871            exit(EXIT_FAILURE);
     872        }
     873        if (!psMetadataLookupF32(&status, md, "moon_phase") == 32.32) {
     874            psFree(md);
     875            exit(EXIT_FAILURE);
     876        }
    825877        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
    826878            psFree(md);
     
    936988        bool            status;
    937989
    938         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);
     990        object = chipProcessedImfileRowAlloc(-64, -64, "a string", "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, 32.32, 32.32, 32.32, 32.32, 32.32, 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, -32, "a string", -16);
    939991        if (!object) {
    940992            exit(EXIT_FAILURE);
     
    9581010            exit(EXIT_FAILURE);
    9591011        }
     1012        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     1013            psFree(md);
     1014            exit(EXIT_FAILURE);
     1015        }
    9601016        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    9611017            psFree(md);
     
    9941050            exit(EXIT_FAILURE);
    9951051        }
     1052        if (!psMetadataLookupF32(&status, md, "ap_resid") == 32.32) {
     1053            psFree(md);
     1054            exit(EXIT_FAILURE);
     1055        }
     1056        if (!psMetadataLookupF32(&status, md, "ap_resid_stdev") == 32.32) {
     1057            psFree(md);
     1058            exit(EXIT_FAILURE);
     1059        }
     1060        if (!psMetadataLookupF32(&status, md, "fwhm_major") == 32.32) {
     1061            psFree(md);
     1062            exit(EXIT_FAILURE);
     1063        }
     1064        if (!psMetadataLookupF32(&status, md, "fwhm_minor") == 32.32) {
     1065            psFree(md);
     1066            exit(EXIT_FAILURE);
     1067        }
     1068        if (!psMetadataLookupF32(&status, md, "iq_m2") == 32.32) {
     1069            psFree(md);
     1070            exit(EXIT_FAILURE);
     1071        }
     1072        if (!psMetadataLookupF32(&status, md, "iq_m2_err") == 32.32) {
     1073            psFree(md);
     1074            exit(EXIT_FAILURE);
     1075        }
     1076        if (!psMetadataLookupF32(&status, md, "iq_m2_lq") == 32.32) {
     1077            psFree(md);
     1078            exit(EXIT_FAILURE);
     1079        }
     1080        if (!psMetadataLookupF32(&status, md, "iq_m2_uq") == 32.32) {
     1081            psFree(md);
     1082            exit(EXIT_FAILURE);
     1083        }
     1084        if (!psMetadataLookupF32(&status, md, "iq_m2c") == 32.32) {
     1085            psFree(md);
     1086            exit(EXIT_FAILURE);
     1087        }
     1088        if (!psMetadataLookupF32(&status, md, "iq_m2c_err") == 32.32) {
     1089            psFree(md);
     1090            exit(EXIT_FAILURE);
     1091        }
     1092        if (!psMetadataLookupF32(&status, md, "iq_m2c_lq") == 32.32) {
     1093            psFree(md);
     1094            exit(EXIT_FAILURE);
     1095        }
     1096        if (!psMetadataLookupF32(&status, md, "iq_m2c_uq") == 32.32) {
     1097            psFree(md);
     1098            exit(EXIT_FAILURE);
     1099        }
     1100        if (!psMetadataLookupF32(&status, md, "iq_m2s") == 32.32) {
     1101            psFree(md);
     1102            exit(EXIT_FAILURE);
     1103        }
     1104        if (!psMetadataLookupF32(&status, md, "iq_m2s_err") == 32.32) {
     1105            psFree(md);
     1106            exit(EXIT_FAILURE);
     1107        }
     1108        if (!psMetadataLookupF32(&status, md, "iq_m2s_lq") == 32.32) {
     1109            psFree(md);
     1110            exit(EXIT_FAILURE);
     1111        }
     1112        if (!psMetadataLookupF32(&status, md, "iq_m2s_uq") == 32.32) {
     1113            psFree(md);
     1114            exit(EXIT_FAILURE);
     1115        }
     1116        if (!psMetadataLookupF32(&status, md, "iq_m3") == 32.32) {
     1117            psFree(md);
     1118            exit(EXIT_FAILURE);
     1119        }
     1120        if (!psMetadataLookupF32(&status, md, "iq_m3_err") == 32.32) {
     1121            psFree(md);
     1122            exit(EXIT_FAILURE);
     1123        }
     1124        if (!psMetadataLookupF32(&status, md, "iq_m3_lq") == 32.32) {
     1125            psFree(md);
     1126            exit(EXIT_FAILURE);
     1127        }
     1128        if (!psMetadataLookupF32(&status, md, "iq_m3_uq") == 32.32) {
     1129            psFree(md);
     1130            exit(EXIT_FAILURE);
     1131        }
     1132        if (!psMetadataLookupF32(&status, md, "iq_m4") == 32.32) {
     1133            psFree(md);
     1134            exit(EXIT_FAILURE);
     1135        }
     1136        if (!psMetadataLookupF32(&status, md, "iq_m4_err") == 32.32) {
     1137            psFree(md);
     1138            exit(EXIT_FAILURE);
     1139        }
     1140        if (!psMetadataLookupF32(&status, md, "iq_m4_lq") == 32.32) {
     1141            psFree(md);
     1142            exit(EXIT_FAILURE);
     1143        }
     1144        if (!psMetadataLookupF32(&status, md, "iq_m4_uq") == 32.32) {
     1145            psFree(md);
     1146            exit(EXIT_FAILURE);
     1147        }
     1148        if (!psMetadataLookupF32(&status, md, "dtime_detrend") == 32.32) {
     1149            psFree(md);
     1150            exit(EXIT_FAILURE);
     1151        }
     1152        if (!psMetadataLookupF32(&status, md, "dtime_photom") == 32.32) {
     1153            psFree(md);
     1154            exit(EXIT_FAILURE);
     1155        }
     1156        if (!psMetadataLookupF32(&status, md, "dtime_total") == 32.32) {
     1157            psFree(md);
     1158            exit(EXIT_FAILURE);
     1159        }
     1160        if (!psMetadataLookupF32(&status, md, "dtime_script") == 32.32) {
     1161            psFree(md);
     1162            exit(EXIT_FAILURE);
     1163        }
     1164        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     1165            psFree(md);
     1166            exit(EXIT_FAILURE);
     1167        }
     1168        if (!psMetadataLookupS32(&status, md, "n_stars") == -32) {
     1169            psFree(md);
     1170            exit(EXIT_FAILURE);
     1171        }
     1172        if (!psMetadataLookupS32(&status, md, "n_psfstars") == -32) {
     1173            psFree(md);
     1174            exit(EXIT_FAILURE);
     1175        }
     1176        if (!psMetadataLookupS32(&status, md, "n_iqstars") == -32) {
     1177            psFree(md);
     1178            exit(EXIT_FAILURE);
     1179        }
     1180        if (!psMetadataLookupS32(&status, md, "n_extended") == -32) {
     1181            psFree(md);
     1182            exit(EXIT_FAILURE);
     1183        }
     1184        if (!psMetadataLookupS32(&status, md, "n_cr") == -32) {
     1185            psFree(md);
     1186            exit(EXIT_FAILURE);
     1187        }
     1188        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     1189            psFree(md);
     1190            exit(EXIT_FAILURE);
     1191        }
     1192            psFree(md);
     1193            exit(EXIT_FAILURE);
     1194        }
     1195
     1196        psFree(md);
     1197    }
     1198
     1199    {
     1200        psMetadata      *md;
     1201        chipMaskRow     *object;
     1202        bool            status;
     1203
     1204        object = chipMaskRowAlloc("a string");
     1205        if (!object) {
     1206            exit(EXIT_FAILURE);
     1207        }
     1208
     1209        md = chipMaskMetadataFromObject(object);
     1210        if (!md) {
     1211            exit(EXIT_FAILURE);
     1212        }
     1213
     1214        psFree(object);
     1215
     1216        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     1217            psFree(md);
     1218            exit(EXIT_FAILURE);
     1219        }
     1220
     1221        psFree(md);
     1222    }
     1223
     1224    {
     1225        psMetadata      *md;
     1226        camRunRow       *object;
     1227        bool            status;
     1228
     1229        object = camRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
     1230        if (!object) {
     1231            exit(EXIT_FAILURE);
     1232        }
     1233
     1234        md = camRunMetadataFromObject(object);
     1235        if (!md) {
     1236            exit(EXIT_FAILURE);
     1237        }
     1238
     1239        psFree(object);
     1240
     1241            psFree(md);
     1242            exit(EXIT_FAILURE);
     1243        }
     1244            psFree(md);
     1245            exit(EXIT_FAILURE);
     1246        }
     1247        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     1248            psFree(md);
     1249            exit(EXIT_FAILURE);
     1250        }
     1251        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     1252            psFree(md);
     1253            exit(EXIT_FAILURE);
     1254        }
     1255        if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
     1256            psFree(md);
     1257            exit(EXIT_FAILURE);
     1258        }
     1259        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     1260            psFree(md);
     1261            exit(EXIT_FAILURE);
     1262        }
     1263        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
     1264            psFree(md);
     1265            exit(EXIT_FAILURE);
     1266        }
     1267        if (strncmp(psMetadataLookupPtr(&status, md, "expgroup"), "a string", MAX_STRING_LENGTH)) {
     1268            psFree(md);
     1269            exit(EXIT_FAILURE);
     1270        }
     1271        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     1272            psFree(md);
     1273            exit(EXIT_FAILURE);
     1274        }
     1275        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1276            psFree(md);
     1277            exit(EXIT_FAILURE);
     1278        }
     1279        if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
     1280            psFree(md);
     1281            exit(EXIT_FAILURE);
     1282        }
     1283
     1284        psFree(md);
     1285    }
     1286
     1287    {
     1288        psMetadata      *md;
     1289        camProcessedExpRow *object;
     1290        bool            status;
     1291
     1292        object = camProcessedExpRowAlloc(-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, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 32.32, 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, -32, -32, "a string", -16);
     1293        if (!object) {
     1294            exit(EXIT_FAILURE);
     1295        }
     1296
     1297        md = camProcessedExpMetadataFromObject(object);
     1298        if (!md) {
     1299            exit(EXIT_FAILURE);
     1300        }
     1301
     1302        psFree(object);
     1303
     1304            psFree(md);
     1305            exit(EXIT_FAILURE);
     1306        }
     1307        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1308            psFree(md);
     1309            exit(EXIT_FAILURE);
     1310        }
     1311        if (!psMetadataLookupF32(&status, md, "bg") == 32.32) {
     1312            psFree(md);
     1313            exit(EXIT_FAILURE);
     1314        }
     1315        if (!psMetadataLookupF32(&status, md, "bg_stdev") == 32.32) {
     1316            psFree(md);
     1317            exit(EXIT_FAILURE);
     1318        }
     1319        if (!psMetadataLookupF32(&status, md, "bg_mean_stdev") == 32.32) {
     1320            psFree(md);
     1321            exit(EXIT_FAILURE);
     1322        }
     1323        if (!psMetadataLookupF32(&status, md, "bias") == 32.32) {
     1324            psFree(md);
     1325            exit(EXIT_FAILURE);
     1326        }
     1327        if (!psMetadataLookupF32(&status, md, "bias_stdev") == 32.32) {
     1328            psFree(md);
     1329            exit(EXIT_FAILURE);
     1330        }
     1331        if (!psMetadataLookupF32(&status, md, "fringe_0") == 32.32) {
     1332            psFree(md);
     1333            exit(EXIT_FAILURE);
     1334        }
     1335        if (!psMetadataLookupF32(&status, md, "fringe_1") == 32.32) {
     1336            psFree(md);
     1337            exit(EXIT_FAILURE);
     1338        }
     1339        if (!psMetadataLookupF32(&status, md, "fringe_2") == 32.32) {
     1340            psFree(md);
     1341            exit(EXIT_FAILURE);
     1342        }
    9961343        if (!psMetadataLookupF32(&status, md, "sigma_ra") == 32.32) {
    9971344            psFree(md);
     
    10261373            exit(EXIT_FAILURE);
    10271374        }
    1028         if (!psMetadataLookupF32(&status, md, "dtime_detrend") == 32.32) {
    1029             psFree(md);
    1030             exit(EXIT_FAILURE);
    1031         }
    1032         if (!psMetadataLookupF32(&status, md, "dtime_photom") == 32.32) {
     1375        if (!psMetadataLookupF32(&status, md, "iq_m2") == 32.32) {
     1376            psFree(md);
     1377            exit(EXIT_FAILURE);
     1378        }
     1379        if (!psMetadataLookupF32(&status, md, "iq_m2_err") == 32.32) {
     1380            psFree(md);
     1381            exit(EXIT_FAILURE);
     1382        }
     1383        if (!psMetadataLookupF32(&status, md, "iq_m2_lq") == 32.32) {
     1384            psFree(md);
     1385            exit(EXIT_FAILURE);
     1386        }
     1387        if (!psMetadataLookupF32(&status, md, "iq_m2_uq") == 32.32) {
     1388            psFree(md);
     1389            exit(EXIT_FAILURE);
     1390        }
     1391        if (!psMetadataLookupF32(&status, md, "iq_m2c") == 32.32) {
     1392            psFree(md);
     1393            exit(EXIT_FAILURE);
     1394        }
     1395        if (!psMetadataLookupF32(&status, md, "iq_m2c_err") == 32.32) {
     1396            psFree(md);
     1397            exit(EXIT_FAILURE);
     1398        }
     1399        if (!psMetadataLookupF32(&status, md, "iq_m2c_lq") == 32.32) {
     1400            psFree(md);
     1401            exit(EXIT_FAILURE);
     1402        }
     1403        if (!psMetadataLookupF32(&status, md, "iq_m2c_uq") == 32.32) {
     1404            psFree(md);
     1405            exit(EXIT_FAILURE);
     1406        }
     1407        if (!psMetadataLookupF32(&status, md, "iq_m2s") == 32.32) {
     1408            psFree(md);
     1409            exit(EXIT_FAILURE);
     1410        }
     1411        if (!psMetadataLookupF32(&status, md, "iq_m2s_err") == 32.32) {
     1412            psFree(md);
     1413            exit(EXIT_FAILURE);
     1414        }
     1415        if (!psMetadataLookupF32(&status, md, "iq_m2s_lq") == 32.32) {
     1416            psFree(md);
     1417            exit(EXIT_FAILURE);
     1418        }
     1419        if (!psMetadataLookupF32(&status, md, "iq_m2s_uq") == 32.32) {
     1420            psFree(md);
     1421            exit(EXIT_FAILURE);
     1422        }
     1423        if (!psMetadataLookupF32(&status, md, "iq_m3") == 32.32) {
     1424            psFree(md);
     1425            exit(EXIT_FAILURE);
     1426        }
     1427        if (!psMetadataLookupF32(&status, md, "iq_m3_err") == 32.32) {
     1428            psFree(md);
     1429            exit(EXIT_FAILURE);
     1430        }
     1431        if (!psMetadataLookupF32(&status, md, "iq_m3_lq") == 32.32) {
     1432            psFree(md);
     1433            exit(EXIT_FAILURE);
     1434        }
     1435        if (!psMetadataLookupF32(&status, md, "iq_m3_uq") == 32.32) {
     1436            psFree(md);
     1437            exit(EXIT_FAILURE);
     1438        }
     1439        if (!psMetadataLookupF32(&status, md, "iq_m4") == 32.32) {
     1440            psFree(md);
     1441            exit(EXIT_FAILURE);
     1442        }
     1443        if (!psMetadataLookupF32(&status, md, "iq_m4_err") == 32.32) {
     1444            psFree(md);
     1445            exit(EXIT_FAILURE);
     1446        }
     1447        if (!psMetadataLookupF32(&status, md, "iq_m4_lq") == 32.32) {
     1448            psFree(md);
     1449            exit(EXIT_FAILURE);
     1450        }
     1451        if (!psMetadataLookupF32(&status, md, "iq_m4_uq") == 32.32) {
     1452            psFree(md);
     1453            exit(EXIT_FAILURE);
     1454        }
     1455        if (!psMetadataLookupF32(&status, md, "dtime_script") == 32.32) {
    10331456            psFree(md);
    10341457            exit(EXIT_FAILURE);
     
    10381461            exit(EXIT_FAILURE);
    10391462        }
     1463        if (!psMetadataLookupF32(&status, md, "dtime_addstar") == 32.32) {
     1464            psFree(md);
     1465            exit(EXIT_FAILURE);
     1466        }
    10401467        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
    10411468            psFree(md);
     
    10461473            exit(EXIT_FAILURE);
    10471474        }
     1475        if (!psMetadataLookupS32(&status, md, "n_psfstars") == -32) {
     1476            psFree(md);
     1477            exit(EXIT_FAILURE);
     1478        }
     1479        if (!psMetadataLookupS32(&status, md, "n_iqstars") == -32) {
     1480            psFree(md);
     1481            exit(EXIT_FAILURE);
     1482        }
    10481483        if (!psMetadataLookupS32(&status, md, "n_extended") == -32) {
    10491484            psFree(md);
     
    10711506    {
    10721507        psMetadata      *md;
    1073         chipMaskRow     *object;
    1074         bool            status;
    1075 
    1076         object = chipMaskRowAlloc("a string");
    1077         if (!object) {
    1078             exit(EXIT_FAILURE);
    1079         }
    1080 
    1081         md = chipMaskMetadataFromObject(object);
     1508        camMaskRow      *object;
     1509        bool            status;
     1510
     1511        object = camMaskRowAlloc("a string");
     1512        if (!object) {
     1513            exit(EXIT_FAILURE);
     1514        }
     1515
     1516        md = camMaskMetadataFromObject(object);
    10821517        if (!md) {
    10831518            exit(EXIT_FAILURE);
     
    10961531    {
    10971532        psMetadata      *md;
    1098         camRunRow       *object;
    1099         bool            status;
    1100 
    1101         object = camRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string");
    1102         if (!object) {
    1103             exit(EXIT_FAILURE);
    1104         }
    1105 
    1106         md = camRunMetadataFromObject(object);
     1533        fakeRunRow      *object;
     1534        bool            status;
     1535
     1536        object = fakeRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
     1537        if (!object) {
     1538            exit(EXIT_FAILURE);
     1539        }
     1540
     1541        md = fakeRunMetadataFromObject(object);
    11071542        if (!md) {
    11081543            exit(EXIT_FAILURE);
     
    11251560            exit(EXIT_FAILURE);
    11261561        }
     1562        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     1563            psFree(md);
     1564            exit(EXIT_FAILURE);
     1565        }
     1566        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
     1567            psFree(md);
     1568            exit(EXIT_FAILURE);
     1569        }
     1570        if (strncmp(psMetadataLookupPtr(&status, md, "expgroup"), "a string", MAX_STRING_LENGTH)) {
     1571            psFree(md);
     1572            exit(EXIT_FAILURE);
     1573        }
     1574        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     1575            psFree(md);
     1576            exit(EXIT_FAILURE);
     1577        }
     1578        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1579            psFree(md);
     1580            exit(EXIT_FAILURE);
     1581        }
     1582        if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
     1583            psFree(md);
     1584            exit(EXIT_FAILURE);
     1585        }
     1586            psFree(md);
     1587            exit(EXIT_FAILURE);
     1588        }
     1589
     1590        psFree(md);
     1591    }
     1592
     1593    {
     1594        psMetadata      *md;
     1595        fakeProcessedImfileRow *object;
     1596        bool            status;
     1597
     1598        object = fakeProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, 32.32, "a string", "a string", "a string", -16, "0001-01-01T00:00:00Z");
     1599        if (!object) {
     1600            exit(EXIT_FAILURE);
     1601        }
     1602
     1603        md = fakeProcessedImfileMetadataFromObject(object);
     1604        if (!md) {
     1605            exit(EXIT_FAILURE);
     1606        }
     1607
     1608        psFree(object);
     1609
     1610            psFree(md);
     1611            exit(EXIT_FAILURE);
     1612        }
     1613            psFree(md);
     1614            exit(EXIT_FAILURE);
     1615        }
     1616        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1617            psFree(md);
     1618            exit(EXIT_FAILURE);
     1619        }
     1620        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1621            psFree(md);
     1622            exit(EXIT_FAILURE);
     1623        }
     1624        if (!psMetadataLookupF32(&status, md, "dtime_fake") == 32.32) {
     1625            psFree(md);
     1626            exit(EXIT_FAILURE);
     1627        }
     1628        if (!psMetadataLookupF32(&status, md, "dtime_script") == 32.32) {
     1629            psFree(md);
     1630            exit(EXIT_FAILURE);
     1631        }
     1632        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     1633            psFree(md);
     1634            exit(EXIT_FAILURE);
     1635        }
     1636        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     1637            psFree(md);
     1638            exit(EXIT_FAILURE);
     1639        }
     1640        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     1641            psFree(md);
     1642            exit(EXIT_FAILURE);
     1643        }
     1644            psFree(md);
     1645            exit(EXIT_FAILURE);
     1646        }
     1647            psFree(md);
     1648            exit(EXIT_FAILURE);
     1649        }
     1650
     1651        psFree(md);
     1652    }
     1653
     1654    {
     1655        psMetadata      *md;
     1656        fakeMaskRow     *object;
     1657        bool            status;
     1658
     1659        object = fakeMaskRowAlloc("a string");
     1660        if (!object) {
     1661            exit(EXIT_FAILURE);
     1662        }
     1663
     1664        md = fakeMaskMetadataFromObject(object);
     1665        if (!md) {
     1666            exit(EXIT_FAILURE);
     1667        }
     1668
     1669        psFree(object);
     1670
     1671        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     1672            psFree(md);
     1673            exit(EXIT_FAILURE);
     1674        }
     1675
     1676        psFree(md);
     1677    }
     1678
     1679    {
     1680        psMetadata      *md;
     1681        warpRunRow      *object;
     1682        bool            status;
     1683
     1684        object = warpRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", true);
     1685        if (!object) {
     1686            exit(EXIT_FAILURE);
     1687        }
     1688
     1689        md = warpRunMetadataFromObject(object);
     1690        if (!md) {
     1691            exit(EXIT_FAILURE);
     1692        }
     1693
     1694        psFree(object);
     1695
     1696            psFree(md);
     1697            exit(EXIT_FAILURE);
     1698        }
     1699            psFree(md);
     1700            exit(EXIT_FAILURE);
     1701        }
     1702        if (strncmp(psMetadataLookupPtr(&status, md, "mode"), "a string", MAX_STRING_LENGTH)) {
     1703            psFree(md);
     1704            exit(EXIT_FAILURE);
     1705        }
     1706        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     1707            psFree(md);
     1708            exit(EXIT_FAILURE);
     1709        }
     1710        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     1711            psFree(md);
     1712            exit(EXIT_FAILURE);
     1713        }
    11271714        if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
    11281715            psFree(md);
     
    11331720            exit(EXIT_FAILURE);
    11341721        }
     1722        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     1723            psFree(md);
     1724            exit(EXIT_FAILURE);
     1725        }
     1726        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1727            psFree(md);
     1728            exit(EXIT_FAILURE);
     1729        }
     1730        if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
     1731            psFree(md);
     1732            exit(EXIT_FAILURE);
     1733        }
     1734            psFree(md);
     1735            exit(EXIT_FAILURE);
     1736        }
     1737        if (!psMetadataLookupBool(&status, md, "magiced") == true) {
     1738            psFree(md);
     1739            exit(EXIT_FAILURE);
     1740        }
     1741
     1742        psFree(md);
     1743    }
     1744
     1745    {
     1746        psMetadata      *md;
     1747        warpSkyCellMapRow *object;
     1748        bool            status;
     1749
     1750        object = warpSkyCellMapRowAlloc(-64, "a string", "a string", "a string", -16);
     1751        if (!object) {
     1752            exit(EXIT_FAILURE);
     1753        }
     1754
     1755        md = warpSkyCellMapMetadataFromObject(object);
     1756        if (!md) {
     1757            exit(EXIT_FAILURE);
     1758        }
     1759
     1760        psFree(object);
     1761
     1762            psFree(md);
     1763            exit(EXIT_FAILURE);
     1764        }
     1765        if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
     1766            psFree(md);
     1767            exit(EXIT_FAILURE);
     1768        }
     1769        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1770            psFree(md);
     1771            exit(EXIT_FAILURE);
     1772        }
     1773        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1774            psFree(md);
     1775            exit(EXIT_FAILURE);
     1776        }
     1777            psFree(md);
     1778            exit(EXIT_FAILURE);
     1779        }
     1780
     1781        psFree(md);
     1782    }
     1783
     1784    {
     1785        psMetadata      *md;
     1786        warpSkyfileRow  *object;
     1787        bool            status;
     1788
     1789        object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, 32.32, "a string", 32.32, -32, -32, -32, -32, true, -16);
     1790        if (!object) {
     1791            exit(EXIT_FAILURE);
     1792        }
     1793
     1794        md = warpSkyfileMetadataFromObject(object);
     1795        if (!md) {
     1796            exit(EXIT_FAILURE);
     1797        }
     1798
     1799        psFree(object);
     1800
     1801            psFree(md);
     1802            exit(EXIT_FAILURE);
     1803        }
     1804        if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
     1805            psFree(md);
     1806            exit(EXIT_FAILURE);
     1807        }
     1808        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1809            psFree(md);
     1810            exit(EXIT_FAILURE);
     1811        }
     1812        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     1813            psFree(md);
     1814            exit(EXIT_FAILURE);
     1815        }
     1816        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     1817            psFree(md);
     1818            exit(EXIT_FAILURE);
     1819        }
     1820        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     1821            psFree(md);
     1822            exit(EXIT_FAILURE);
     1823        }
     1824        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     1825            psFree(md);
     1826            exit(EXIT_FAILURE);
     1827        }
     1828        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     1829            psFree(md);
     1830            exit(EXIT_FAILURE);
     1831        }
     1832        if (!psMetadataLookupF32(&status, md, "dtime_warp") == 32.32) {
     1833            psFree(md);
     1834            exit(EXIT_FAILURE);
     1835        }
     1836        if (!psMetadataLookupF32(&status, md, "dtime_script") == 32.32) {
     1837            psFree(md);
     1838            exit(EXIT_FAILURE);
     1839        }
     1840        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     1841            psFree(md);
     1842            exit(EXIT_FAILURE);
     1843        }
     1844        if (!psMetadataLookupF32(&status, md, "good_frac") == 32.32) {
     1845            psFree(md);
     1846            exit(EXIT_FAILURE);
     1847        }
     1848        if (!psMetadataLookupS32(&status, md, "xmin") == -32) {
     1849            psFree(md);
     1850            exit(EXIT_FAILURE);
     1851        }
     1852        if (!psMetadataLookupS32(&status, md, "xmax") == -32) {
     1853            psFree(md);
     1854            exit(EXIT_FAILURE);
     1855        }
     1856        if (!psMetadataLookupS32(&status, md, "ymin") == -32) {
     1857            psFree(md);
     1858            exit(EXIT_FAILURE);
     1859        }
     1860        if (!psMetadataLookupS32(&status, md, "ymax") == -32) {
     1861            psFree(md);
     1862            exit(EXIT_FAILURE);
     1863        }
     1864        if (!psMetadataLookupBool(&status, md, "ignored") == true) {
     1865            psFree(md);
     1866            exit(EXIT_FAILURE);
     1867        }
     1868            psFree(md);
     1869            exit(EXIT_FAILURE);
     1870        }
     1871
     1872        psFree(md);
     1873    }
     1874
     1875    {
     1876        psMetadata      *md;
     1877        warpMaskRow     *object;
     1878        bool            status;
     1879
     1880        object = warpMaskRowAlloc("a string");
     1881        if (!object) {
     1882            exit(EXIT_FAILURE);
     1883        }
     1884
     1885        md = warpMaskMetadataFromObject(object);
     1886        if (!md) {
     1887            exit(EXIT_FAILURE);
     1888        }
     1889
     1890        psFree(object);
     1891
     1892        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     1893            psFree(md);
     1894            exit(EXIT_FAILURE);
     1895        }
     1896
     1897        psFree(md);
     1898    }
     1899
     1900    {
     1901        psMetadata      *md;
     1902        diffRunRow      *object;
     1903        bool            status;
     1904
     1905        object = diffRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string");
     1906        if (!object) {
     1907            exit(EXIT_FAILURE);
     1908        }
     1909
     1910        md = diffRunMetadataFromObject(object);
     1911        if (!md) {
     1912            exit(EXIT_FAILURE);
     1913        }
     1914
     1915        psFree(object);
     1916
     1917            psFree(md);
     1918            exit(EXIT_FAILURE);
     1919        }
     1920        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     1921            psFree(md);
     1922            exit(EXIT_FAILURE);
     1923        }
     1924        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     1925            psFree(md);
     1926            exit(EXIT_FAILURE);
     1927        }
    11351928        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
    11361929            psFree(md);
    11371930            exit(EXIT_FAILURE);
    11381931        }
    1139         if (strncmp(psMetadataLookupPtr(&status, md, "expgroup"), "a string", MAX_STRING_LENGTH)) {
     1932        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    11401933            psFree(md);
    11411934            exit(EXIT_FAILURE);
     
    11451938            exit(EXIT_FAILURE);
    11461939        }
     1940            psFree(md);
     1941            exit(EXIT_FAILURE);
     1942        }
     1943        if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
     1944            psFree(md);
     1945            exit(EXIT_FAILURE);
     1946        }
    11471947        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    11481948            psFree(md);
    11491949            exit(EXIT_FAILURE);
    11501950        }
    1151         if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
    1152             psFree(md);
    1153             exit(EXIT_FAILURE);
    1154         }
    1155 
    1156         psFree(md);
    1157     }
    1158 
    1159     {
    1160         psMetadata      *md;
    1161         camProcessedExpRow *object;
    1162         bool            status;
    1163 
    1164         object = camProcessedExpRowAlloc(-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);
    1165         if (!object) {
    1166             exit(EXIT_FAILURE);
    1167         }
    1168 
    1169         md = camProcessedExpMetadataFromObject(object);
     1951
     1952        psFree(md);
     1953    }
     1954
     1955    {
     1956        psMetadata      *md;
     1957        diffInputSkyfileRow *object;
     1958        bool            status;
     1959
     1960        object = diffInputSkyfileRowAlloc(-64, true, -64, -64, "a string", "a string", "a string");
     1961        if (!object) {
     1962            exit(EXIT_FAILURE);
     1963        }
     1964
     1965        md = diffInputSkyfileMetadataFromObject(object);
     1966        if (!md) {
     1967            exit(EXIT_FAILURE);
     1968        }
     1969
     1970        psFree(object);
     1971
     1972            psFree(md);
     1973            exit(EXIT_FAILURE);
     1974        }
     1975        if (!psMetadataLookupBool(&status, md, "template") == true) {
     1976            psFree(md);
     1977            exit(EXIT_FAILURE);
     1978        }
     1979            psFree(md);
     1980            exit(EXIT_FAILURE);
     1981        }
     1982            psFree(md);
     1983            exit(EXIT_FAILURE);
     1984        }
     1985        if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
     1986            psFree(md);
     1987            exit(EXIT_FAILURE);
     1988        }
     1989        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     1990            psFree(md);
     1991            exit(EXIT_FAILURE);
     1992        }
     1993        if (strncmp(psMetadataLookupPtr(&status, md, "kind"), "a string", MAX_STRING_LENGTH)) {
     1994            psFree(md);
     1995            exit(EXIT_FAILURE);
     1996        }
     1997
     1998        psFree(md);
     1999    }
     2000
     2001    {
     2002        psMetadata      *md;
     2003        diffSkyfileRow  *object;
     2004        bool            status;
     2005
     2006        object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 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, "a string", 32.32, -16);
     2007        if (!object) {
     2008            exit(EXIT_FAILURE);
     2009        }
     2010
     2011        md = diffSkyfileMetadataFromObject(object);
    11702012        if (!md) {
    11712013            exit(EXIT_FAILURE);
     
    11812023            exit(EXIT_FAILURE);
    11822024        }
    1183         if (!psMetadataLookupF32(&status, md, "bg") == 32.32) {
    1184             psFree(md);
    1185             exit(EXIT_FAILURE);
    1186         }
    1187         if (!psMetadataLookupF32(&status, md, "bg_stdev") == 32.32) {
    1188             psFree(md);
    1189             exit(EXIT_FAILURE);
    1190         }
    1191         if (!psMetadataLookupF32(&status, md, "bg_mean_stdev") == 32.32) {
    1192             psFree(md);
    1193             exit(EXIT_FAILURE);
    1194         }
    1195         if (!psMetadataLookupF32(&status, md, "bias") == 32.32) {
    1196             psFree(md);
    1197             exit(EXIT_FAILURE);
    1198         }
    1199         if (!psMetadataLookupF32(&status, md, "bias_stdev") == 32.32) {
    1200             psFree(md);
    1201             exit(EXIT_FAILURE);
    1202         }
    1203         if (!psMetadataLookupF32(&status, md, "fringe_0") == 32.32) {
    1204             psFree(md);
    1205             exit(EXIT_FAILURE);
    1206         }
    1207         if (!psMetadataLookupF32(&status, md, "fringe_1") == 32.32) {
    1208             psFree(md);
    1209             exit(EXIT_FAILURE);
    1210         }
    1211         if (!psMetadataLookupF32(&status, md, "fringe_2") == 32.32) {
    1212             psFree(md);
    1213             exit(EXIT_FAILURE);
    1214         }
    1215         if (!psMetadataLookupF32(&status, md, "sigma_ra") == 32.32) {
    1216             psFree(md);
    1217             exit(EXIT_FAILURE);
    1218         }
    1219         if (!psMetadataLookupF32(&status, md, "sigma_dec") == 32.32) {
    1220             psFree(md);
    1221             exit(EXIT_FAILURE);
    1222         }
    1223         if (!psMetadataLookupF32(&status, md, "ap_resid") == 32.32) {
    1224             psFree(md);
    1225             exit(EXIT_FAILURE);
    1226         }
    1227         if (!psMetadataLookupF32(&status, md, "ap_resid_stdev") == 32.32) {
    1228             psFree(md);
    1229             exit(EXIT_FAILURE);
    1230         }
    1231         if (!psMetadataLookupF32(&status, md, "zp_mean") == 32.32) {
    1232             psFree(md);
    1233             exit(EXIT_FAILURE);
    1234         }
    1235         if (!psMetadataLookupF32(&status, md, "zp_stdev") == 32.32) {
    1236             psFree(md);
    1237             exit(EXIT_FAILURE);
    1238         }
    1239         if (!psMetadataLookupF32(&status, md, "fwhm_major") == 32.32) {
    1240             psFree(md);
    1241             exit(EXIT_FAILURE);
    1242         }
    1243         if (!psMetadataLookupF32(&status, md, "fwhm_minor") == 32.32) {
    1244             psFree(md);
    1245             exit(EXIT_FAILURE);
    1246         }
    1247         if (!psMetadataLookupF32(&status, md, "dtime_detrend") == 32.32) {
    1248             psFree(md);
    1249             exit(EXIT_FAILURE);
    1250         }
    1251         if (!psMetadataLookupF32(&status, md, "dtime_photom") == 32.32) {
    1252             psFree(md);
    1253             exit(EXIT_FAILURE);
    1254         }
    1255         if (!psMetadataLookupF32(&status, md, "dtime_astrom") == 32.32) {
     2025        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2026            psFree(md);
     2027            exit(EXIT_FAILURE);
     2028        }
     2029        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2030            psFree(md);
     2031            exit(EXIT_FAILURE);
     2032        }
     2033        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2034            psFree(md);
     2035            exit(EXIT_FAILURE);
     2036        }
     2037        if (!psMetadataLookupS32(&status, md, "stamps_num") == -32) {
     2038            psFree(md);
     2039            exit(EXIT_FAILURE);
     2040        }
     2041        if (!psMetadataLookupF32(&status, md, "stamps_mean") == 32.32) {
     2042            psFree(md);
     2043            exit(EXIT_FAILURE);
     2044        }
     2045        if (!psMetadataLookupF32(&status, md, "stamps_rms") == 32.32) {
     2046            psFree(md);
     2047            exit(EXIT_FAILURE);
     2048        }
     2049        if (!psMetadataLookupF32(&status, md, "norm") == 32.32) {
     2050            psFree(md);
     2051            exit(EXIT_FAILURE);
     2052        }
     2053        if (!psMetadataLookupF32(&status, md, "bg_diff") == 32.32) {
     2054            psFree(md);
     2055            exit(EXIT_FAILURE);
     2056        }
     2057        if (!psMetadataLookupF32(&status, md, "kernel_x") == 32.32) {
     2058            psFree(md);
     2059            exit(EXIT_FAILURE);
     2060        }
     2061        if (!psMetadataLookupF32(&status, md, "kernel_y") == 32.32) {
     2062            psFree(md);
     2063            exit(EXIT_FAILURE);
     2064        }
     2065        if (!psMetadataLookupF32(&status, md, "kernel_xx") == 32.32) {
     2066            psFree(md);
     2067            exit(EXIT_FAILURE);
     2068        }
     2069        if (!psMetadataLookupF32(&status, md, "kernel_xy") == 32.32) {
     2070            psFree(md);
     2071            exit(EXIT_FAILURE);
     2072        }
     2073        if (!psMetadataLookupF32(&status, md, "kernel_yy") == 32.32) {
     2074            psFree(md);
     2075            exit(EXIT_FAILURE);
     2076        }
     2077        if (!psMetadataLookupS32(&status, md, "sources") == -32) {
     2078            psFree(md);
     2079            exit(EXIT_FAILURE);
     2080        }
     2081        if (!psMetadataLookupF32(&status, md, "dtime_diff") == 32.32) {
     2082            psFree(md);
     2083            exit(EXIT_FAILURE);
     2084        }
     2085        if (!psMetadataLookupF32(&status, md, "dtime_match") == 32.32) {
     2086            psFree(md);
     2087            exit(EXIT_FAILURE);
     2088        }
     2089        if (!psMetadataLookupF32(&status, md, "dtime_phot") == 32.32) {
     2090            psFree(md);
     2091            exit(EXIT_FAILURE);
     2092        }
     2093        if (!psMetadataLookupF32(&status, md, "dtime_script") == 32.32) {
    12562094            psFree(md);
    12572095            exit(EXIT_FAILURE);
     
    12612099            exit(EXIT_FAILURE);
    12622100        }
    1263         if (!psMetadataLookupS32(&status, md, "n_stars") == -32) {
    1264             psFree(md);
    1265             exit(EXIT_FAILURE);
    1266         }
    1267         if (!psMetadataLookupS32(&status, md, "n_extended") == -32) {
    1268             psFree(md);
    1269             exit(EXIT_FAILURE);
    1270         }
    1271         if (!psMetadataLookupS32(&status, md, "n_cr") == -32) {
    1272             psFree(md);
    1273             exit(EXIT_FAILURE);
    1274         }
    1275         if (!psMetadataLookupS32(&status, md, "n_astrom") == -32) {
     2101        if (!psMetadataLookupF32(&status, md, "good_frac") == 32.32) {
     2102            psFree(md);
     2103            exit(EXIT_FAILURE);
     2104        }
     2105            psFree(md);
     2106            exit(EXIT_FAILURE);
     2107        }
     2108
     2109        psFree(md);
     2110    }
     2111
     2112    {
     2113        psMetadata      *md;
     2114        stackRunRow     *object;
     2115        bool            status;
     2116
     2117        object = stackRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string");
     2118        if (!object) {
     2119            exit(EXIT_FAILURE);
     2120        }
     2121
     2122        md = stackRunMetadataFromObject(object);
     2123        if (!md) {
     2124            exit(EXIT_FAILURE);
     2125        }
     2126
     2127        psFree(object);
     2128
     2129            psFree(md);
     2130            exit(EXIT_FAILURE);
     2131        }
     2132        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     2133            psFree(md);
     2134            exit(EXIT_FAILURE);
     2135        }
     2136        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     2137            psFree(md);
     2138            exit(EXIT_FAILURE);
     2139        }
     2140        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     2141            psFree(md);
     2142            exit(EXIT_FAILURE);
     2143        }
     2144        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
     2145            psFree(md);
     2146            exit(EXIT_FAILURE);
     2147        }
     2148        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     2149            psFree(md);
     2150            exit(EXIT_FAILURE);
     2151        }
     2152            psFree(md);
     2153            exit(EXIT_FAILURE);
     2154        }
     2155        if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
     2156            psFree(md);
     2157            exit(EXIT_FAILURE);
     2158        }
     2159        if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     2160            psFree(md);
     2161            exit(EXIT_FAILURE);
     2162        }
     2163        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
     2164            psFree(md);
     2165            exit(EXIT_FAILURE);
     2166        }
     2167
     2168        psFree(md);
     2169    }
     2170
     2171    {
     2172        psMetadata      *md;
     2173        stackInputSkyfileRow *object;
     2174        bool            status;
     2175
     2176        object = stackInputSkyfileRowAlloc(-64, -64);
     2177        if (!object) {
     2178            exit(EXIT_FAILURE);
     2179        }
     2180
     2181        md = stackInputSkyfileMetadataFromObject(object);
     2182        if (!md) {
     2183            exit(EXIT_FAILURE);
     2184        }
     2185
     2186        psFree(object);
     2187
     2188            psFree(md);
     2189            exit(EXIT_FAILURE);
     2190        }
     2191            psFree(md);
     2192            exit(EXIT_FAILURE);
     2193        }
     2194
     2195        psFree(md);
     2196    }
     2197
     2198    {
     2199        psMetadata      *md;
     2200        stackSumSkyfileRow *object;
     2201        bool            status;
     2202
     2203        object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 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, "a string", 32.32, -16);
     2204        if (!object) {
     2205            exit(EXIT_FAILURE);
     2206        }
     2207
     2208        md = stackSumSkyfileMetadataFromObject(object);
     2209        if (!md) {
     2210            exit(EXIT_FAILURE);
     2211        }
     2212
     2213        psFree(object);
     2214
     2215            psFree(md);
     2216            exit(EXIT_FAILURE);
     2217        }
     2218        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    12762219            psFree(md);
    12772220            exit(EXIT_FAILURE);
     
    12812224            exit(EXIT_FAILURE);
    12822225        }
    1283             psFree(md);
    1284             exit(EXIT_FAILURE);
    1285         }
    1286 
    1287         psFree(md);
    1288     }
    1289 
    1290     {
    1291         psMetadata      *md;
    1292         camMaskRow      *object;
    1293         bool            status;
    1294 
    1295         object = camMaskRowAlloc("a string");
    1296         if (!object) {
    1297             exit(EXIT_FAILURE);
    1298         }
    1299 
    1300         md = camMaskMetadataFromObject(object);
    1301         if (!md) {
    1302             exit(EXIT_FAILURE);
    1303         }
    1304 
    1305         psFree(object);
    1306 
     2226        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2227            psFree(md);
     2228            exit(EXIT_FAILURE);
     2229        }
     2230        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2231            psFree(md);
     2232            exit(EXIT_FAILURE);
     2233        }
     2234        if (!psMetadataLookupF32(&status, md, "dtime_stack") == 32.32) {
     2235            psFree(md);
     2236            exit(EXIT_FAILURE);
     2237        }
     2238        if (!psMetadataLookupF32(&status, md, "dtime_match_mean") == 32.32) {
     2239            psFree(md);
     2240            exit(EXIT_FAILURE);
     2241        }
     2242        if (!psMetadataLookupF32(&status, md, "dtime_match_stdev") == 32.32) {
     2243            psFree(md);
     2244            exit(EXIT_FAILURE);
     2245        }
     2246        if (!psMetadataLookupF32(&status, md, "dtime_initial") == 32.32) {
     2247            psFree(md);
     2248            exit(EXIT_FAILURE);
     2249        }
     2250        if (!psMetadataLookupF32(&status, md, "dtime_reject") == 32.32) {
     2251            psFree(md);
     2252            exit(EXIT_FAILURE);
     2253        }
     2254        if (!psMetadataLookupF32(&status, md, "dtime_final") == 32.32) {
     2255            psFree(md);
     2256            exit(EXIT_FAILURE);
     2257        }
     2258        if (!psMetadataLookupF32(&status, md, "dtime_phot") == 32.32) {
     2259            psFree(md);
     2260            exit(EXIT_FAILURE);
     2261        }
     2262        if (!psMetadataLookupF32(&status, md, "dtime_script") == 32.32) {
     2263            psFree(md);
     2264            exit(EXIT_FAILURE);
     2265        }
     2266        if (!psMetadataLookupF32(&status, md, "match_mean") == 32.32) {
     2267            psFree(md);
     2268            exit(EXIT_FAILURE);
     2269        }
     2270        if (!psMetadataLookupF32(&status, md, "match_stdev") == 32.32) {
     2271            psFree(md);
     2272            exit(EXIT_FAILURE);
     2273        }
     2274        if (!psMetadataLookupF32(&status, md, "match_rms") == 32.32) {
     2275            psFree(md);
     2276            exit(EXIT_FAILURE);
     2277        }
     2278        if (!psMetadataLookupF32(&status, md, "stamps_mean") == 32.32) {
     2279            psFree(md);
     2280            exit(EXIT_FAILURE);
     2281        }
     2282        if (!psMetadataLookupF32(&status, md, "stamps_stdev") == 32.32) {
     2283            psFree(md);
     2284            exit(EXIT_FAILURE);
     2285        }
     2286        if (!psMetadataLookupS32(&status, md, "stamps_min") == -32) {
     2287            psFree(md);
     2288            exit(EXIT_FAILURE);
     2289        }
     2290        if (!psMetadataLookupS32(&status, md, "reject_images") == -32) {
     2291            psFree(md);
     2292            exit(EXIT_FAILURE);
     2293        }
     2294        if (!psMetadataLookupF32(&status, md, "reject_pix_mean") == 32.32) {
     2295            psFree(md);
     2296            exit(EXIT_FAILURE);
     2297        }
     2298        if (!psMetadataLookupF32(&status, md, "reject_pix_stdev") == 32.32) {
     2299            psFree(md);
     2300            exit(EXIT_FAILURE);
     2301        }
     2302        if (!psMetadataLookupS32(&status, md, "sources") == -32) {
     2303            psFree(md);
     2304            exit(EXIT_FAILURE);
     2305        }
     2306        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     2307            psFree(md);
     2308            exit(EXIT_FAILURE);
     2309        }
     2310        if (!psMetadataLookupF32(&status, md, "good_frac") == 32.32) {
     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        detRunRow       *object;
     2324        bool            status;
     2325
     2326        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", -64, -32);
     2327        if (!object) {
     2328            exit(EXIT_FAILURE);
     2329        }
     2330
     2331        md = detRunMetadataFromObject(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        if (strncmp(psMetadataLookupPtr(&status, md, "det_type"), "a string", MAX_STRING_LENGTH)) {
     2346            psFree(md);
     2347            exit(EXIT_FAILURE);
     2348        }
     2349        if (strncmp(psMetadataLookupPtr(&status, md, "mode"), "a string", MAX_STRING_LENGTH)) {
     2350            psFree(md);
     2351            exit(EXIT_FAILURE);
     2352        }
     2353        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     2354            psFree(md);
     2355            exit(EXIT_FAILURE);
     2356        }
     2357        if (strncmp(psMetadataLookupPtr(&status, md, "filelevel"), "a string", MAX_STRING_LENGTH)) {
     2358            psFree(md);
     2359            exit(EXIT_FAILURE);
     2360        }
     2361        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     2362            psFree(md);
     2363            exit(EXIT_FAILURE);
     2364        }
     2365        if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) {
     2366            psFree(md);
     2367            exit(EXIT_FAILURE);
     2368        }
     2369        if (strncmp(psMetadataLookupPtr(&status, md, "telescope"), "a string", MAX_STRING_LENGTH)) {
     2370            psFree(md);
     2371            exit(EXIT_FAILURE);
     2372        }
     2373        if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
     2374            psFree(md);
     2375            exit(EXIT_FAILURE);
     2376        }
     2377        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
     2378            psFree(md);
     2379            exit(EXIT_FAILURE);
     2380        }
     2381        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
     2382            psFree(md);
     2383            exit(EXIT_FAILURE);
     2384        }
     2385        if (!psMetadataLookupF32(&status, md, "airmass_min") == 32.32) {
     2386            psFree(md);
     2387            exit(EXIT_FAILURE);
     2388        }
     2389        if (!psMetadataLookupF32(&status, md, "airmass_max") == 32.32) {
     2390            psFree(md);
     2391            exit(EXIT_FAILURE);
     2392        }
     2393        if (!psMetadataLookupF32(&status, md, "exp_time_min") == 32.32) {
     2394            psFree(md);
     2395            exit(EXIT_FAILURE);
     2396        }
     2397        if (!psMetadataLookupF32(&status, md, "exp_time_max") == 32.32) {
     2398            psFree(md);
     2399            exit(EXIT_FAILURE);
     2400        }
     2401        if (!psMetadataLookupF32(&status, md, "ccd_temp_min") == 32.32) {
     2402            psFree(md);
     2403            exit(EXIT_FAILURE);
     2404        }
     2405        if (!psMetadataLookupF32(&status, md, "ccd_temp_max") == 32.32) {
     2406            psFree(md);
     2407            exit(EXIT_FAILURE);
     2408        }
     2409        if (!psMetadataLookupF64(&status, md, "posang_min") == 64.64) {
     2410            psFree(md);
     2411            exit(EXIT_FAILURE);
     2412        }
     2413        if (!psMetadataLookupF64(&status, md, "posang_max") == 64.64) {
     2414            psFree(md);
     2415            exit(EXIT_FAILURE);
     2416        }
     2417            psFree(md);
     2418            exit(EXIT_FAILURE);
     2419        }
     2420            psFree(md);
     2421            exit(EXIT_FAILURE);
     2422        }
     2423            psFree(md);
     2424            exit(EXIT_FAILURE);
     2425        }
     2426            psFree(md);
     2427            exit(EXIT_FAILURE);
     2428        }
     2429            psFree(md);
     2430            exit(EXIT_FAILURE);
     2431        }
     2432        if (!psMetadataLookupF32(&status, md, "solang_min") == 32.32) {
     2433            psFree(md);
     2434            exit(EXIT_FAILURE);
     2435        }
     2436        if (!psMetadataLookupF32(&status, md, "solang_max") == 32.32) {
     2437            psFree(md);
     2438            exit(EXIT_FAILURE);
     2439        }
    13072440        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    13082441            psFree(md);
    13092442            exit(EXIT_FAILURE);
    13102443        }
    1311 
    1312         psFree(md);
    1313     }
    1314 
    1315     {
    1316         psMetadata      *md;
    1317         fakeRunRow      *object;
    1318         bool            status;
    1319 
    1320         object = fakeRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z");
    1321         if (!object) {
    1322             exit(EXIT_FAILURE);
    1323         }
    1324 
    1325         md = fakeRunMetadataFromObject(object);
     2444            psFree(md);
     2445            exit(EXIT_FAILURE);
     2446        }
     2447        if (!psMetadataLookupS32(&status, md, "ref_iter") == -32) {
     2448            psFree(md);
     2449            exit(EXIT_FAILURE);
     2450        }
     2451
     2452        psFree(md);
     2453    }
     2454
     2455    {
     2456        psMetadata      *md;
     2457        detInputExpRow  *object;
     2458        bool            status;
     2459
     2460        object = detInputExpRowAlloc(-64, -32, -64, true);
     2461        if (!object) {
     2462            exit(EXIT_FAILURE);
     2463        }
     2464
     2465        md = detInputExpMetadataFromObject(object);
     2466        if (!md) {
     2467            exit(EXIT_FAILURE);
     2468        }
     2469
     2470        psFree(object);
     2471
     2472            psFree(md);
     2473            exit(EXIT_FAILURE);
     2474        }
     2475        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2476            psFree(md);
     2477            exit(EXIT_FAILURE);
     2478        }
     2479            psFree(md);
     2480            exit(EXIT_FAILURE);
     2481        }
     2482        if (!psMetadataLookupBool(&status, md, "include") == true) {
     2483            psFree(md);
     2484            exit(EXIT_FAILURE);
     2485        }
     2486
     2487        psFree(md);
     2488    }
     2489
     2490    {
     2491        psMetadata      *md;
     2492        detProcessedImfileRow *object;
     2493        bool            status;
     2494
     2495        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", "a string", -16);
     2496        if (!object) {
     2497            exit(EXIT_FAILURE);
     2498        }
     2499
     2500        md = detProcessedImfileMetadataFromObject(object);
     2501        if (!md) {
     2502            exit(EXIT_FAILURE);
     2503        }
     2504
     2505        psFree(object);
     2506
     2507            psFree(md);
     2508            exit(EXIT_FAILURE);
     2509        }
     2510            psFree(md);
     2511            exit(EXIT_FAILURE);
     2512        }
     2513        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     2514            psFree(md);
     2515            exit(EXIT_FAILURE);
     2516        }
     2517        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2518            psFree(md);
     2519            exit(EXIT_FAILURE);
     2520        }
     2521        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2522            psFree(md);
     2523            exit(EXIT_FAILURE);
     2524        }
     2525        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2526            psFree(md);
     2527            exit(EXIT_FAILURE);
     2528        }
     2529        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2530            psFree(md);
     2531            exit(EXIT_FAILURE);
     2532        }
     2533        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2534            psFree(md);
     2535            exit(EXIT_FAILURE);
     2536        }
     2537        if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
     2538            psFree(md);
     2539            exit(EXIT_FAILURE);
     2540        }
     2541        if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
     2542            psFree(md);
     2543            exit(EXIT_FAILURE);
     2544        }
     2545        if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
     2546            psFree(md);
     2547            exit(EXIT_FAILURE);
     2548        }
     2549        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2550            psFree(md);
     2551            exit(EXIT_FAILURE);
     2552        }
     2553        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2554            psFree(md);
     2555            exit(EXIT_FAILURE);
     2556        }
     2557        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2558            psFree(md);
     2559            exit(EXIT_FAILURE);
     2560        }
     2561        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2562            psFree(md);
     2563            exit(EXIT_FAILURE);
     2564        }
     2565        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2566            psFree(md);
     2567            exit(EXIT_FAILURE);
     2568        }
     2569        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2570            psFree(md);
     2571            exit(EXIT_FAILURE);
     2572        }
     2573        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     2574            psFree(md);
     2575            exit(EXIT_FAILURE);
     2576        }
     2577            psFree(md);
     2578            exit(EXIT_FAILURE);
     2579        }
     2580
     2581        psFree(md);
     2582    }
     2583
     2584    {
     2585        psMetadata      *md;
     2586        detProcessedExpRow *object;
     2587        bool            status;
     2588
     2589        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", "a string", -16);
     2590        if (!object) {
     2591            exit(EXIT_FAILURE);
     2592        }
     2593
     2594        md = detProcessedExpMetadataFromObject(object);
     2595        if (!md) {
     2596            exit(EXIT_FAILURE);
     2597        }
     2598
     2599        psFree(object);
     2600
     2601            psFree(md);
     2602            exit(EXIT_FAILURE);
     2603        }
     2604            psFree(md);
     2605            exit(EXIT_FAILURE);
     2606        }
     2607        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2608            psFree(md);
     2609            exit(EXIT_FAILURE);
     2610        }
     2611        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2612            psFree(md);
     2613            exit(EXIT_FAILURE);
     2614        }
     2615        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2616            psFree(md);
     2617            exit(EXIT_FAILURE);
     2618        }
     2619        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2620            psFree(md);
     2621            exit(EXIT_FAILURE);
     2622        }
     2623        if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
     2624            psFree(md);
     2625            exit(EXIT_FAILURE);
     2626        }
     2627        if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
     2628            psFree(md);
     2629            exit(EXIT_FAILURE);
     2630        }
     2631        if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
     2632            psFree(md);
     2633            exit(EXIT_FAILURE);
     2634        }
     2635        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2636            psFree(md);
     2637            exit(EXIT_FAILURE);
     2638        }
     2639        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2640            psFree(md);
     2641            exit(EXIT_FAILURE);
     2642        }
     2643        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2644            psFree(md);
     2645            exit(EXIT_FAILURE);
     2646        }
     2647        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2648            psFree(md);
     2649            exit(EXIT_FAILURE);
     2650        }
     2651        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2652            psFree(md);
     2653            exit(EXIT_FAILURE);
     2654        }
     2655        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2656            psFree(md);
     2657            exit(EXIT_FAILURE);
     2658        }
     2659        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     2660            psFree(md);
     2661            exit(EXIT_FAILURE);
     2662        }
     2663            psFree(md);
     2664            exit(EXIT_FAILURE);
     2665        }
     2666
     2667        psFree(md);
     2668    }
     2669
     2670    {
     2671        psMetadata      *md;
     2672        detStackedImfileRow *object;
     2673        bool            status;
     2674
     2675        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, "a string", -16);
     2676        if (!object) {
     2677            exit(EXIT_FAILURE);
     2678        }
     2679
     2680        md = detStackedImfileMetadataFromObject(object);
     2681        if (!md) {
     2682            exit(EXIT_FAILURE);
     2683        }
     2684
     2685        psFree(object);
     2686
     2687            psFree(md);
     2688            exit(EXIT_FAILURE);
     2689        }
     2690        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2691            psFree(md);
     2692            exit(EXIT_FAILURE);
     2693        }
     2694        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     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        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2703            psFree(md);
     2704            exit(EXIT_FAILURE);
     2705        }
     2706        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2707            psFree(md);
     2708            exit(EXIT_FAILURE);
     2709        }
     2710        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2711            psFree(md);
     2712            exit(EXIT_FAILURE);
     2713        }
     2714        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2715            psFree(md);
     2716            exit(EXIT_FAILURE);
     2717        }
     2718        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2719            psFree(md);
     2720            exit(EXIT_FAILURE);
     2721        }
     2722        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2723            psFree(md);
     2724            exit(EXIT_FAILURE);
     2725        }
     2726        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2727            psFree(md);
     2728            exit(EXIT_FAILURE);
     2729        }
     2730        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2731            psFree(md);
     2732            exit(EXIT_FAILURE);
     2733        }
     2734        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2735            psFree(md);
     2736            exit(EXIT_FAILURE);
     2737        }
     2738        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     2739            psFree(md);
     2740            exit(EXIT_FAILURE);
     2741        }
     2742            psFree(md);
     2743            exit(EXIT_FAILURE);
     2744        }
     2745
     2746        psFree(md);
     2747    }
     2748
     2749    {
     2750        psMetadata      *md;
     2751        detNormalizedStatImfileRow *object;
     2752        bool            status;
     2753
     2754        object = detNormalizedStatImfileRowAlloc(-64, -32, "a string", 32.32, "a string", -16);
     2755        if (!object) {
     2756            exit(EXIT_FAILURE);
     2757        }
     2758
     2759        md = detNormalizedStatImfileMetadataFromObject(object);
     2760        if (!md) {
     2761            exit(EXIT_FAILURE);
     2762        }
     2763
     2764        psFree(object);
     2765
     2766            psFree(md);
     2767            exit(EXIT_FAILURE);
     2768        }
     2769        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2770            psFree(md);
     2771            exit(EXIT_FAILURE);
     2772        }
     2773        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     2774            psFree(md);
     2775            exit(EXIT_FAILURE);
     2776        }
     2777        if (!psMetadataLookupF32(&status, md, "norm") == 32.32) {
     2778            psFree(md);
     2779            exit(EXIT_FAILURE);
     2780        }
     2781        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     2782            psFree(md);
     2783            exit(EXIT_FAILURE);
     2784        }
     2785            psFree(md);
     2786            exit(EXIT_FAILURE);
     2787        }
     2788
     2789        psFree(md);
     2790    }
     2791
     2792    {
     2793        psMetadata      *md;
     2794        detNormalizedImfileRow *object;
     2795        bool            status;
     2796
     2797        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", "a string", -16);
     2798        if (!object) {
     2799            exit(EXIT_FAILURE);
     2800        }
     2801
     2802        md = detNormalizedImfileMetadataFromObject(object);
     2803        if (!md) {
     2804            exit(EXIT_FAILURE);
     2805        }
     2806
     2807        psFree(object);
     2808
     2809            psFree(md);
     2810            exit(EXIT_FAILURE);
     2811        }
     2812        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2813            psFree(md);
     2814            exit(EXIT_FAILURE);
     2815        }
     2816        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     2817            psFree(md);
     2818            exit(EXIT_FAILURE);
     2819        }
     2820        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2821            psFree(md);
     2822            exit(EXIT_FAILURE);
     2823        }
     2824        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2825            psFree(md);
     2826            exit(EXIT_FAILURE);
     2827        }
     2828        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2829            psFree(md);
     2830            exit(EXIT_FAILURE);
     2831        }
     2832        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2833            psFree(md);
     2834            exit(EXIT_FAILURE);
     2835        }
     2836        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2837            psFree(md);
     2838            exit(EXIT_FAILURE);
     2839        }
     2840        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2841            psFree(md);
     2842            exit(EXIT_FAILURE);
     2843        }
     2844        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2845            psFree(md);
     2846            exit(EXIT_FAILURE);
     2847        }
     2848        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2849            psFree(md);
     2850            exit(EXIT_FAILURE);
     2851        }
     2852        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2853            psFree(md);
     2854            exit(EXIT_FAILURE);
     2855        }
     2856        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2857            psFree(md);
     2858            exit(EXIT_FAILURE);
     2859        }
     2860        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     2861            psFree(md);
     2862            exit(EXIT_FAILURE);
     2863        }
     2864            psFree(md);
     2865            exit(EXIT_FAILURE);
     2866        }
     2867
     2868        psFree(md);
     2869    }
     2870
     2871    {
     2872        psMetadata      *md;
     2873        detNormalizedExpRow *object;
     2874        bool            status;
     2875
     2876        object = detNormalizedExpRowAlloc(-64, -32, "a string", 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, 64.64, "a string", "a string", -16);
     2877        if (!object) {
     2878            exit(EXIT_FAILURE);
     2879        }
     2880
     2881        md = detNormalizedExpMetadataFromObject(object);
     2882        if (!md) {
     2883            exit(EXIT_FAILURE);
     2884        }
     2885
     2886        psFree(object);
     2887
     2888            psFree(md);
     2889            exit(EXIT_FAILURE);
     2890        }
     2891        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2892            psFree(md);
     2893            exit(EXIT_FAILURE);
     2894        }
     2895        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2896            psFree(md);
     2897            exit(EXIT_FAILURE);
     2898        }
     2899        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2900            psFree(md);
     2901            exit(EXIT_FAILURE);
     2902        }
     2903        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2904            psFree(md);
     2905            exit(EXIT_FAILURE);
     2906        }
     2907        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     2908            psFree(md);
     2909            exit(EXIT_FAILURE);
     2910        }
     2911        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     2912            psFree(md);
     2913            exit(EXIT_FAILURE);
     2914        }
     2915        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     2916            psFree(md);
     2917            exit(EXIT_FAILURE);
     2918        }
     2919        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     2920            psFree(md);
     2921            exit(EXIT_FAILURE);
     2922        }
     2923        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     2924            psFree(md);
     2925            exit(EXIT_FAILURE);
     2926        }
     2927        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     2928            psFree(md);
     2929            exit(EXIT_FAILURE);
     2930        }
     2931        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     2932            psFree(md);
     2933            exit(EXIT_FAILURE);
     2934        }
     2935        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     2936            psFree(md);
     2937            exit(EXIT_FAILURE);
     2938        }
     2939            psFree(md);
     2940            exit(EXIT_FAILURE);
     2941        }
     2942
     2943        psFree(md);
     2944    }
     2945
     2946    {
     2947        psMetadata      *md;
     2948        detResidImfileRow *object;
     2949        bool            status;
     2950
     2951        object = detResidImfileRowAlloc(-64, -32, -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", "a string", -16);
     2952        if (!object) {
     2953            exit(EXIT_FAILURE);
     2954        }
     2955
     2956        md = detResidImfileMetadataFromObject(object);
     2957        if (!md) {
     2958            exit(EXIT_FAILURE);
     2959        }
     2960
     2961        psFree(object);
     2962
     2963            psFree(md);
     2964            exit(EXIT_FAILURE);
     2965        }
     2966        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     2967            psFree(md);
     2968            exit(EXIT_FAILURE);
     2969        }
     2970            psFree(md);
     2971            exit(EXIT_FAILURE);
     2972        }
     2973        if (!psMetadataLookupS32(&status, md, "ref_iter") == -32) {
     2974            psFree(md);
     2975            exit(EXIT_FAILURE);
     2976        }
     2977            psFree(md);
     2978            exit(EXIT_FAILURE);
     2979        }
     2980        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     2981            psFree(md);
     2982            exit(EXIT_FAILURE);
     2983        }
     2984        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     2985            psFree(md);
     2986            exit(EXIT_FAILURE);
     2987        }
     2988        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     2989            psFree(md);
     2990            exit(EXIT_FAILURE);
     2991        }
     2992        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     2993            psFree(md);
     2994            exit(EXIT_FAILURE);
     2995        }
     2996        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     2997            psFree(md);
     2998            exit(EXIT_FAILURE);
     2999        }
     3000        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     3001            psFree(md);
     3002            exit(EXIT_FAILURE);
     3003        }
     3004        if (!psMetadataLookupF64(&status, md, "bg_skewness") == 64.64) {
     3005            psFree(md);
     3006            exit(EXIT_FAILURE);
     3007        }
     3008        if (!psMetadataLookupF64(&status, md, "bg_kurtosis") == 64.64) {
     3009            psFree(md);
     3010            exit(EXIT_FAILURE);
     3011        }
     3012        if (!psMetadataLookupF64(&status, md, "bin_stdev") == 64.64) {
     3013            psFree(md);
     3014            exit(EXIT_FAILURE);
     3015        }
     3016        if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
     3017            psFree(md);
     3018            exit(EXIT_FAILURE);
     3019        }
     3020        if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
     3021            psFree(md);
     3022            exit(EXIT_FAILURE);
     3023        }
     3024        if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
     3025            psFree(md);
     3026            exit(EXIT_FAILURE);
     3027        }
     3028        if (!psMetadataLookupF64(&status, md, "fringe_resid_0") == 64.64) {
     3029            psFree(md);
     3030            exit(EXIT_FAILURE);
     3031        }
     3032        if (!psMetadataLookupF64(&status, md, "fringe_resid_1") == 64.64) {
     3033            psFree(md);
     3034            exit(EXIT_FAILURE);
     3035        }
     3036        if (!psMetadataLookupF64(&status, md, "fringe_resid_2") == 64.64) {
     3037            psFree(md);
     3038            exit(EXIT_FAILURE);
     3039        }
     3040        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     3041            psFree(md);
     3042            exit(EXIT_FAILURE);
     3043        }
     3044        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     3045            psFree(md);
     3046            exit(EXIT_FAILURE);
     3047        }
     3048        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     3049            psFree(md);
     3050            exit(EXIT_FAILURE);
     3051        }
     3052        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     3053            psFree(md);
     3054            exit(EXIT_FAILURE);
     3055        }
     3056        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     3057            psFree(md);
     3058            exit(EXIT_FAILURE);
     3059        }
     3060        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     3061            psFree(md);
     3062            exit(EXIT_FAILURE);
     3063        }
     3064        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     3065            psFree(md);
     3066            exit(EXIT_FAILURE);
     3067        }
     3068            psFree(md);
     3069            exit(EXIT_FAILURE);
     3070        }
     3071
     3072        psFree(md);
     3073    }
     3074
     3075    {
     3076        psMetadata      *md;
     3077        detResidExpRow  *object;
     3078        bool            status;
     3079
     3080        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", "a string", true, -16);
     3081        if (!object) {
     3082            exit(EXIT_FAILURE);
     3083        }
     3084
     3085        md = detResidExpMetadataFromObject(object);
     3086        if (!md) {
     3087            exit(EXIT_FAILURE);
     3088        }
     3089
     3090        psFree(object);
     3091
     3092            psFree(md);
     3093            exit(EXIT_FAILURE);
     3094        }
     3095        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     3096            psFree(md);
     3097            exit(EXIT_FAILURE);
     3098        }
     3099            psFree(md);
     3100            exit(EXIT_FAILURE);
     3101        }
     3102        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     3103            psFree(md);
     3104            exit(EXIT_FAILURE);
     3105        }
     3106        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     3107            psFree(md);
     3108            exit(EXIT_FAILURE);
     3109        }
     3110        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     3111            psFree(md);
     3112            exit(EXIT_FAILURE);
     3113        }
     3114        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     3115            psFree(md);
     3116            exit(EXIT_FAILURE);
     3117        }
     3118        if (!psMetadataLookupF64(&status, md, "bg_skewness") == 64.64) {
     3119            psFree(md);
     3120            exit(EXIT_FAILURE);
     3121        }
     3122        if (!psMetadataLookupF64(&status, md, "bg_kurtosis") == 64.64) {
     3123            psFree(md);
     3124            exit(EXIT_FAILURE);
     3125        }
     3126        if (!psMetadataLookupF64(&status, md, "bin_stdev") == 64.64) {
     3127            psFree(md);
     3128            exit(EXIT_FAILURE);
     3129        }
     3130        if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
     3131            psFree(md);
     3132            exit(EXIT_FAILURE);
     3133        }
     3134        if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
     3135            psFree(md);
     3136            exit(EXIT_FAILURE);
     3137        }
     3138        if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
     3139            psFree(md);
     3140            exit(EXIT_FAILURE);
     3141        }
     3142        if (!psMetadataLookupF64(&status, md, "fringe_resid_0") == 64.64) {
     3143            psFree(md);
     3144            exit(EXIT_FAILURE);
     3145        }
     3146        if (!psMetadataLookupF64(&status, md, "fringe_resid_1") == 64.64) {
     3147            psFree(md);
     3148            exit(EXIT_FAILURE);
     3149        }
     3150        if (!psMetadataLookupF64(&status, md, "fringe_resid_2") == 64.64) {
     3151            psFree(md);
     3152            exit(EXIT_FAILURE);
     3153        }
     3154        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     3155            psFree(md);
     3156            exit(EXIT_FAILURE);
     3157        }
     3158        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     3159            psFree(md);
     3160            exit(EXIT_FAILURE);
     3161        }
     3162        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     3163            psFree(md);
     3164            exit(EXIT_FAILURE);
     3165        }
     3166        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     3167            psFree(md);
     3168            exit(EXIT_FAILURE);
     3169        }
     3170        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     3171            psFree(md);
     3172            exit(EXIT_FAILURE);
     3173        }
     3174        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     3175            psFree(md);
     3176            exit(EXIT_FAILURE);
     3177        }
     3178        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     3179            psFree(md);
     3180            exit(EXIT_FAILURE);
     3181        }
     3182        if (!psMetadataLookupBool(&status, md, "accept") == true) {
     3183            psFree(md);
     3184            exit(EXIT_FAILURE);
     3185        }
     3186            psFree(md);
     3187            exit(EXIT_FAILURE);
     3188        }
     3189
     3190        psFree(md);
     3191    }
     3192
     3193    {
     3194        psMetadata      *md;
     3195        detRunSummaryRow *object;
     3196        bool            status;
     3197
     3198        object = detRunSummaryRowAlloc(-64, -32, "a string", 64.64, 64.64, 64.64, true, -16);
     3199        if (!object) {
     3200            exit(EXIT_FAILURE);
     3201        }
     3202
     3203        md = detRunSummaryMetadataFromObject(object);
     3204        if (!md) {
     3205            exit(EXIT_FAILURE);
     3206        }
     3207
     3208        psFree(object);
     3209
     3210            psFree(md);
     3211            exit(EXIT_FAILURE);
     3212        }
     3213        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     3214            psFree(md);
     3215            exit(EXIT_FAILURE);
     3216        }
     3217        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     3218            psFree(md);
     3219            exit(EXIT_FAILURE);
     3220        }
     3221        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     3222            psFree(md);
     3223            exit(EXIT_FAILURE);
     3224        }
     3225        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     3226            psFree(md);
     3227            exit(EXIT_FAILURE);
     3228        }
     3229        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     3230            psFree(md);
     3231            exit(EXIT_FAILURE);
     3232        }
     3233        if (!psMetadataLookupBool(&status, md, "accept") == true) {
     3234            psFree(md);
     3235            exit(EXIT_FAILURE);
     3236        }
     3237            psFree(md);
     3238            exit(EXIT_FAILURE);
     3239        }
     3240
     3241        psFree(md);
     3242    }
     3243
     3244    {
     3245        psMetadata      *md;
     3246        detRegisteredImfileRow *object;
     3247        bool            status;
     3248
     3249        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", "a string", -16);
     3250        if (!object) {
     3251            exit(EXIT_FAILURE);
     3252        }
     3253
     3254        md = detRegisteredImfileMetadataFromObject(object);
     3255        if (!md) {
     3256            exit(EXIT_FAILURE);
     3257        }
     3258
     3259        psFree(object);
     3260
     3261            psFree(md);
     3262            exit(EXIT_FAILURE);
     3263        }
     3264        if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
     3265            psFree(md);
     3266            exit(EXIT_FAILURE);
     3267        }
     3268        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     3269            psFree(md);
     3270            exit(EXIT_FAILURE);
     3271        }
     3272        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     3273            psFree(md);
     3274            exit(EXIT_FAILURE);
     3275        }
     3276        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     3277            psFree(md);
     3278            exit(EXIT_FAILURE);
     3279        }
     3280        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     3281            psFree(md);
     3282            exit(EXIT_FAILURE);
     3283        }
     3284        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     3285            psFree(md);
     3286            exit(EXIT_FAILURE);
     3287        }
     3288        if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
     3289            psFree(md);
     3290            exit(EXIT_FAILURE);
     3291        }
     3292        if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
     3293            psFree(md);
     3294            exit(EXIT_FAILURE);
     3295        }
     3296        if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
     3297            psFree(md);
     3298            exit(EXIT_FAILURE);
     3299        }
     3300        if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
     3301            psFree(md);
     3302            exit(EXIT_FAILURE);
     3303        }
     3304        if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
     3305            psFree(md);
     3306            exit(EXIT_FAILURE);
     3307        }
     3308        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     3309            psFree(md);
     3310            exit(EXIT_FAILURE);
     3311        }
     3312        if (strncmp(psMetadataLookupPtr(&status, md, "data_state"), "a string", MAX_STRING_LENGTH)) {
     3313            psFree(md);
     3314            exit(EXIT_FAILURE);
     3315        }
     3316            psFree(md);
     3317            exit(EXIT_FAILURE);
     3318        }
     3319
     3320        psFree(md);
     3321    }
     3322
     3323    {
     3324        psMetadata      *md;
     3325        detCorrectedExpRow *object;
     3326        bool            status;
     3327
     3328        object = detCorrectedExpRowAlloc(-64, -64, "a string", -64, "a string", "a string", "a string", -16);
     3329        if (!object) {
     3330            exit(EXIT_FAILURE);
     3331        }
     3332
     3333        md = detCorrectedExpMetadataFromObject(object);
     3334        if (!md) {
     3335            exit(EXIT_FAILURE);
     3336        }
     3337
     3338        psFree(object);
     3339
     3340            psFree(md);
     3341            exit(EXIT_FAILURE);
     3342        }
     3343            psFree(md);
     3344            exit(EXIT_FAILURE);
     3345        }
     3346        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     3347            psFree(md);
     3348            exit(EXIT_FAILURE);
     3349        }
     3350            psFree(md);
     3351            exit(EXIT_FAILURE);
     3352        }
     3353        if (strncmp(psMetadataLookupPtr(&status, md, "corr_type"), "a string", MAX_STRING_LENGTH)) {
     3354            psFree(md);
     3355            exit(EXIT_FAILURE);
     3356        }
     3357        if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
     3358            psFree(md);
     3359            exit(EXIT_FAILURE);
     3360        }
     3361        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     3362            psFree(md);
     3363            exit(EXIT_FAILURE);
     3364        }
     3365            psFree(md);
     3366            exit(EXIT_FAILURE);
     3367        }
     3368
     3369        psFree(md);
     3370    }
     3371
     3372    {
     3373        psMetadata      *md;
     3374        detCorrectedImfileRow *object;
     3375        bool            status;
     3376
     3377        object = detCorrectedImfileRowAlloc(-64, -64, "a string", "a string", "a string", -16);
     3378        if (!object) {
     3379            exit(EXIT_FAILURE);
     3380        }
     3381
     3382        md = detCorrectedImfileMetadataFromObject(object);
     3383        if (!md) {
     3384            exit(EXIT_FAILURE);
     3385        }
     3386
     3387        psFree(object);
     3388
     3389            psFree(md);
     3390            exit(EXIT_FAILURE);
     3391        }
     3392            psFree(md);
     3393            exit(EXIT_FAILURE);
     3394        }
     3395        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     3396            psFree(md);
     3397            exit(EXIT_FAILURE);
     3398        }
     3399        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     3400            psFree(md);
     3401            exit(EXIT_FAILURE);
     3402        }
     3403        if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
     3404            psFree(md);
     3405            exit(EXIT_FAILURE);
     3406        }
     3407            psFree(md);
     3408            exit(EXIT_FAILURE);
     3409        }
     3410
     3411        psFree(md);
     3412    }
     3413
     3414    {
     3415        psMetadata      *md;
     3416        magicRunRow     *object;
     3417        bool            status;
     3418
     3419        object = magicRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", -16);
     3420        if (!object) {
     3421            exit(EXIT_FAILURE);
     3422        }
     3423
     3424        md = magicRunMetadataFromObject(object);
    13263425        if (!md) {
    13273426            exit(EXIT_FAILURE);
     
    13443443            exit(EXIT_FAILURE);
    13453444        }
     3445        if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
     3446            psFree(md);
     3447            exit(EXIT_FAILURE);
     3448        }
    13463449        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    13473450            psFree(md);
    13483451            exit(EXIT_FAILURE);
    13493452        }
     3453        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     3454            psFree(md);
     3455            exit(EXIT_FAILURE);
     3456        }
     3457            psFree(md);
     3458            exit(EXIT_FAILURE);
     3459        }
     3460            psFree(md);
     3461            exit(EXIT_FAILURE);
     3462        }
     3463
     3464        psFree(md);
     3465    }
     3466
     3467    {
     3468        psMetadata      *md;
     3469        magicInputSkyfileRow *object;
     3470        bool            status;
     3471
     3472        object = magicInputSkyfileRowAlloc(-64, -64, "a string");
     3473        if (!object) {
     3474            exit(EXIT_FAILURE);
     3475        }
     3476
     3477        md = magicInputSkyfileMetadataFromObject(object);
     3478        if (!md) {
     3479            exit(EXIT_FAILURE);
     3480        }
     3481
     3482        psFree(object);
     3483
     3484            psFree(md);
     3485            exit(EXIT_FAILURE);
     3486        }
     3487            psFree(md);
     3488            exit(EXIT_FAILURE);
     3489        }
     3490        if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
     3491            psFree(md);
     3492            exit(EXIT_FAILURE);
     3493        }
     3494
     3495        psFree(md);
     3496    }
     3497
     3498    {
     3499        psMetadata      *md;
     3500        magicTreeRow    *object;
     3501        bool            status;
     3502
     3503        object = magicTreeRowAlloc(-64, "a string", "a string");
     3504        if (!object) {
     3505            exit(EXIT_FAILURE);
     3506        }
     3507
     3508        md = magicTreeMetadataFromObject(object);
     3509        if (!md) {
     3510            exit(EXIT_FAILURE);
     3511        }
     3512
     3513        psFree(object);
     3514
     3515            psFree(md);
     3516            exit(EXIT_FAILURE);
     3517        }
     3518        if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
     3519            psFree(md);
     3520            exit(EXIT_FAILURE);
     3521        }
     3522        if (strncmp(psMetadataLookupPtr(&status, md, "dep"), "a string", MAX_STRING_LENGTH)) {
     3523            psFree(md);
     3524            exit(EXIT_FAILURE);
     3525        }
     3526
     3527        psFree(md);
     3528    }
     3529
     3530    {
     3531        psMetadata      *md;
     3532        magicNodeResultRow *object;
     3533        bool            status;
     3534
     3535        object = magicNodeResultRowAlloc(-64, "a string", "a string", -16);
     3536        if (!object) {
     3537            exit(EXIT_FAILURE);
     3538        }
     3539
     3540        md = magicNodeResultMetadataFromObject(object);
     3541        if (!md) {
     3542            exit(EXIT_FAILURE);
     3543        }
     3544
     3545        psFree(object);
     3546
     3547            psFree(md);
     3548            exit(EXIT_FAILURE);
     3549        }
     3550        if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
     3551            psFree(md);
     3552            exit(EXIT_FAILURE);
     3553        }
     3554        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     3555            psFree(md);
     3556            exit(EXIT_FAILURE);
     3557        }
     3558            psFree(md);
     3559            exit(EXIT_FAILURE);
     3560        }
     3561
     3562        psFree(md);
     3563    }
     3564
     3565    {
     3566        psMetadata      *md;
     3567        magicMaskRow    *object;
     3568        bool            status;
     3569
     3570        object = magicMaskRowAlloc(-64, "a string", -32, -16);
     3571        if (!object) {
     3572            exit(EXIT_FAILURE);
     3573        }
     3574
     3575        md = magicMaskMetadataFromObject(object);
     3576        if (!md) {
     3577            exit(EXIT_FAILURE);
     3578        }
     3579
     3580        psFree(object);
     3581
     3582            psFree(md);
     3583            exit(EXIT_FAILURE);
     3584        }
     3585        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     3586            psFree(md);
     3587            exit(EXIT_FAILURE);
     3588        }
     3589        if (!psMetadataLookupS32(&status, md, "streaks") == -32) {
     3590            psFree(md);
     3591            exit(EXIT_FAILURE);
     3592        }
     3593            psFree(md);
     3594            exit(EXIT_FAILURE);
     3595        }
     3596
     3597        psFree(md);
     3598    }
     3599
     3600    {
     3601        psMetadata      *md;
     3602        calDBRow        *object;
     3603        bool            status;
     3604
     3605        object = calDBRowAlloc(-64, "a string", "a string");
     3606        if (!object) {
     3607            exit(EXIT_FAILURE);
     3608        }
     3609
     3610        md = calDBMetadataFromObject(object);
     3611        if (!md) {
     3612            exit(EXIT_FAILURE);
     3613        }
     3614
     3615        psFree(object);
     3616
     3617            psFree(md);
     3618            exit(EXIT_FAILURE);
     3619        }
     3620        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     3621            psFree(md);
     3622            exit(EXIT_FAILURE);
     3623        }
     3624        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     3625            psFree(md);
     3626            exit(EXIT_FAILURE);
     3627        }
     3628
     3629        psFree(md);
     3630    }
     3631
     3632    {
     3633        psMetadata      *md;
     3634        calRunRow       *object;
     3635        bool            status;
     3636
     3637        object = calRunRowAlloc(-64, "a string", "a string", "a string");
     3638        if (!object) {
     3639            exit(EXIT_FAILURE);
     3640        }
     3641
     3642        md = calRunMetadataFromObject(object);
     3643        if (!md) {
     3644            exit(EXIT_FAILURE);
     3645        }
     3646
     3647        psFree(object);
     3648
     3649            psFree(md);
     3650            exit(EXIT_FAILURE);
     3651        }
     3652        if (strncmp(psMetadataLookupPtr(&status, md, "region"), "a string", MAX_STRING_LENGTH)) {
     3653            psFree(md);
     3654            exit(EXIT_FAILURE);
     3655        }
     3656        if (strncmp(psMetadataLookupPtr(&status, md, "last_step"), "a string", MAX_STRING_LENGTH)) {
     3657            psFree(md);
     3658            exit(EXIT_FAILURE);
     3659        }
     3660        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     3661            psFree(md);
     3662            exit(EXIT_FAILURE);
     3663        }
     3664
     3665        psFree(md);
     3666    }
     3667
     3668    {
     3669        psMetadata      *md;
     3670        flatcorrRunRow  *object;
     3671        bool            status;
     3672
     3673        object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", -16);
     3674        if (!object) {
     3675            exit(EXIT_FAILURE);
     3676        }
     3677
     3678        md = flatcorrRunMetadataFromObject(object);
     3679        if (!md) {
     3680            exit(EXIT_FAILURE);
     3681        }
     3682
     3683        psFree(object);
     3684
     3685            psFree(md);
     3686            exit(EXIT_FAILURE);
     3687        }
     3688        if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
     3689            psFree(md);
     3690            exit(EXIT_FAILURE);
     3691        }
     3692        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
     3693            psFree(md);
     3694            exit(EXIT_FAILURE);
     3695        }
     3696        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     3697            psFree(md);
     3698            exit(EXIT_FAILURE);
     3699        }
     3700        if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
     3701            psFree(md);
     3702            exit(EXIT_FAILURE);
     3703        }
     3704        if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
     3705            psFree(md);
     3706            exit(EXIT_FAILURE);
     3707        }
    13503708        if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
    13513709            psFree(md);
    13523710            exit(EXIT_FAILURE);
    13533711        }
    1354         if (strncmp(psMetadataLookupPtr(&status, md, "expgroup"), "a string", MAX_STRING_LENGTH)) {
     3712        if (strncmp(psMetadataLookupPtr(&status, md, "region"), "a string", MAX_STRING_LENGTH)) {
     3713            psFree(md);
     3714            exit(EXIT_FAILURE);
     3715        }
     3716        if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
     3717            psFree(md);
     3718            exit(EXIT_FAILURE);
     3719        }
     3720            psFree(md);
     3721            exit(EXIT_FAILURE);
     3722        }
     3723
     3724        psFree(md);
     3725    }
     3726
     3727    {
     3728        psMetadata      *md;
     3729        flatcorrChipLinkRow *object;
     3730        bool            status;
     3731
     3732        object = flatcorrChipLinkRowAlloc(-64, -64);
     3733        if (!object) {
     3734            exit(EXIT_FAILURE);
     3735        }
     3736
     3737        md = flatcorrChipLinkMetadataFromObject(object);
     3738        if (!md) {
     3739            exit(EXIT_FAILURE);
     3740        }
     3741
     3742        psFree(object);
     3743
     3744            psFree(md);
     3745            exit(EXIT_FAILURE);
     3746        }
     3747            psFree(md);
     3748            exit(EXIT_FAILURE);
     3749        }
     3750
     3751        psFree(md);
     3752    }
     3753
     3754    {
     3755        psMetadata      *md;
     3756        flatcorrCamLinkRow *object;
     3757        bool            status;
     3758
     3759        object = flatcorrCamLinkRowAlloc(-64, -64, -64);
     3760        if (!object) {
     3761            exit(EXIT_FAILURE);
     3762        }
     3763
     3764        md = flatcorrCamLinkMetadataFromObject(object);
     3765        if (!md) {
     3766            exit(EXIT_FAILURE);
     3767        }
     3768
     3769        psFree(object);
     3770
     3771            psFree(md);
     3772            exit(EXIT_FAILURE);
     3773        }
     3774            psFree(md);
     3775            exit(EXIT_FAILURE);
     3776        }
     3777            psFree(md);
     3778            exit(EXIT_FAILURE);
     3779        }
     3780
     3781        psFree(md);
     3782    }
     3783
     3784    {
     3785        psMetadata      *md;
     3786        pstampDataStoreRow *object;
     3787        bool            status;
     3788
     3789        object = pstampDataStoreRowAlloc(-64, "a string", "a string", "a string", "a string");
     3790        if (!object) {
     3791            exit(EXIT_FAILURE);
     3792        }
     3793
     3794        md = pstampDataStoreMetadataFromObject(object);
     3795        if (!md) {
     3796            exit(EXIT_FAILURE);
     3797        }
     3798
     3799        psFree(object);
     3800
     3801            psFree(md);
     3802            exit(EXIT_FAILURE);
     3803        }
     3804        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     3805            psFree(md);
     3806            exit(EXIT_FAILURE);
     3807        }
     3808        if (strncmp(psMetadataLookupPtr(&status, md, "lastFileset"), "a string", MAX_STRING_LENGTH)) {
     3809            psFree(md);
     3810            exit(EXIT_FAILURE);
     3811        }
     3812        if (strncmp(psMetadataLookupPtr(&status, md, "outProduct"), "a string", MAX_STRING_LENGTH)) {
     3813            psFree(md);
     3814            exit(EXIT_FAILURE);
     3815        }
     3816        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
     3817            psFree(md);
     3818            exit(EXIT_FAILURE);
     3819        }
     3820
     3821        psFree(md);
     3822    }
     3823
     3824    {
     3825        psMetadata      *md;
     3826        pstampProjectRow *object;
     3827        bool            status;
     3828
     3829        object = pstampProjectRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", true);
     3830        if (!object) {
     3831            exit(EXIT_FAILURE);
     3832        }
     3833
     3834        md = pstampProjectMetadataFromObject(object);
     3835        if (!md) {
     3836            exit(EXIT_FAILURE);
     3837        }
     3838
     3839        psFree(object);
     3840
     3841            psFree(md);
     3842            exit(EXIT_FAILURE);
     3843        }
     3844        if (strncmp(psMetadataLookupPtr(&status, md, "name"), "a string", MAX_STRING_LENGTH)) {
     3845            psFree(md);
     3846            exit(EXIT_FAILURE);
     3847        }
     3848        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     3849            psFree(md);
     3850            exit(EXIT_FAILURE);
     3851        }
     3852        if (strncmp(psMetadataLookupPtr(&status, md, "dbname"), "a string", MAX_STRING_LENGTH)) {
    13553853            psFree(md);
    13563854            exit(EXIT_FAILURE);
     
    13603858            exit(EXIT_FAILURE);
    13613859        }
    1362         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1363             psFree(md);
    1364             exit(EXIT_FAILURE);
    1365         }
    1366         if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
    1367             psFree(md);
    1368             exit(EXIT_FAILURE);
    1369         }
    1370             psFree(md);
    1371             exit(EXIT_FAILURE);
    1372         }
    1373 
    1374         psFree(md);
    1375     }
    1376 
    1377     {
    1378         psMetadata      *md;
    1379         fakeProcessedImfileRow *object;
    1380         bool            status;
    1381 
    1382         object = fakeProcessedImfileRowAlloc(-64, -64, "a string", "a string", 32.32, "a string", "a string", -16, "0001-01-01T00:00:00Z");
    1383         if (!object) {
    1384             exit(EXIT_FAILURE);
    1385         }
    1386 
    1387         md = fakeProcessedImfileMetadataFromObject(object);
    1388         if (!md) {
    1389             exit(EXIT_FAILURE);
    1390         }
    1391 
    1392         psFree(object);
    1393 
    1394             psFree(md);
    1395             exit(EXIT_FAILURE);
    1396         }
    1397             psFree(md);
    1398             exit(EXIT_FAILURE);
    1399         }
    1400         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     3860        if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) {
     3861            psFree(md);
     3862            exit(EXIT_FAILURE);
     3863        }
     3864        if (strncmp(psMetadataLookupPtr(&status, md, "telescope"), "a string", MAX_STRING_LENGTH)) {
     3865            psFree(md);
     3866            exit(EXIT_FAILURE);
     3867        }
     3868        if (!psMetadataLookupBool(&status, md, "need_magic") == true) {
     3869            psFree(md);
     3870            exit(EXIT_FAILURE);
     3871        }
     3872
     3873        psFree(md);
     3874    }
     3875
     3876    {
     3877        psMetadata      *md;
     3878        pstampRequestRow *object;
     3879        bool            status;
     3880
     3881        object = pstampRequestRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", -32);
     3882        if (!object) {
     3883            exit(EXIT_FAILURE);
     3884        }
     3885
     3886        md = pstampRequestMetadataFromObject(object);
     3887        if (!md) {
     3888            exit(EXIT_FAILURE);
     3889        }
     3890
     3891        psFree(object);
     3892
     3893            psFree(md);
     3894            exit(EXIT_FAILURE);
     3895        }
     3896            psFree(md);
     3897            exit(EXIT_FAILURE);
     3898        }
     3899        if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
     3900            psFree(md);
     3901            exit(EXIT_FAILURE);
     3902        }
     3903        if (strncmp(psMetadataLookupPtr(&status, md, "name"), "a string", MAX_STRING_LENGTH)) {
     3904            psFree(md);
     3905            exit(EXIT_FAILURE);
     3906        }
     3907        if (strncmp(psMetadataLookupPtr(&status, md, "reqType"), "a string", MAX_STRING_LENGTH)) {
     3908            psFree(md);
     3909            exit(EXIT_FAILURE);
     3910        }
     3911        if (strncmp(psMetadataLookupPtr(&status, md, "outProduct"), "a string", MAX_STRING_LENGTH)) {
    14013912            psFree(md);
    14023913            exit(EXIT_FAILURE);
     
    14063917            exit(EXIT_FAILURE);
    14073918        }
    1408         if (!psMetadataLookupF32(&status, md, "dtime_fake") == 32.32) {
    1409             psFree(md);
    1410             exit(EXIT_FAILURE);
    1411         }
    1412         if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
    1413             psFree(md);
    1414             exit(EXIT_FAILURE);
    1415         }
    1416         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    1417             psFree(md);
    1418             exit(EXIT_FAILURE);
    1419         }
    1420             psFree(md);
    1421             exit(EXIT_FAILURE);
    1422         }
    1423             psFree(md);
    1424             exit(EXIT_FAILURE);
    1425         }
    1426 
    1427         psFree(md);
    1428     }
    1429 
    1430     {
    1431         psMetadata      *md;
    1432         fakeMaskRow     *object;
    1433         bool            status;
    1434 
    1435         object = fakeMaskRowAlloc("a string");
    1436         if (!object) {
    1437             exit(EXIT_FAILURE);
    1438         }
    1439 
    1440         md = fakeMaskMetadataFromObject(object);
    1441         if (!md) {
    1442             exit(EXIT_FAILURE);
    1443         }
    1444 
    1445         psFree(object);
    1446 
    1447         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    1448             psFree(md);
    1449             exit(EXIT_FAILURE);
    1450         }
    1451 
    1452         psFree(md);
    1453     }
    1454 
    1455     {
    1456         psMetadata      *md;
    1457         warpRunRow      *object;
    1458         bool            status;
    1459 
    1460         object = warpRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", true);
    1461         if (!object) {
    1462             exit(EXIT_FAILURE);
    1463         }
    1464 
    1465         md = warpRunMetadataFromObject(object);
    1466         if (!md) {
    1467             exit(EXIT_FAILURE);
    1468         }
    1469 
    1470         psFree(object);
    1471 
    1472             psFree(md);
    1473             exit(EXIT_FAILURE);
    1474         }
    1475             psFree(md);
    1476             exit(EXIT_FAILURE);
    1477         }
    1478         if (strncmp(psMetadataLookupPtr(&status, md, "mode"), "a string", MAX_STRING_LENGTH)) {
     3919        if (!psMetadataLookupS32(&status, md, "fault") == -32) {
     3920            psFree(md);
     3921            exit(EXIT_FAILURE);
     3922        }
     3923
     3924        psFree(md);
     3925    }
     3926
     3927    {
     3928        psMetadata      *md;
     3929        pstampJobRow    *object;
     3930        bool            status;
     3931
     3932        object = pstampJobRowAlloc(-64, -64, "a string", "a string", "a string", -32, "a string", -64, "a string", "a string");
     3933        if (!object) {
     3934            exit(EXIT_FAILURE);
     3935        }
     3936
     3937        md = pstampJobMetadataFromObject(object);
     3938        if (!md) {
     3939            exit(EXIT_FAILURE);
     3940        }
     3941
     3942        psFree(object);
     3943
     3944            psFree(md);
     3945            exit(EXIT_FAILURE);
     3946        }
     3947            psFree(md);
     3948            exit(EXIT_FAILURE);
     3949        }
     3950        if (strncmp(psMetadataLookupPtr(&status, md, "rownum"), "a string", MAX_STRING_LENGTH)) {
    14793951            psFree(md);
    14803952            exit(EXIT_FAILURE);
     
    14843956            exit(EXIT_FAILURE);
    14853957        }
    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, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
    1491             psFree(md);
    1492             exit(EXIT_FAILURE);
    1493         }
    1494         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    1495             psFree(md);
    1496             exit(EXIT_FAILURE);
    1497         }
    1498         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    1499             psFree(md);
    1500             exit(EXIT_FAILURE);
    1501         }
    1502         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1503             psFree(md);
    1504             exit(EXIT_FAILURE);
    1505         }
    1506         if (strncmp(psMetadataLookupPtr(&status, md, "end_stage"), "a string", MAX_STRING_LENGTH)) {
    1507             psFree(md);
    1508             exit(EXIT_FAILURE);
    1509         }
    1510             psFree(md);
    1511             exit(EXIT_FAILURE);
    1512         }
    1513         if (!psMetadataLookupBool(&status, md, "magiced") == true) {
    1514             psFree(md);
    1515             exit(EXIT_FAILURE);
    1516         }
    1517 
    1518         psFree(md);
    1519     }
    1520 
    1521     {
    1522         psMetadata      *md;
    1523         warpSkyCellMapRow *object;
    1524         bool            status;
    1525 
    1526         object = warpSkyCellMapRowAlloc(-64, "a string", "a string", "a string", -16);
    1527         if (!object) {
    1528             exit(EXIT_FAILURE);
    1529         }
    1530 
    1531         md = warpSkyCellMapMetadataFromObject(object);
    1532         if (!md) {
    1533             exit(EXIT_FAILURE);
    1534         }
    1535 
    1536         psFree(object);
    1537 
    1538             psFree(md);
    1539             exit(EXIT_FAILURE);
    1540         }
    1541         if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
    1542             psFree(md);
    1543             exit(EXIT_FAILURE);
    1544         }
    1545         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1546             psFree(md);
    1547             exit(EXIT_FAILURE);
    1548         }
    1549         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    1550             psFree(md);
    1551             exit(EXIT_FAILURE);
    1552         }
    1553             psFree(md);
    1554             exit(EXIT_FAILURE);
    1555         }
    1556 
    1557         psFree(md);
    1558     }
    1559 
    1560     {
    1561         psMetadata      *md;
    1562         warpSkyfileRow  *object;
    1563         bool            status;
    1564 
    1565         object = warpSkyfileRowAlloc(-64, "a string", "a string", "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -32, -32, -32, -32, true, -16);
    1566         if (!object) {
    1567             exit(EXIT_FAILURE);
    1568         }
    1569 
    1570         md = warpSkyfileMetadataFromObject(object);
    1571         if (!md) {
    1572             exit(EXIT_FAILURE);
    1573         }
    1574 
    1575         psFree(object);
    1576 
    1577             psFree(md);
    1578             exit(EXIT_FAILURE);
    1579         }
    1580         if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
    1581             psFree(md);
    1582             exit(EXIT_FAILURE);
    1583         }
    1584         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
     3958        if (strncmp(psMetadataLookupPtr(&status, md, "jobType"), "a string", MAX_STRING_LENGTH)) {
     3959            psFree(md);
     3960            exit(EXIT_FAILURE);
     3961        }
     3962        if (!psMetadataLookupS32(&status, md, "fault") == -32) {
    15853963            psFree(md);
    15863964            exit(EXIT_FAILURE);
     
    15903968            exit(EXIT_FAILURE);
    15913969        }
    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_warp") == 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         if (!psMetadataLookupS32(&status, md, "xmin") == -32) {
    1617             psFree(md);
    1618             exit(EXIT_FAILURE);
    1619         }
    1620         if (!psMetadataLookupS32(&status, md, "xmax") == -32) {
    1621             psFree(md);
    1622             exit(EXIT_FAILURE);
    1623         }
    1624         if (!psMetadataLookupS32(&status, md, "ymin") == -32) {
    1625             psFree(md);
    1626             exit(EXIT_FAILURE);
    1627         }
    1628         if (!psMetadataLookupS32(&status, md, "ymax") == -32) {
    1629             psFree(md);
    1630             exit(EXIT_FAILURE);
    1631         }
    1632         if (!psMetadataLookupBool(&status, md, "ignored") == true) {
    1633             psFree(md);
    1634             exit(EXIT_FAILURE);
    1635         }
    1636             psFree(md);
    1637             exit(EXIT_FAILURE);
    1638         }
    1639 
    1640         psFree(md);
    1641     }
    1642 
    1643     {
    1644         psMetadata      *md;
    1645         warpMaskRow     *object;
    1646         bool            status;
    1647 
    1648         object = warpMaskRowAlloc("a string");
    1649         if (!object) {
    1650             exit(EXIT_FAILURE);
    1651         }
    1652 
    1653         md = warpMaskMetadataFromObject(object);
    1654         if (!md) {
    1655             exit(EXIT_FAILURE);
    1656         }
    1657 
    1658         psFree(object);
    1659 
    1660         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    1661             psFree(md);
    1662             exit(EXIT_FAILURE);
    1663         }
    1664 
    1665         psFree(md);
    1666     }
    1667 
    1668     {
    1669         psMetadata      *md;
    1670         diffRunRow      *object;
    1671         bool            status;
    1672 
    1673         object = diffRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string");
    1674         if (!object) {
    1675             exit(EXIT_FAILURE);
    1676         }
    1677 
    1678         md = diffRunMetadataFromObject(object);
    1679         if (!md) {
    1680             exit(EXIT_FAILURE);
    1681         }
    1682 
    1683         psFree(object);
    1684 
    1685             psFree(md);
    1686             exit(EXIT_FAILURE);
    1687         }
    1688         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    1689             psFree(md);
    1690             exit(EXIT_FAILURE);
    1691         }
    1692         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    1693             psFree(md);
    1694             exit(EXIT_FAILURE);
    1695         }
    1696         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    1697             psFree(md);
    1698             exit(EXIT_FAILURE);
    1699         }
    1700             psFree(md);
    1701             exit(EXIT_FAILURE);
    1702         }
    1703         if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
    1704             psFree(md);
    1705             exit(EXIT_FAILURE);
    1706         }
    1707         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1708             psFree(md);
    1709             exit(EXIT_FAILURE);
    1710         }
    1711 
    1712         psFree(md);
    1713     }
    1714 
    1715     {
    1716         psMetadata      *md;
    1717         diffInputSkyfileRow *object;
    1718         bool            status;
    1719 
    1720         object = diffInputSkyfileRowAlloc(-64, true, -64, -64, "a string", "a string", "a string");
    1721         if (!object) {
    1722             exit(EXIT_FAILURE);
    1723         }
    1724 
    1725         md = diffInputSkyfileMetadataFromObject(object);
    1726         if (!md) {
    1727             exit(EXIT_FAILURE);
    1728         }
    1729 
    1730         psFree(object);
    1731 
    1732             psFree(md);
    1733             exit(EXIT_FAILURE);
    1734         }
    1735         if (!psMetadataLookupBool(&status, md, "template") == true) {
    1736             psFree(md);
    1737             exit(EXIT_FAILURE);
    1738         }
    1739             psFree(md);
    1740             exit(EXIT_FAILURE);
    1741         }
    1742             psFree(md);
    1743             exit(EXIT_FAILURE);
    1744         }
    1745         if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
    1746             psFree(md);
    1747             exit(EXIT_FAILURE);
    1748         }
    1749         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1750             psFree(md);
    1751             exit(EXIT_FAILURE);
    1752         }
    1753         if (strncmp(psMetadataLookupPtr(&status, md, "kind"), "a string", MAX_STRING_LENGTH)) {
    1754             psFree(md);
    1755             exit(EXIT_FAILURE);
    1756         }
    1757 
    1758         psFree(md);
    1759     }
    1760 
    1761     {
    1762         psMetadata      *md;
    1763         diffSkyfileRow  *object;
    1764         bool            status;
    1765 
    1766         object = diffSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, -32, 32.32, -32, 32.32, "a string", 32.32, -16);
    1767         if (!object) {
    1768             exit(EXIT_FAILURE);
    1769         }
    1770 
    1771         md = diffSkyfileMetadataFromObject(object);
    1772         if (!md) {
    1773             exit(EXIT_FAILURE);
    1774         }
    1775 
    1776         psFree(object);
    1777 
    1778             psFree(md);
    1779             exit(EXIT_FAILURE);
    1780         }
    1781         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1782             psFree(md);
    1783             exit(EXIT_FAILURE);
    1784         }
    1785         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    1786             psFree(md);
    1787             exit(EXIT_FAILURE);
    1788         }
    1789         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    1790             psFree(md);
    1791             exit(EXIT_FAILURE);
    1792         }
    1793         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    1794             psFree(md);
    1795             exit(EXIT_FAILURE);
    1796         }
    1797         if (!psMetadataLookupS32(&status, md, "stamps_num") == -32) {
    1798             psFree(md);
    1799             exit(EXIT_FAILURE);
    1800         }
    1801         if (!psMetadataLookupF32(&status, md, "stamps_rms") == 32.32) {
    1802             psFree(md);
    1803             exit(EXIT_FAILURE);
    1804         }
    1805         if (!psMetadataLookupS32(&status, md, "sources") == -32) {
    1806             psFree(md);
    1807             exit(EXIT_FAILURE);
    1808         }
    1809         if (!psMetadataLookupF32(&status, md, "dtime_diff") == 32.32) {
    1810             psFree(md);
    1811             exit(EXIT_FAILURE);
    1812         }
    1813         if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
    1814             psFree(md);
    1815             exit(EXIT_FAILURE);
    1816         }
    1817         if (!psMetadataLookupF32(&status, md, "good_frac") == 32.32) {
    1818             psFree(md);
    1819             exit(EXIT_FAILURE);
    1820         }
    1821             psFree(md);
    1822             exit(EXIT_FAILURE);
    1823         }
    1824 
    1825         psFree(md);
    1826     }
    1827 
    1828     {
    1829         psMetadata      *md;
    1830         stackRunRow     *object;
    1831         bool            status;
    1832 
    1833         object = stackRunRowAlloc(-64, "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", "a string", "a string");
    1834         if (!object) {
    1835             exit(EXIT_FAILURE);
    1836         }
    1837 
    1838         md = stackRunMetadataFromObject(object);
    1839         if (!md) {
    1840             exit(EXIT_FAILURE);
    1841         }
    1842 
    1843         psFree(object);
    1844 
    1845             psFree(md);
    1846             exit(EXIT_FAILURE);
    1847         }
    1848         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    1849             psFree(md);
    1850             exit(EXIT_FAILURE);
    1851         }
    1852         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    1853             psFree(md);
    1854             exit(EXIT_FAILURE);
    1855         }
    1856         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    1857             psFree(md);
    1858             exit(EXIT_FAILURE);
    1859         }
    1860             psFree(md);
    1861             exit(EXIT_FAILURE);
    1862         }
    1863         if (strncmp(psMetadataLookupPtr(&status, md, "skycell_id"), "a string", MAX_STRING_LENGTH)) {
    1864             psFree(md);
    1865             exit(EXIT_FAILURE);
    1866         }
    1867         if (strncmp(psMetadataLookupPtr(&status, md, "tess_id"), "a string", MAX_STRING_LENGTH)) {
    1868             psFree(md);
    1869             exit(EXIT_FAILURE);
    1870         }
    1871         if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
    1872             psFree(md);
    1873             exit(EXIT_FAILURE);
    1874         }
    1875 
    1876         psFree(md);
    1877     }
    1878 
    1879     {
    1880         psMetadata      *md;
    1881         stackInputSkyfileRow *object;
    1882         bool            status;
    1883 
    1884         object = stackInputSkyfileRowAlloc(-64, -64);
    1885         if (!object) {
    1886             exit(EXIT_FAILURE);
    1887         }
    1888 
    1889         md = stackInputSkyfileMetadataFromObject(object);
    1890         if (!md) {
    1891             exit(EXIT_FAILURE);
    1892         }
    1893 
    1894         psFree(object);
    1895 
    1896             psFree(md);
    1897             exit(EXIT_FAILURE);
    1898         }
    1899             psFree(md);
    1900             exit(EXIT_FAILURE);
    1901         }
    1902 
    1903         psFree(md);
    1904     }
    1905 
    1906     {
    1907         psMetadata      *md;
    1908         stackSumSkyfileRow *object;
    1909         bool            status;
    1910 
    1911         object = stackSumSkyfileRowAlloc(-64, "a string", "a string", 64.64, 64.64, 32.32, "a string", 32.32, -16);
    1912         if (!object) {
    1913             exit(EXIT_FAILURE);
    1914         }
    1915 
    1916         md = stackSumSkyfileMetadataFromObject(object);
    1917         if (!md) {
    1918             exit(EXIT_FAILURE);
    1919         }
    1920 
    1921         psFree(object);
    1922 
    1923             psFree(md);
    1924             exit(EXIT_FAILURE);
    1925         }
    1926         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1927             psFree(md);
    1928             exit(EXIT_FAILURE);
    1929         }
    1930         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    1931             psFree(md);
    1932             exit(EXIT_FAILURE);
    1933         }
    1934         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    1935             psFree(md);
    1936             exit(EXIT_FAILURE);
    1937         }
    1938         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    1939             psFree(md);
    1940             exit(EXIT_FAILURE);
    1941         }
    1942         if (!psMetadataLookupF32(&status, md, "dtime_stack") == 32.32) {
    1943             psFree(md);
    1944             exit(EXIT_FAILURE);
    1945         }
    1946         if (strncmp(psMetadataLookupPtr(&status, md, "hostname"), "a string", MAX_STRING_LENGTH)) {
    1947             psFree(md);
    1948             exit(EXIT_FAILURE);
    1949         }
    1950         if (!psMetadataLookupF32(&status, md, "good_frac") == 32.32) {
    1951             psFree(md);
    1952             exit(EXIT_FAILURE);
    1953         }
    1954             psFree(md);
    1955             exit(EXIT_FAILURE);
    1956         }
    1957 
    1958         psFree(md);
    1959     }
    1960 
    1961     {
    1962         psMetadata      *md;
    1963         detRunRow       *object;
    1964         bool            status;
    1965 
    1966         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);
    1967         if (!object) {
    1968             exit(EXIT_FAILURE);
    1969         }
    1970 
    1971         md = detRunMetadataFromObject(object);
    1972         if (!md) {
    1973             exit(EXIT_FAILURE);
    1974         }
    1975 
    1976         psFree(object);
    1977 
    1978             psFree(md);
    1979             exit(EXIT_FAILURE);
    1980         }
    1981         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    1982             psFree(md);
    1983             exit(EXIT_FAILURE);
    1984         }
    1985         if (strncmp(psMetadataLookupPtr(&status, md, "det_type"), "a string", MAX_STRING_LENGTH)) {
    1986             psFree(md);
    1987             exit(EXIT_FAILURE);
    1988         }
    1989         if (strncmp(psMetadataLookupPtr(&status, md, "mode"), "a string", MAX_STRING_LENGTH)) {
    1990             psFree(md);
    1991             exit(EXIT_FAILURE);
    1992         }
    1993         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    1994             psFree(md);
    1995             exit(EXIT_FAILURE);
    1996         }
    1997         if (strncmp(psMetadataLookupPtr(&status, md, "filelevel"), "a string", MAX_STRING_LENGTH)) {
    1998             psFree(md);
    1999             exit(EXIT_FAILURE);
    2000         }
    2001         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    2002             psFree(md);
    2003             exit(EXIT_FAILURE);
    2004         }
    2005         if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) {
    2006             psFree(md);
    2007             exit(EXIT_FAILURE);
    2008         }
    2009         if (strncmp(psMetadataLookupPtr(&status, md, "telescope"), "a string", MAX_STRING_LENGTH)) {
    2010             psFree(md);
    2011             exit(EXIT_FAILURE);
    2012         }
    2013         if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
    2014             psFree(md);
    2015             exit(EXIT_FAILURE);
    2016         }
    2017         if (strncmp(psMetadataLookupPtr(&status, md, "reduction"), "a string", MAX_STRING_LENGTH)) {
    2018             psFree(md);
    2019             exit(EXIT_FAILURE);
    2020         }
    2021         if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
    2022             psFree(md);
    2023             exit(EXIT_FAILURE);
    2024         }
    2025         if (!psMetadataLookupF32(&status, md, "airmass_min") == 32.32) {
    2026             psFree(md);
    2027             exit(EXIT_FAILURE);
    2028         }
    2029         if (!psMetadataLookupF32(&status, md, "airmass_max") == 32.32) {
    2030             psFree(md);
    2031             exit(EXIT_FAILURE);
    2032         }
    2033         if (!psMetadataLookupF32(&status, md, "exp_time_min") == 32.32) {
    2034             psFree(md);
    2035             exit(EXIT_FAILURE);
    2036         }
    2037         if (!psMetadataLookupF32(&status, md, "exp_time_max") == 32.32) {
    2038             psFree(md);
    2039             exit(EXIT_FAILURE);
    2040         }
    2041         if (!psMetadataLookupF32(&status, md, "ccd_temp_min") == 32.32) {
    2042             psFree(md);
    2043             exit(EXIT_FAILURE);
    2044         }
    2045         if (!psMetadataLookupF32(&status, md, "ccd_temp_max") == 32.32) {
    2046             psFree(md);
    2047             exit(EXIT_FAILURE);
    2048         }
    2049         if (!psMetadataLookupF64(&status, md, "posang_min") == 64.64) {
    2050             psFree(md);
    2051             exit(EXIT_FAILURE);
    2052         }
    2053         if (!psMetadataLookupF64(&status, md, "posang_max") == 64.64) {
    2054             psFree(md);
    2055             exit(EXIT_FAILURE);
    2056         }
    2057             psFree(md);
    2058             exit(EXIT_FAILURE);
    2059         }
    2060             psFree(md);
    2061             exit(EXIT_FAILURE);
    2062         }
    2063             psFree(md);
    2064             exit(EXIT_FAILURE);
    2065         }
    2066             psFree(md);
    2067             exit(EXIT_FAILURE);
    2068         }
    2069             psFree(md);
    2070             exit(EXIT_FAILURE);
    2071         }
    2072         if (!psMetadataLookupF32(&status, md, "solang_min") == 32.32) {
    2073             psFree(md);
    2074             exit(EXIT_FAILURE);
    2075         }
    2076         if (!psMetadataLookupF32(&status, md, "solang_max") == 32.32) {
    2077             psFree(md);
    2078             exit(EXIT_FAILURE);
    2079         }
    2080         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    2081             psFree(md);
    2082             exit(EXIT_FAILURE);
    2083         }
    2084         if (!psMetadataLookupS32(&status, md, "parent") == -32) {
    2085             psFree(md);
    2086             exit(EXIT_FAILURE);
    2087         }
    2088 
    2089         psFree(md);
    2090     }
    2091 
    2092     {
    2093         psMetadata      *md;
    2094         detInputExpRow  *object;
    2095         bool            status;
    2096 
    2097         object = detInputExpRowAlloc(-64, -32, -64, true);
    2098         if (!object) {
    2099             exit(EXIT_FAILURE);
    2100         }
    2101 
    2102         md = detInputExpMetadataFromObject(object);
    2103         if (!md) {
    2104             exit(EXIT_FAILURE);
    2105         }
    2106 
    2107         psFree(object);
    2108 
    2109             psFree(md);
    2110             exit(EXIT_FAILURE);
    2111         }
    2112         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2113             psFree(md);
    2114             exit(EXIT_FAILURE);
    2115         }
    2116             psFree(md);
    2117             exit(EXIT_FAILURE);
    2118         }
    2119         if (!psMetadataLookupBool(&status, md, "include") == true) {
    2120             psFree(md);
    2121             exit(EXIT_FAILURE);
    2122         }
    2123 
    2124         psFree(md);
    2125     }
    2126 
    2127     {
    2128         psMetadata      *md;
    2129         detProcessedImfileRow *object;
    2130         bool            status;
    2131 
    2132         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);
    2133         if (!object) {
    2134             exit(EXIT_FAILURE);
    2135         }
    2136 
    2137         md = detProcessedImfileMetadataFromObject(object);
    2138         if (!md) {
    2139             exit(EXIT_FAILURE);
    2140         }
    2141 
    2142         psFree(object);
    2143 
    2144             psFree(md);
    2145             exit(EXIT_FAILURE);
    2146         }
    2147             psFree(md);
    2148             exit(EXIT_FAILURE);
    2149         }
    2150         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2151             psFree(md);
    2152             exit(EXIT_FAILURE);
    2153         }
    2154         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2155             psFree(md);
    2156             exit(EXIT_FAILURE);
    2157         }
    2158         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2159             psFree(md);
    2160             exit(EXIT_FAILURE);
    2161         }
    2162         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2163             psFree(md);
    2164             exit(EXIT_FAILURE);
    2165         }
    2166         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2167             psFree(md);
    2168             exit(EXIT_FAILURE);
    2169         }
    2170         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2171             psFree(md);
    2172             exit(EXIT_FAILURE);
    2173         }
    2174         if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
    2175             psFree(md);
    2176             exit(EXIT_FAILURE);
    2177         }
    2178         if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
    2179             psFree(md);
    2180             exit(EXIT_FAILURE);
    2181         }
    2182         if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
    2183             psFree(md);
    2184             exit(EXIT_FAILURE);
    2185         }
    2186         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2187             psFree(md);
    2188             exit(EXIT_FAILURE);
    2189         }
    2190         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2191             psFree(md);
    2192             exit(EXIT_FAILURE);
    2193         }
    2194         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2195             psFree(md);
    2196             exit(EXIT_FAILURE);
    2197         }
    2198         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2199             psFree(md);
    2200             exit(EXIT_FAILURE);
    2201         }
    2202         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2203             psFree(md);
    2204             exit(EXIT_FAILURE);
    2205         }
    2206         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2207             psFree(md);
    2208             exit(EXIT_FAILURE);
    2209         }
    2210             psFree(md);
    2211             exit(EXIT_FAILURE);
    2212         }
    2213 
    2214         psFree(md);
    2215     }
    2216 
    2217     {
    2218         psMetadata      *md;
    2219         detProcessedExpRow *object;
    2220         bool            status;
    2221 
    2222         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);
    2223         if (!object) {
    2224             exit(EXIT_FAILURE);
    2225         }
    2226 
    2227         md = detProcessedExpMetadataFromObject(object);
    2228         if (!md) {
    2229             exit(EXIT_FAILURE);
    2230         }
    2231 
    2232         psFree(object);
    2233 
    2234             psFree(md);
    2235             exit(EXIT_FAILURE);
    2236         }
    2237             psFree(md);
    2238             exit(EXIT_FAILURE);
    2239         }
    2240         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2241             psFree(md);
    2242             exit(EXIT_FAILURE);
    2243         }
    2244         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2245             psFree(md);
    2246             exit(EXIT_FAILURE);
    2247         }
    2248         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2249             psFree(md);
    2250             exit(EXIT_FAILURE);
    2251         }
    2252         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2253             psFree(md);
    2254             exit(EXIT_FAILURE);
    2255         }
    2256         if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
    2257             psFree(md);
    2258             exit(EXIT_FAILURE);
    2259         }
    2260         if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
    2261             psFree(md);
    2262             exit(EXIT_FAILURE);
    2263         }
    2264         if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
    2265             psFree(md);
    2266             exit(EXIT_FAILURE);
    2267         }
    2268         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2269             psFree(md);
    2270             exit(EXIT_FAILURE);
    2271         }
    2272         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2273             psFree(md);
    2274             exit(EXIT_FAILURE);
    2275         }
    2276         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2277             psFree(md);
    2278             exit(EXIT_FAILURE);
    2279         }
    2280         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2281             psFree(md);
    2282             exit(EXIT_FAILURE);
    2283         }
    2284         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2285             psFree(md);
    2286             exit(EXIT_FAILURE);
    2287         }
    2288         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2289             psFree(md);
    2290             exit(EXIT_FAILURE);
    2291         }
    2292             psFree(md);
    2293             exit(EXIT_FAILURE);
    2294         }
    2295 
    2296         psFree(md);
    2297     }
    2298 
    2299     {
    2300         psMetadata      *md;
    2301         detStackedImfileRow *object;
    2302         bool            status;
    2303 
    2304         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);
    2305         if (!object) {
    2306             exit(EXIT_FAILURE);
    2307         }
    2308 
    2309         md = detStackedImfileMetadataFromObject(object);
    2310         if (!md) {
    2311             exit(EXIT_FAILURE);
    2312         }
    2313 
    2314         psFree(object);
    2315 
    2316             psFree(md);
    2317             exit(EXIT_FAILURE);
    2318         }
    2319         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2320             psFree(md);
    2321             exit(EXIT_FAILURE);
    2322         }
    2323         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2324             psFree(md);
    2325             exit(EXIT_FAILURE);
    2326         }
    2327         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2328             psFree(md);
    2329             exit(EXIT_FAILURE);
    2330         }
    2331         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2332             psFree(md);
    2333             exit(EXIT_FAILURE);
    2334         }
    2335         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2336             psFree(md);
    2337             exit(EXIT_FAILURE);
    2338         }
    2339         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2340             psFree(md);
    2341             exit(EXIT_FAILURE);
    2342         }
    2343         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2344             psFree(md);
    2345             exit(EXIT_FAILURE);
    2346         }
    2347         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2348             psFree(md);
    2349             exit(EXIT_FAILURE);
    2350         }
    2351         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2352             psFree(md);
    2353             exit(EXIT_FAILURE);
    2354         }
    2355         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2356             psFree(md);
    2357             exit(EXIT_FAILURE);
    2358         }
    2359         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2360             psFree(md);
    2361             exit(EXIT_FAILURE);
    2362         }
    2363         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2364             psFree(md);
    2365             exit(EXIT_FAILURE);
    2366         }
    2367             psFree(md);
    2368             exit(EXIT_FAILURE);
    2369         }
    2370 
    2371         psFree(md);
    2372     }
    2373 
    2374     {
    2375         psMetadata      *md;
    2376         detNormalizedStatImfileRow *object;
    2377         bool            status;
    2378 
    2379         object = detNormalizedStatImfileRowAlloc(-64, -32, "a string", 32.32, -16);
    2380         if (!object) {
    2381             exit(EXIT_FAILURE);
    2382         }
    2383 
    2384         md = detNormalizedStatImfileMetadataFromObject(object);
    2385         if (!md) {
    2386             exit(EXIT_FAILURE);
    2387         }
    2388 
    2389         psFree(object);
    2390 
    2391             psFree(md);
    2392             exit(EXIT_FAILURE);
    2393         }
    2394         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2395             psFree(md);
    2396             exit(EXIT_FAILURE);
    2397         }
    2398         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2399             psFree(md);
    2400             exit(EXIT_FAILURE);
    2401         }
    2402         if (!psMetadataLookupF32(&status, md, "norm") == 32.32) {
    2403             psFree(md);
    2404             exit(EXIT_FAILURE);
    2405         }
    2406             psFree(md);
    2407             exit(EXIT_FAILURE);
    2408         }
    2409 
    2410         psFree(md);
    2411     }
    2412 
    2413     {
    2414         psMetadata      *md;
    2415         detNormalizedImfileRow *object;
    2416         bool            status;
    2417 
    2418         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);
    2419         if (!object) {
    2420             exit(EXIT_FAILURE);
    2421         }
    2422 
    2423         md = detNormalizedImfileMetadataFromObject(object);
    2424         if (!md) {
    2425             exit(EXIT_FAILURE);
    2426         }
    2427 
    2428         psFree(object);
    2429 
    2430             psFree(md);
    2431             exit(EXIT_FAILURE);
    2432         }
    2433         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2434             psFree(md);
    2435             exit(EXIT_FAILURE);
    2436         }
    2437         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2438             psFree(md);
    2439             exit(EXIT_FAILURE);
    2440         }
    2441         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2442             psFree(md);
    2443             exit(EXIT_FAILURE);
    2444         }
    2445         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2446             psFree(md);
    2447             exit(EXIT_FAILURE);
    2448         }
    2449         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2450             psFree(md);
    2451             exit(EXIT_FAILURE);
    2452         }
    2453         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2454             psFree(md);
    2455             exit(EXIT_FAILURE);
    2456         }
    2457         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2458             psFree(md);
    2459             exit(EXIT_FAILURE);
    2460         }
    2461         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2462             psFree(md);
    2463             exit(EXIT_FAILURE);
    2464         }
    2465         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2466             psFree(md);
    2467             exit(EXIT_FAILURE);
    2468         }
    2469         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2470             psFree(md);
    2471             exit(EXIT_FAILURE);
    2472         }
    2473         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2474             psFree(md);
    2475             exit(EXIT_FAILURE);
    2476         }
    2477         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2478             psFree(md);
    2479             exit(EXIT_FAILURE);
    2480         }
    2481             psFree(md);
    2482             exit(EXIT_FAILURE);
    2483         }
    2484 
    2485         psFree(md);
    2486     }
    2487 
    2488     {
    2489         psMetadata      *md;
    2490         detNormalizedExpRow *object;
    2491         bool            status;
    2492 
    2493         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);
    2494         if (!object) {
    2495             exit(EXIT_FAILURE);
    2496         }
    2497 
    2498         md = detNormalizedExpMetadataFromObject(object);
    2499         if (!md) {
    2500             exit(EXIT_FAILURE);
    2501         }
    2502 
    2503         psFree(object);
    2504 
    2505             psFree(md);
    2506             exit(EXIT_FAILURE);
    2507         }
    2508         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2509             psFree(md);
    2510             exit(EXIT_FAILURE);
    2511         }
    2512         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2513             psFree(md);
    2514             exit(EXIT_FAILURE);
    2515         }
    2516         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2517             psFree(md);
    2518             exit(EXIT_FAILURE);
    2519         }
    2520         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2521             psFree(md);
    2522             exit(EXIT_FAILURE);
    2523         }
    2524         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2525             psFree(md);
    2526             exit(EXIT_FAILURE);
    2527         }
    2528         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2529             psFree(md);
    2530             exit(EXIT_FAILURE);
    2531         }
    2532         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2533             psFree(md);
    2534             exit(EXIT_FAILURE);
    2535         }
    2536         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2537             psFree(md);
    2538             exit(EXIT_FAILURE);
    2539         }
    2540         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2541             psFree(md);
    2542             exit(EXIT_FAILURE);
    2543         }
    2544         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2545             psFree(md);
    2546             exit(EXIT_FAILURE);
    2547         }
    2548         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2549             psFree(md);
    2550             exit(EXIT_FAILURE);
    2551         }
    2552             psFree(md);
    2553             exit(EXIT_FAILURE);
    2554         }
    2555 
    2556         psFree(md);
    2557     }
    2558 
    2559     {
    2560         psMetadata      *md;
    2561         detResidImfileRow *object;
    2562         bool            status;
    2563 
    2564         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);
    2565         if (!object) {
    2566             exit(EXIT_FAILURE);
    2567         }
    2568 
    2569         md = detResidImfileMetadataFromObject(object);
    2570         if (!md) {
    2571             exit(EXIT_FAILURE);
    2572         }
    2573 
    2574         psFree(object);
    2575 
    2576             psFree(md);
    2577             exit(EXIT_FAILURE);
    2578         }
    2579         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2580             psFree(md);
    2581             exit(EXIT_FAILURE);
    2582         }
    2583             psFree(md);
    2584             exit(EXIT_FAILURE);
    2585         }
    2586         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2587             psFree(md);
    2588             exit(EXIT_FAILURE);
    2589         }
    2590         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2591             psFree(md);
    2592             exit(EXIT_FAILURE);
    2593         }
    2594         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2595             psFree(md);
    2596             exit(EXIT_FAILURE);
    2597         }
    2598         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2599             psFree(md);
    2600             exit(EXIT_FAILURE);
    2601         }
    2602         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2603             psFree(md);
    2604             exit(EXIT_FAILURE);
    2605         }
    2606         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2607             psFree(md);
    2608             exit(EXIT_FAILURE);
    2609         }
    2610         if (!psMetadataLookupF64(&status, md, "bg_skewness") == 64.64) {
    2611             psFree(md);
    2612             exit(EXIT_FAILURE);
    2613         }
    2614         if (!psMetadataLookupF64(&status, md, "bg_kurtosis") == 64.64) {
    2615             psFree(md);
    2616             exit(EXIT_FAILURE);
    2617         }
    2618         if (!psMetadataLookupF64(&status, md, "bin_stdev") == 64.64) {
    2619             psFree(md);
    2620             exit(EXIT_FAILURE);
    2621         }
    2622         if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
    2623             psFree(md);
    2624             exit(EXIT_FAILURE);
    2625         }
    2626         if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
    2627             psFree(md);
    2628             exit(EXIT_FAILURE);
    2629         }
    2630         if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
    2631             psFree(md);
    2632             exit(EXIT_FAILURE);
    2633         }
    2634         if (!psMetadataLookupF64(&status, md, "fringe_resid_0") == 64.64) {
    2635             psFree(md);
    2636             exit(EXIT_FAILURE);
    2637         }
    2638         if (!psMetadataLookupF64(&status, md, "fringe_resid_1") == 64.64) {
    2639             psFree(md);
    2640             exit(EXIT_FAILURE);
    2641         }
    2642         if (!psMetadataLookupF64(&status, md, "fringe_resid_2") == 64.64) {
    2643             psFree(md);
    2644             exit(EXIT_FAILURE);
    2645         }
    2646         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2647             psFree(md);
    2648             exit(EXIT_FAILURE);
    2649         }
    2650         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2651             psFree(md);
    2652             exit(EXIT_FAILURE);
    2653         }
    2654         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2655             psFree(md);
    2656             exit(EXIT_FAILURE);
    2657         }
    2658         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2659             psFree(md);
    2660             exit(EXIT_FAILURE);
    2661         }
    2662         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2663             psFree(md);
    2664             exit(EXIT_FAILURE);
    2665         }
    2666         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2667             psFree(md);
    2668             exit(EXIT_FAILURE);
    2669         }
    2670             psFree(md);
    2671             exit(EXIT_FAILURE);
    2672         }
    2673 
    2674         psFree(md);
    2675     }
    2676 
    2677     {
    2678         psMetadata      *md;
    2679         detResidExpRow  *object;
    2680         bool            status;
    2681 
    2682         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);
    2683         if (!object) {
    2684             exit(EXIT_FAILURE);
    2685         }
    2686 
    2687         md = detResidExpMetadataFromObject(object);
    2688         if (!md) {
    2689             exit(EXIT_FAILURE);
    2690         }
    2691 
    2692         psFree(object);
    2693 
    2694             psFree(md);
    2695             exit(EXIT_FAILURE);
    2696         }
    2697         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2698             psFree(md);
    2699             exit(EXIT_FAILURE);
    2700         }
    2701             psFree(md);
    2702             exit(EXIT_FAILURE);
    2703         }
    2704         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2705             psFree(md);
    2706             exit(EXIT_FAILURE);
    2707         }
    2708         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2709             psFree(md);
    2710             exit(EXIT_FAILURE);
    2711         }
    2712         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2713             psFree(md);
    2714             exit(EXIT_FAILURE);
    2715         }
    2716         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2717             psFree(md);
    2718             exit(EXIT_FAILURE);
    2719         }
    2720         if (!psMetadataLookupF64(&status, md, "bg_skewness") == 64.64) {
    2721             psFree(md);
    2722             exit(EXIT_FAILURE);
    2723         }
    2724         if (!psMetadataLookupF64(&status, md, "bg_kurtosis") == 64.64) {
    2725             psFree(md);
    2726             exit(EXIT_FAILURE);
    2727         }
    2728         if (!psMetadataLookupF64(&status, md, "bin_stdev") == 64.64) {
    2729             psFree(md);
    2730             exit(EXIT_FAILURE);
    2731         }
    2732         if (!psMetadataLookupF64(&status, md, "fringe_0") == 64.64) {
    2733             psFree(md);
    2734             exit(EXIT_FAILURE);
    2735         }
    2736         if (!psMetadataLookupF64(&status, md, "fringe_1") == 64.64) {
    2737             psFree(md);
    2738             exit(EXIT_FAILURE);
    2739         }
    2740         if (!psMetadataLookupF64(&status, md, "fringe_2") == 64.64) {
    2741             psFree(md);
    2742             exit(EXIT_FAILURE);
    2743         }
    2744         if (!psMetadataLookupF64(&status, md, "fringe_resid_0") == 64.64) {
    2745             psFree(md);
    2746             exit(EXIT_FAILURE);
    2747         }
    2748         if (!psMetadataLookupF64(&status, md, "fringe_resid_1") == 64.64) {
    2749             psFree(md);
    2750             exit(EXIT_FAILURE);
    2751         }
    2752         if (!psMetadataLookupF64(&status, md, "fringe_resid_2") == 64.64) {
    2753             psFree(md);
    2754             exit(EXIT_FAILURE);
    2755         }
    2756         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2757             psFree(md);
    2758             exit(EXIT_FAILURE);
    2759         }
    2760         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2761             psFree(md);
    2762             exit(EXIT_FAILURE);
    2763         }
    2764         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2765             psFree(md);
    2766             exit(EXIT_FAILURE);
    2767         }
    2768         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2769             psFree(md);
    2770             exit(EXIT_FAILURE);
    2771         }
    2772         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2773             psFree(md);
    2774             exit(EXIT_FAILURE);
    2775         }
    2776         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2777             psFree(md);
    2778             exit(EXIT_FAILURE);
    2779         }
    2780         if (!psMetadataLookupBool(&status, md, "accept") == true) {
    2781             psFree(md);
    2782             exit(EXIT_FAILURE);
    2783         }
    2784             psFree(md);
    2785             exit(EXIT_FAILURE);
    2786         }
    2787 
    2788         psFree(md);
    2789     }
    2790 
    2791     {
    2792         psMetadata      *md;
    2793         detRunSummaryRow *object;
    2794         bool            status;
    2795 
    2796         object = detRunSummaryRowAlloc(-64, -32, 64.64, 64.64, 64.64, true, -16);
    2797         if (!object) {
    2798             exit(EXIT_FAILURE);
    2799         }
    2800 
    2801         md = detRunSummaryMetadataFromObject(object);
    2802         if (!md) {
    2803             exit(EXIT_FAILURE);
    2804         }
    2805 
    2806         psFree(object);
    2807 
    2808             psFree(md);
    2809             exit(EXIT_FAILURE);
    2810         }
    2811         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2812             psFree(md);
    2813             exit(EXIT_FAILURE);
    2814         }
    2815         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2816             psFree(md);
    2817             exit(EXIT_FAILURE);
    2818         }
    2819         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2820             psFree(md);
    2821             exit(EXIT_FAILURE);
    2822         }
    2823         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2824             psFree(md);
    2825             exit(EXIT_FAILURE);
    2826         }
    2827         if (!psMetadataLookupBool(&status, md, "accept") == true) {
    2828             psFree(md);
    2829             exit(EXIT_FAILURE);
    2830         }
    2831             psFree(md);
    2832             exit(EXIT_FAILURE);
    2833         }
    2834 
    2835         psFree(md);
    2836     }
    2837 
    2838     {
    2839         psMetadata      *md;
    2840         detRegisteredImfileRow *object;
    2841         bool            status;
    2842 
    2843         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);
    2844         if (!object) {
    2845             exit(EXIT_FAILURE);
    2846         }
    2847 
    2848         md = detRegisteredImfileMetadataFromObject(object);
    2849         if (!md) {
    2850             exit(EXIT_FAILURE);
    2851         }
    2852 
    2853         psFree(object);
    2854 
    2855             psFree(md);
    2856             exit(EXIT_FAILURE);
    2857         }
    2858         if (!psMetadataLookupS32(&status, md, "iteration") == -32) {
    2859             psFree(md);
    2860             exit(EXIT_FAILURE);
    2861         }
    2862         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2863             psFree(md);
    2864             exit(EXIT_FAILURE);
    2865         }
    2866         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2867             psFree(md);
    2868             exit(EXIT_FAILURE);
    2869         }
    2870         if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
    2871             psFree(md);
    2872             exit(EXIT_FAILURE);
    2873         }
    2874         if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
    2875             psFree(md);
    2876             exit(EXIT_FAILURE);
    2877         }
    2878         if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
    2879             psFree(md);
    2880             exit(EXIT_FAILURE);
    2881         }
    2882         if (!psMetadataLookupF64(&status, md, "user_1") == 64.64) {
    2883             psFree(md);
    2884             exit(EXIT_FAILURE);
    2885         }
    2886         if (!psMetadataLookupF64(&status, md, "user_2") == 64.64) {
    2887             psFree(md);
    2888             exit(EXIT_FAILURE);
    2889         }
    2890         if (!psMetadataLookupF64(&status, md, "user_3") == 64.64) {
    2891             psFree(md);
    2892             exit(EXIT_FAILURE);
    2893         }
    2894         if (!psMetadataLookupF64(&status, md, "user_4") == 64.64) {
    2895             psFree(md);
    2896             exit(EXIT_FAILURE);
    2897         }
    2898         if (!psMetadataLookupF64(&status, md, "user_5") == 64.64) {
    2899             psFree(md);
    2900             exit(EXIT_FAILURE);
    2901         }
    2902         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2903             psFree(md);
    2904             exit(EXIT_FAILURE);
    2905         }
    2906             psFree(md);
    2907             exit(EXIT_FAILURE);
    2908         }
    2909 
    2910         psFree(md);
    2911     }
    2912 
    2913     {
    2914         psMetadata      *md;
    2915         detCorrectedExpRow *object;
    2916         bool            status;
    2917 
    2918         object = detCorrectedExpRowAlloc(-64, -64, "a string", -64, "a string", "a string", "a string", -16);
    2919         if (!object) {
    2920             exit(EXIT_FAILURE);
    2921         }
    2922 
    2923         md = detCorrectedExpMetadataFromObject(object);
    2924         if (!md) {
    2925             exit(EXIT_FAILURE);
    2926         }
    2927 
    2928         psFree(object);
    2929 
    2930             psFree(md);
    2931             exit(EXIT_FAILURE);
    2932         }
    2933             psFree(md);
    2934             exit(EXIT_FAILURE);
    2935         }
    2936         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2937             psFree(md);
    2938             exit(EXIT_FAILURE);
    2939         }
    2940             psFree(md);
    2941             exit(EXIT_FAILURE);
    2942         }
    2943         if (strncmp(psMetadataLookupPtr(&status, md, "corr_type"), "a string", MAX_STRING_LENGTH)) {
    2944             psFree(md);
    2945             exit(EXIT_FAILURE);
    2946         }
    2947         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    2948             psFree(md);
    2949             exit(EXIT_FAILURE);
    2950         }
    2951         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2952             psFree(md);
    2953             exit(EXIT_FAILURE);
    2954         }
    2955             psFree(md);
    2956             exit(EXIT_FAILURE);
    2957         }
    2958 
    2959         psFree(md);
    2960     }
    2961 
    2962     {
    2963         psMetadata      *md;
    2964         detCorrectedImfileRow *object;
    2965         bool            status;
    2966 
    2967         object = detCorrectedImfileRowAlloc(-64, -64, "a string", "a string", "a string", -16);
    2968         if (!object) {
    2969             exit(EXIT_FAILURE);
    2970         }
    2971 
    2972         md = detCorrectedImfileMetadataFromObject(object);
    2973         if (!md) {
    2974             exit(EXIT_FAILURE);
    2975         }
    2976 
    2977         psFree(object);
    2978 
    2979             psFree(md);
    2980             exit(EXIT_FAILURE);
    2981         }
    2982             psFree(md);
    2983             exit(EXIT_FAILURE);
    2984         }
    2985         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    2986             psFree(md);
    2987             exit(EXIT_FAILURE);
    2988         }
    2989         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    2990             psFree(md);
    2991             exit(EXIT_FAILURE);
    2992         }
    2993         if (strncmp(psMetadataLookupPtr(&status, md, "path_base"), "a string", MAX_STRING_LENGTH)) {
    2994             psFree(md);
    2995             exit(EXIT_FAILURE);
    2996         }
    2997             psFree(md);
    2998             exit(EXIT_FAILURE);
    2999         }
    3000 
    3001         psFree(md);
    3002     }
    3003 
    3004     {
    3005         psMetadata      *md;
    3006         magicRunRow     *object;
    3007         bool            status;
    3008 
    3009         object = magicRunRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", -16);
    3010         if (!object) {
    3011             exit(EXIT_FAILURE);
    3012         }
    3013 
    3014         md = magicRunMetadataFromObject(object);
    3015         if (!md) {
    3016             exit(EXIT_FAILURE);
    3017         }
    3018 
    3019         psFree(object);
    3020 
    3021             psFree(md);
    3022             exit(EXIT_FAILURE);
    3023         }
    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         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    3032             psFree(md);
    3033             exit(EXIT_FAILURE);
    3034         }
    3035         if (strncmp(psMetadataLookupPtr(&status, md, "workdir_state"), "a string", MAX_STRING_LENGTH)) {
    3036             psFree(md);
    3037             exit(EXIT_FAILURE);
    3038         }
    3039         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    3040             psFree(md);
    3041             exit(EXIT_FAILURE);
    3042         }
    3043         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    3044             psFree(md);
    3045             exit(EXIT_FAILURE);
    3046         }
    3047             psFree(md);
    3048             exit(EXIT_FAILURE);
    3049         }
    3050             psFree(md);
    3051             exit(EXIT_FAILURE);
    3052         }
    3053 
    3054         psFree(md);
    3055     }
    3056 
    3057     {
    3058         psMetadata      *md;
    3059         magicInputSkyfileRow *object;
    3060         bool            status;
    3061 
    3062         object = magicInputSkyfileRowAlloc(-64, -64, "a string");
    3063         if (!object) {
    3064             exit(EXIT_FAILURE);
    3065         }
    3066 
    3067         md = magicInputSkyfileMetadataFromObject(object);
    3068         if (!md) {
    3069             exit(EXIT_FAILURE);
    3070         }
    3071 
    3072         psFree(object);
    3073 
    3074             psFree(md);
    3075             exit(EXIT_FAILURE);
    3076         }
    3077             psFree(md);
    3078             exit(EXIT_FAILURE);
    3079         }
    3080         if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
    3081             psFree(md);
    3082             exit(EXIT_FAILURE);
    3083         }
    3084 
    3085         psFree(md);
    3086     }
    3087 
    3088     {
    3089         psMetadata      *md;
    3090         magicTreeRow    *object;
    3091         bool            status;
    3092 
    3093         object = magicTreeRowAlloc(-64, "a string", "a string");
    3094         if (!object) {
    3095             exit(EXIT_FAILURE);
    3096         }
    3097 
    3098         md = magicTreeMetadataFromObject(object);
    3099         if (!md) {
    3100             exit(EXIT_FAILURE);
    3101         }
    3102 
    3103         psFree(object);
    3104 
    3105             psFree(md);
    3106             exit(EXIT_FAILURE);
    3107         }
    3108         if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
    3109             psFree(md);
    3110             exit(EXIT_FAILURE);
    3111         }
    3112         if (strncmp(psMetadataLookupPtr(&status, md, "dep"), "a string", MAX_STRING_LENGTH)) {
    3113             psFree(md);
    3114             exit(EXIT_FAILURE);
    3115         }
    3116 
    3117         psFree(md);
    3118     }
    3119 
    3120     {
    3121         psMetadata      *md;
    3122         magicNodeResultRow *object;
    3123         bool            status;
    3124 
    3125         object = magicNodeResultRowAlloc(-64, "a string", "a string", -16);
    3126         if (!object) {
    3127             exit(EXIT_FAILURE);
    3128         }
    3129 
    3130         md = magicNodeResultMetadataFromObject(object);
    3131         if (!md) {
    3132             exit(EXIT_FAILURE);
    3133         }
    3134 
    3135         psFree(object);
    3136 
    3137             psFree(md);
    3138             exit(EXIT_FAILURE);
    3139         }
    3140         if (strncmp(psMetadataLookupPtr(&status, md, "node"), "a string", MAX_STRING_LENGTH)) {
    3141             psFree(md);
    3142             exit(EXIT_FAILURE);
    3143         }
    3144         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    3145             psFree(md);
    3146             exit(EXIT_FAILURE);
    3147         }
    3148             psFree(md);
    3149             exit(EXIT_FAILURE);
    3150         }
    3151 
    3152         psFree(md);
    3153     }
    3154 
    3155     {
    3156         psMetadata      *md;
    3157         magicMaskRow    *object;
    3158         bool            status;
    3159 
    3160         object = magicMaskRowAlloc(-64, "a string", -32, -16);
    3161         if (!object) {
    3162             exit(EXIT_FAILURE);
    3163         }
    3164 
    3165         md = magicMaskMetadataFromObject(object);
    3166         if (!md) {
    3167             exit(EXIT_FAILURE);
    3168         }
    3169 
    3170         psFree(object);
    3171 
    3172             psFree(md);
    3173             exit(EXIT_FAILURE);
    3174         }
    3175         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    3176             psFree(md);
    3177             exit(EXIT_FAILURE);
    3178         }
    3179         if (!psMetadataLookupS32(&status, md, "streaks") == -32) {
    3180             psFree(md);
    3181             exit(EXIT_FAILURE);
    3182         }
    3183             psFree(md);
    3184             exit(EXIT_FAILURE);
    3185         }
    3186 
    3187         psFree(md);
    3188     }
    3189 
    3190     {
    3191         psMetadata      *md;
    3192         calDBRow        *object;
    3193         bool            status;
    3194 
    3195         object = calDBRowAlloc(-64, "a string", "a string");
    3196         if (!object) {
    3197             exit(EXIT_FAILURE);
    3198         }
    3199 
    3200         md = calDBMetadataFromObject(object);
    3201         if (!md) {
    3202             exit(EXIT_FAILURE);
    3203         }
    3204 
    3205         psFree(object);
    3206 
    3207             psFree(md);
    3208             exit(EXIT_FAILURE);
    3209         }
    3210         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    3211             psFree(md);
    3212             exit(EXIT_FAILURE);
    3213         }
    3214         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    3215             psFree(md);
    3216             exit(EXIT_FAILURE);
    3217         }
    3218 
    3219         psFree(md);
    3220     }
    3221 
    3222     {
    3223         psMetadata      *md;
    3224         calRunRow       *object;
    3225         bool            status;
    3226 
    3227         object = calRunRowAlloc(-64, "a string", "a string", "a string");
    3228         if (!object) {
    3229             exit(EXIT_FAILURE);
    3230         }
    3231 
    3232         md = calRunMetadataFromObject(object);
    3233         if (!md) {
    3234             exit(EXIT_FAILURE);
    3235         }
    3236 
    3237         psFree(object);
    3238 
    3239             psFree(md);
    3240             exit(EXIT_FAILURE);
    3241         }
    3242         if (strncmp(psMetadataLookupPtr(&status, md, "region"), "a string", MAX_STRING_LENGTH)) {
    3243             psFree(md);
    3244             exit(EXIT_FAILURE);
    3245         }
    3246         if (strncmp(psMetadataLookupPtr(&status, md, "last_step"), "a string", MAX_STRING_LENGTH)) {
    3247             psFree(md);
    3248             exit(EXIT_FAILURE);
    3249         }
    3250         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    3251             psFree(md);
    3252             exit(EXIT_FAILURE);
    3253         }
    3254 
    3255         psFree(md);
    3256     }
    3257 
    3258     {
    3259         psMetadata      *md;
    3260         flatcorrRunRow  *object;
    3261         bool            status;
    3262 
    3263         object = flatcorrRunRowAlloc(-64, "a string", "a string", "a string", "a string", "a string", "a string", "a string");
    3264         if (!object) {
    3265             exit(EXIT_FAILURE);
    3266         }
    3267 
    3268         md = flatcorrRunMetadataFromObject(object);
    3269         if (!md) {
    3270             exit(EXIT_FAILURE);
    3271         }
    3272 
    3273         psFree(object);
    3274 
    3275             psFree(md);
    3276             exit(EXIT_FAILURE);
    3277         }
    3278         if (strncmp(psMetadataLookupPtr(&status, md, "dvodb"), "a string", MAX_STRING_LENGTH)) {
    3279             psFree(md);
    3280             exit(EXIT_FAILURE);
    3281         }
    3282         if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
    3283             psFree(md);
    3284             exit(EXIT_FAILURE);
    3285         }
    3286         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    3287             psFree(md);
    3288             exit(EXIT_FAILURE);
    3289         }
    3290         if (strncmp(psMetadataLookupPtr(&status, md, "workdir"), "a string", MAX_STRING_LENGTH)) {
    3291             psFree(md);
    3292             exit(EXIT_FAILURE);
    3293         }
    3294         if (strncmp(psMetadataLookupPtr(&status, md, "label"), "a string", MAX_STRING_LENGTH)) {
    3295             psFree(md);
    3296             exit(EXIT_FAILURE);
    3297         }
    3298         if (strncmp(psMetadataLookupPtr(&status, md, "stats"), "a string", MAX_STRING_LENGTH)) {
    3299             psFree(md);
    3300             exit(EXIT_FAILURE);
    3301         }
    3302         if (strncmp(psMetadataLookupPtr(&status, md, "region"), "a string", MAX_STRING_LENGTH)) {
    3303             psFree(md);
    3304             exit(EXIT_FAILURE);
    3305         }
    3306 
    3307         psFree(md);
    3308     }
    3309 
    3310     {
    3311         psMetadata      *md;
    3312         flatcorrExpRow  *object;
    3313         bool            status;
    3314 
    3315         object = flatcorrExpRowAlloc(-64, -64);
    3316         if (!object) {
    3317             exit(EXIT_FAILURE);
    3318         }
    3319 
    3320         md = flatcorrExpMetadataFromObject(object);
    3321         if (!md) {
    3322             exit(EXIT_FAILURE);
    3323         }
    3324 
    3325         psFree(object);
    3326 
    3327             psFree(md);
    3328             exit(EXIT_FAILURE);
    3329         }
    3330             psFree(md);
    3331             exit(EXIT_FAILURE);
    3332         }
    3333 
    3334         psFree(md);
    3335     }
    3336 
    3337     {
    3338         psMetadata      *md;
    3339         pstampDataStoreRow *object;
    3340         bool            status;
    3341 
    3342         object = pstampDataStoreRowAlloc(-64, "a string", "a string", "a string", "a string");
    3343         if (!object) {
    3344             exit(EXIT_FAILURE);
    3345         }
    3346 
    3347         md = pstampDataStoreMetadataFromObject(object);
    3348         if (!md) {
    3349             exit(EXIT_FAILURE);
    3350         }
    3351 
    3352         psFree(object);
    3353 
    3354             psFree(md);
    3355             exit(EXIT_FAILURE);
    3356         }
    3357         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    3358             psFree(md);
    3359             exit(EXIT_FAILURE);
    3360         }
    3361         if (strncmp(psMetadataLookupPtr(&status, md, "lastFileset"), "a string", MAX_STRING_LENGTH)) {
    3362             psFree(md);
    3363             exit(EXIT_FAILURE);
    3364         }
    3365         if (strncmp(psMetadataLookupPtr(&status, md, "outProduct"), "a string", MAX_STRING_LENGTH)) {
    3366             psFree(md);
    3367             exit(EXIT_FAILURE);
    3368         }
    3369         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    3370             psFree(md);
    3371             exit(EXIT_FAILURE);
    3372         }
    3373 
    3374         psFree(md);
    3375     }
    3376 
    3377     {
    3378         psMetadata      *md;
    3379         pstampRequestRow *object;
    3380         bool            status;
    3381 
    3382         object = pstampRequestRowAlloc(-64, -64, "a string", "a string", "a string", "a string", "a string", -32);
    3383         if (!object) {
    3384             exit(EXIT_FAILURE);
    3385         }
    3386 
    3387         md = pstampRequestMetadataFromObject(object);
    3388         if (!md) {
    3389             exit(EXIT_FAILURE);
    3390         }
    3391 
    3392         psFree(object);
    3393 
    3394             psFree(md);
    3395             exit(EXIT_FAILURE);
    3396         }
    3397             psFree(md);
    3398             exit(EXIT_FAILURE);
    3399         }
    3400         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    3401             psFree(md);
    3402             exit(EXIT_FAILURE);
    3403         }
    3404         if (strncmp(psMetadataLookupPtr(&status, md, "name"), "a string", MAX_STRING_LENGTH)) {
    3405             psFree(md);
    3406             exit(EXIT_FAILURE);
    3407         }
    3408         if (strncmp(psMetadataLookupPtr(&status, md, "reqType"), "a string", MAX_STRING_LENGTH)) {
    3409             psFree(md);
    3410             exit(EXIT_FAILURE);
    3411         }
    3412         if (strncmp(psMetadataLookupPtr(&status, md, "outProduct"), "a string", MAX_STRING_LENGTH)) {
    3413             psFree(md);
    3414             exit(EXIT_FAILURE);
    3415         }
    3416         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    3417             psFree(md);
    3418             exit(EXIT_FAILURE);
    3419         }
    3420         if (!psMetadataLookupS32(&status, md, "fault") == -32) {
    3421             psFree(md);
    3422             exit(EXIT_FAILURE);
    3423         }
    3424 
    3425         psFree(md);
    3426     }
    3427 
    3428     {
    3429         psMetadata      *md;
    3430         pstampJobRow    *object;
    3431         bool            status;
    3432 
    3433         object = pstampJobRowAlloc(-64, -64, "a string", "a string", "a string", -32, "a string", "a string", "a string");
    3434         if (!object) {
    3435             exit(EXIT_FAILURE);
    3436         }
    3437 
    3438         md = pstampJobMetadataFromObject(object);
    3439         if (!md) {
    3440             exit(EXIT_FAILURE);
    3441         }
    3442 
    3443         psFree(object);
    3444 
    3445             psFree(md);
    3446             exit(EXIT_FAILURE);
    3447         }
    3448             psFree(md);
    3449             exit(EXIT_FAILURE);
    3450         }
    3451         if (strncmp(psMetadataLookupPtr(&status, md, "rownum"), "a string", MAX_STRING_LENGTH)) {
    3452             psFree(md);
    3453             exit(EXIT_FAILURE);
    3454         }
    3455         if (strncmp(psMetadataLookupPtr(&status, md, "state"), "a string", MAX_STRING_LENGTH)) {
    3456             psFree(md);
    3457             exit(EXIT_FAILURE);
    3458         }
    3459         if (strncmp(psMetadataLookupPtr(&status, md, "jobType"), "a string", MAX_STRING_LENGTH)) {
    3460             psFree(md);
    3461             exit(EXIT_FAILURE);
    3462         }
    3463         if (!psMetadataLookupS32(&status, md, "fault") == -32) {
    3464             psFree(md);
    3465             exit(EXIT_FAILURE);
    3466         }
    3467         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    34683970            psFree(md);
    34693971            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/objectfrommetadata.c

    r18796 r20205  
    597597            exit(EXIT_FAILURE);
    598598        }
     599        if (!psMetadataAddStr(md, PS_LIST_TAIL, "obs_mode", 0, NULL, "a string")) {
     600            psFree(md);
     601            exit(EXIT_FAILURE);
     602        }
     603        if (!psMetadataAddStr(md, PS_LIST_TAIL, "obs_group", 0, NULL, "a string")) {
     604            psFree(md);
     605            exit(EXIT_FAILURE);
     606        }
    599607        if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 32.32)) {
    600608            psFree(md);
     
    753761            exit(EXIT_FAILURE);
    754762        }
    755         if (!psMetadataAddF32(md, PS_LIST_TAIL, "solang", 0, NULL, 32.32)) {
     763        if (!psMetadataAddF32(md, PS_LIST_TAIL, "sun_angle", 0, NULL, 32.32)) {
     764            psFree(md);
     765            exit(EXIT_FAILURE);
     766        }
     767        if (!psMetadataAddF32(md, PS_LIST_TAIL, "sun_alt", 0, NULL, 32.32)) {
     768            psFree(md);
     769            exit(EXIT_FAILURE);
     770        }
     771        if (!psMetadataAddF32(md, PS_LIST_TAIL, "moon_angle", 0, NULL, 32.32)) {
     772            psFree(md);
     773            exit(EXIT_FAILURE);
     774        }
     775        if (!psMetadataAddF32(md, PS_LIST_TAIL, "moon_alt", 0, NULL, 32.32)) {
     776            psFree(md);
     777            exit(EXIT_FAILURE);
     778        }
     779        if (!psMetadataAddF32(md, PS_LIST_TAIL, "moon_phase", 0, NULL, 32.32)) {
    756780            psFree(md);
    757781            exit(EXIT_FAILURE);
     
    834858            exit(EXIT_FAILURE);
    835859        }
     860        if (strncmp(object->obs_mode, "a string", MAX_STRING_LENGTH)) {
     861            psFree(object);
     862            exit(EXIT_FAILURE);
     863        }
     864        if (strncmp(object->obs_group, "a string", MAX_STRING_LENGTH)) {
     865            psFree(object);
     866            exit(EXIT_FAILURE);
     867        }
    836868        if (!object->airmass == 32.32) {
    837869            psFree(object);
     
    9901022            exit(EXIT_FAILURE);
    9911023        }
    992         if (!object->solang == 32.32) {
     1024        if (!object->sun_angle == 32.32) {
     1025            psFree(object);
     1026            exit(EXIT_FAILURE);
     1027        }
     1028        if (!object->sun_alt == 32.32) {
     1029            psFree(object);
     1030            exit(EXIT_FAILURE);
     1031        }
     1032        if (!object->moon_angle == 32.32) {
     1033            psFree(object);
     1034            exit(EXIT_FAILURE);
     1035        }
     1036        if (!object->moon_alt == 32.32) {
     1037            psFree(object);
     1038            exit(EXIT_FAILURE);
     1039        }
     1040        if (!object->moon_phase == 32.32) {
    9931041            psFree(object);
    9941042            exit(EXIT_FAILURE);
     
    10591107            exit(EXIT_FAILURE);
    10601108        }
     1109        if (!psMetadataAddStr(md, PS_LIST_TAIL, "obs_mode", 0, NULL, "a string")) {
     1110            psFree(md);
     1111            exit(EXIT_FAILURE);
     1112        }
     1113        if (!psMetadataAddStr(md, PS_LIST_TAIL, "obs_group", 0, NULL, "a string")) {
     1114            psFree(md);
     1115            exit(EXIT_FAILURE);
     1116        }
    10611117        if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 32.32)) {
    10621118            psFree(md);
     
    12121268        }
    12131269        if (!psMetadataAddStr(md, PS_LIST_TAIL, "object", 0, NULL, "a string")) {
     1270            psFree(md);
     1271            exit(EXIT_FAILURE);
     1272        }
     1273        if (!psMetadataAddF32(md, PS_LIST_TAIL, "sun_angle", 0, NULL, 32.32)) {
     1274            psFree(md);
     1275            exit(EXIT_FAILURE);
     1276        }
     1277        if (!psMetadataAddF32(md, PS_LIST_TAIL, "sun_alt", 0, NULL, 32.32)) {
     1278            psFree(md);
     1279            exit(EXIT_FAILURE);
     1280        }
     1281        if (!psMetadataAddF32(md, PS_LIST_TAIL, "moon_angle", 0, NULL, 32.32)) {
     1282            psFree(md);
     1283            exit(EXIT_FAILURE);
     1284        }
     1285        if (!psMetadataAddF32(md, PS_LIST_TAIL, "moon_alt", 0, NULL, 32.32)) {
     1286            psFree(md);
     1287            exit(EXIT_FAILURE);
     1288        }
     1289        if (!psMetadataAddF32(md, PS_LIST_TAIL, "moon_phase", 0, NULL, 32.32)) {
    12141290            psFree(md);
    12151291            exit(EXIT_FAILURE);
     
    12801356            exit(EXIT_FAILURE);
    12811357        }
     1358        if (strncmp(object->obs_mode, "a string", MAX_STRING_LENGTH)) {
     1359            psFree(object);
     1360            exit(EXIT_FAILURE);
     1361        }
     1362        if (strncmp(object->obs_group, "a string", MAX_STRING_LENGTH)) {
     1363            psFree(object);
     1364            exit(EXIT_FAILURE);
     1365        }
    12821366        if (!object->airmass == 32.32) {
    12831367            psFree(object);
     
    14331517        }
    14341518        if (strncmp(object->object, "a string", MAX_STRING_LENGTH)) {
     1519            psFree(object);
     1520            exit(EXIT_FAILURE);
     1521        }
     1522        if (!object->sun_angle == 32.32) {
     1523            psFree(object);
     1524            exit(EXIT_FAILURE);
     1525        }
     1526        if (!object->sun_alt == 32.32) {
     1527            psFree(object);
     1528            exit(EXIT_FAILURE);
     1529        }
     1530        if (!object->moon_angle == 32.32) {
     1531            psFree(object);
     1532            exit(EXIT_FAILURE);
     1533        }
     1534        if (!object->moon_alt == 32.32) {
     1535            psFree(object);
     1536            exit(EXIT_FAILURE);
     1537        }
     1538        if (!object->moon_phase == 32.32) {
    14351539            psFree(object);
    14361540            exit(EXIT_FAILURE);
     
    16051709            exit(EXIT_FAILURE);
    16061710        }
     1711        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     1712            psFree(md);
     1713            exit(EXIT_FAILURE);
     1714        }
    16071715        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
    16081716            psFree(md);
     
    16411749            exit(EXIT_FAILURE);
    16421750        }
    1643         if (!psMetadataAddF32(md, PS_LIST_TAIL, "sigma_ra", 0, NULL, 32.32)) {
    1644             psFree(md);
    1645             exit(EXIT_FAILURE);
    1646         }
    1647         if (!psMetadataAddF32(md, PS_LIST_TAIL, "sigma_dec", 0, NULL, 32.32)) {
    1648             psFree(md);
    1649             exit(EXIT_FAILURE);
    1650         }
    16511751        if (!psMetadataAddF32(md, PS_LIST_TAIL, "ap_resid", 0, NULL, 32.32)) {
    16521752            psFree(md);
     
    16571757            exit(EXIT_FAILURE);
    16581758        }
    1659         if (!psMetadataAddF32(md, PS_LIST_TAIL, "zp_mean", 0, NULL, 32.32)) {
    1660             psFree(md);
    1661             exit(EXIT_FAILURE);
    1662         }
    1663         if (!psMetadataAddF32(md, PS_LIST_TAIL, "zp_stdev", 0, NULL, 32.32)) {
    1664             psFree(md);
    1665             exit(EXIT_FAILURE);
    1666         }
    16671759        if (!psMetadataAddF32(md, PS_LIST_TAIL, "fwhm_major", 0, NULL, 32.32)) {
    16681760            psFree(md);
     
    16731765            exit(EXIT_FAILURE);
    16741766        }
     1767        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2", 0, NULL, 32.32)) {
     1768            psFree(md);
     1769            exit(EXIT_FAILURE);
     1770        }
     1771        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2_err", 0, NULL, 32.32)) {
     1772            psFree(md);
     1773            exit(EXIT_FAILURE);
     1774        }
     1775        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2_lq", 0, NULL, 32.32)) {
     1776            psFree(md);
     1777            exit(EXIT_FAILURE);
     1778        }
     1779        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2_uq", 0, NULL, 32.32)) {
     1780            psFree(md);
     1781            exit(EXIT_FAILURE);
     1782        }
     1783        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2c", 0, NULL, 32.32)) {
     1784            psFree(md);
     1785            exit(EXIT_FAILURE);
     1786        }
     1787        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2c_err", 0, NULL, 32.32)) {
     1788            psFree(md);
     1789            exit(EXIT_FAILURE);
     1790        }
     1791        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2c_lq", 0, NULL, 32.32)) {
     1792            psFree(md);
     1793            exit(EXIT_FAILURE);
     1794        }
     1795        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2c_uq", 0, NULL, 32.32)) {
     1796            psFree(md);
     1797            exit(EXIT_FAILURE);
     1798        }
     1799        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2s", 0, NULL, 32.32)) {
     1800            psFree(md);
     1801            exit(EXIT_FAILURE);
     1802        }
     1803        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2s_err", 0, NULL, 32.32)) {
     1804            psFree(md);
     1805            exit(EXIT_FAILURE);
     1806        }
     1807        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2s_lq", 0, NULL, 32.32)) {
     1808            psFree(md);
     1809            exit(EXIT_FAILURE);
     1810        }
     1811        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2s_uq", 0, NULL, 32.32)) {
     1812            psFree(md);
     1813            exit(EXIT_FAILURE);
     1814        }
     1815        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m3", 0, NULL, 32.32)) {
     1816            psFree(md);
     1817            exit(EXIT_FAILURE);
     1818        }
     1819        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m3_err", 0, NULL, 32.32)) {
     1820            psFree(md);
     1821            exit(EXIT_FAILURE);
     1822        }
     1823        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m3_lq", 0, NULL, 32.32)) {
     1824            psFree(md);
     1825            exit(EXIT_FAILURE);
     1826        }
     1827        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m3_uq", 0, NULL, 32.32)) {
     1828            psFree(md);
     1829            exit(EXIT_FAILURE);
     1830        }
     1831        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m4", 0, NULL, 32.32)) {
     1832            psFree(md);
     1833            exit(EXIT_FAILURE);
     1834        }
     1835        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m4_err", 0, NULL, 32.32)) {
     1836            psFree(md);
     1837            exit(EXIT_FAILURE);
     1838        }
     1839        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m4_lq", 0, NULL, 32.32)) {
     1840            psFree(md);
     1841            exit(EXIT_FAILURE);
     1842        }
     1843        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m4_uq", 0, NULL, 32.32)) {
     1844            psFree(md);
     1845            exit(EXIT_FAILURE);
     1846        }
    16751847        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_detrend", 0, NULL, 32.32)) {
    16761848            psFree(md);
     
    16811853            exit(EXIT_FAILURE);
    16821854        }
    1683         if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_astrom", 0, NULL, 32.32)) {
     1855        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_total", 0, NULL, 32.32)) {
     1856            psFree(md);
     1857            exit(EXIT_FAILURE);
     1858        }
     1859        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_script", 0, NULL, 32.32)) {
    16841860            psFree(md);
    16851861            exit(EXIT_FAILURE);
     
    16931869            exit(EXIT_FAILURE);
    16941870        }
     1871        if (!psMetadataAddS32(md, PS_LIST_TAIL, "n_psfstars", 0, NULL, -32)) {
     1872            psFree(md);
     1873            exit(EXIT_FAILURE);
     1874        }
     1875        if (!psMetadataAddS32(md, PS_LIST_TAIL, "n_iqstars", 0, NULL, -32)) {
     1876            psFree(md);
     1877            exit(EXIT_FAILURE);
     1878        }
    16951879        if (!psMetadataAddS32(md, PS_LIST_TAIL, "n_extended", 0, NULL, -32)) {
    16961880            psFree(md);
     
    16981882        }
    16991883        if (!psMetadataAddS32(md, PS_LIST_TAIL, "n_cr", 0, NULL, -32)) {
    1700             psFree(md);
    1701             exit(EXIT_FAILURE);
    1702         }
    1703         if (!psMetadataAddS32(md, PS_LIST_TAIL, "n_astrom", 0, NULL, -32)) {
    17041884            psFree(md);
    17051885            exit(EXIT_FAILURE);
     
    17311911            exit(EXIT_FAILURE);
    17321912        }
     1913        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     1914            psFree(object);
     1915            exit(EXIT_FAILURE);
     1916        }
    17331917        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    17341918            psFree(object);
     
    17671951            exit(EXIT_FAILURE);
    17681952        }
    1769         if (!object->sigma_ra == 32.32) {
    1770             psFree(object);
    1771             exit(EXIT_FAILURE);
    1772         }
    1773         if (!object->sigma_dec == 32.32) {
    1774             psFree(object);
    1775             exit(EXIT_FAILURE);
    1776         }
    17771953        if (!object->ap_resid == 32.32) {
    17781954            psFree(object);
     
    17831959            exit(EXIT_FAILURE);
    17841960        }
    1785         if (!object->zp_mean == 32.32) {
    1786             psFree(object);
    1787             exit(EXIT_FAILURE);
    1788         }
    1789         if (!object->zp_stdev == 32.32) {
    1790             psFree(object);
    1791             exit(EXIT_FAILURE);
    1792         }
    17931961        if (!object->fwhm_major == 32.32) {
    17941962            psFree(object);
     
    17991967            exit(EXIT_FAILURE);
    18001968        }
     1969        if (!object->iq_m2 == 32.32) {
     1970            psFree(object);
     1971            exit(EXIT_FAILURE);
     1972        }
     1973        if (!object->iq_m2_err == 32.32) {
     1974            psFree(object);
     1975            exit(EXIT_FAILURE);
     1976        }
     1977        if (!object->iq_m2_lq == 32.32) {
     1978            psFree(object);
     1979            exit(EXIT_FAILURE);
     1980        }
     1981        if (!object->iq_m2_uq == 32.32) {
     1982            psFree(object);
     1983            exit(EXIT_FAILURE);
     1984        }
     1985        if (!object->iq_m2c == 32.32) {
     1986            psFree(object);
     1987            exit(EXIT_FAILURE);
     1988        }
     1989        if (!object->iq_m2c_err == 32.32) {
     1990            psFree(object);
     1991            exit(EXIT_FAILURE);
     1992        }
     1993        if (!object->iq_m2c_lq == 32.32) {
     1994            psFree(object);
     1995            exit(EXIT_FAILURE);
     1996        }
     1997        if (!object->iq_m2c_uq == 32.32) {
     1998            psFree(object);
     1999            exit(EXIT_FAILURE);
     2000        }
     2001        if (!object->iq_m2s == 32.32) {
     2002            psFree(object);
     2003            exit(EXIT_FAILURE);
     2004        }
     2005        if (!object->iq_m2s_err == 32.32) {
     2006            psFree(object);
     2007            exit(EXIT_FAILURE);
     2008        }
     2009        if (!object->iq_m2s_lq == 32.32) {
     2010            psFree(object);
     2011            exit(EXIT_FAILURE);
     2012        }
     2013        if (!object->iq_m2s_uq == 32.32) {
     2014            psFree(object);
     2015            exit(EXIT_FAILURE);
     2016        }
     2017        if (!object->iq_m3 == 32.32) {
     2018            psFree(object);
     2019            exit(EXIT_FAILURE);
     2020        }
     2021        if (!object->iq_m3_err == 32.32) {
     2022            psFree(object);
     2023            exit(EXIT_FAILURE);
     2024        }
     2025        if (!object->iq_m3_lq == 32.32) {
     2026            psFree(object);
     2027            exit(EXIT_FAILURE);
     2028        }
     2029        if (!object->iq_m3_uq == 32.32) {
     2030            psFree(object);
     2031            exit(EXIT_FAILURE);
     2032        }
     2033        if (!object->iq_m4 == 32.32) {
     2034            psFree(object);
     2035            exit(EXIT_FAILURE);
     2036        }
     2037        if (!object->iq_m4_err == 32.32) {
     2038            psFree(object);
     2039            exit(EXIT_FAILURE);
     2040        }
     2041        if (!object->iq_m4_lq == 32.32) {
     2042            psFree(object);
     2043            exit(EXIT_FAILURE);
     2044        }
     2045        if (!object->iq_m4_uq == 32.32) {
     2046            psFree(object);
     2047            exit(EXIT_FAILURE);
     2048        }
    18012049        if (!object->dtime_detrend == 32.32) {
    18022050            psFree(object);
     
    18072055            exit(EXIT_FAILURE);
    18082056        }
    1809         if (!object->dtime_astrom == 32.32) {
     2057        if (!object->dtime_total == 32.32) {
     2058            psFree(object);
     2059            exit(EXIT_FAILURE);
     2060        }
     2061        if (!object->dtime_script == 32.32) {
    18102062            psFree(object);
    18112063            exit(EXIT_FAILURE);
     
    18192071            exit(EXIT_FAILURE);
    18202072        }
     2073        if (!object->n_psfstars == -32) {
     2074            psFree(object);
     2075            exit(EXIT_FAILURE);
     2076        }
     2077        if (!object->n_iqstars == -32) {
     2078            psFree(object);
     2079            exit(EXIT_FAILURE);
     2080        }
    18212081        if (!object->n_extended == -32) {
    18222082            psFree(object);
     
    18242084        }
    18252085        if (!object->n_cr == -32) {
    1826             psFree(object);
    1827             exit(EXIT_FAILURE);
    1828         }
    1829         if (!object->n_astrom == -32) {
    18302086            psFree(object);
    18312087            exit(EXIT_FAILURE);
     
    20462302            exit(EXIT_FAILURE);
    20472303        }
    2048         if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_detrend", 0, NULL, 32.32)) {
    2049             psFree(md);
    2050             exit(EXIT_FAILURE);
    2051         }
    2052         if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_photom", 0, NULL, 32.32)) {
     2304        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2", 0, NULL, 32.32)) {
     2305            psFree(md);
     2306            exit(EXIT_FAILURE);
     2307        }
     2308        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2_err", 0, NULL, 32.32)) {
     2309            psFree(md);
     2310            exit(EXIT_FAILURE);
     2311        }
     2312        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2_lq", 0, NULL, 32.32)) {
     2313            psFree(md);
     2314            exit(EXIT_FAILURE);
     2315        }
     2316        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2_uq", 0, NULL, 32.32)) {
     2317            psFree(md);
     2318            exit(EXIT_FAILURE);
     2319        }
     2320        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2c", 0, NULL, 32.32)) {
     2321            psFree(md);
     2322            exit(EXIT_FAILURE);
     2323        }
     2324        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2c_err", 0, NULL, 32.32)) {
     2325            psFree(md);
     2326            exit(EXIT_FAILURE);
     2327        }
     2328        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2c_lq", 0, NULL, 32.32)) {
     2329            psFree(md);
     2330            exit(EXIT_FAILURE);
     2331        }
     2332        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2c_uq", 0, NULL, 32.32)) {
     2333            psFree(md);
     2334            exit(EXIT_FAILURE);
     2335        }
     2336        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2s", 0, NULL, 32.32)) {
     2337            psFree(md);
     2338            exit(EXIT_FAILURE);
     2339        }
     2340        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2s_err", 0, NULL, 32.32)) {
     2341            psFree(md);
     2342            exit(EXIT_FAILURE);
     2343        }
     2344        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2s_lq", 0, NULL, 32.32)) {
     2345            psFree(md);
     2346            exit(EXIT_FAILURE);
     2347        }
     2348        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m2s_uq", 0, NULL, 32.32)) {
     2349            psFree(md);
     2350            exit(EXIT_FAILURE);
     2351        }
     2352        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m3", 0, NULL, 32.32)) {
     2353            psFree(md);
     2354            exit(EXIT_FAILURE);
     2355        }
     2356        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m3_err", 0, NULL, 32.32)) {
     2357            psFree(md);
     2358            exit(EXIT_FAILURE);
     2359        }
     2360        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m3_lq", 0, NULL, 32.32)) {
     2361            psFree(md);
     2362            exit(EXIT_FAILURE);
     2363        }
     2364        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m3_uq", 0, NULL, 32.32)) {
     2365            psFree(md);
     2366            exit(EXIT_FAILURE);
     2367        }
     2368        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m4", 0, NULL, 32.32)) {
     2369            psFree(md);
     2370            exit(EXIT_FAILURE);
     2371        }
     2372        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m4_err", 0, NULL, 32.32)) {
     2373            psFree(md);
     2374            exit(EXIT_FAILURE);
     2375        }
     2376        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m4_lq", 0, NULL, 32.32)) {
     2377            psFree(md);
     2378            exit(EXIT_FAILURE);
     2379        }
     2380        if (!psMetadataAddF32(md, PS_LIST_TAIL, "iq_m4_uq", 0, NULL, 32.32)) {
     2381            psFree(md);
     2382            exit(EXIT_FAILURE);
     2383        }
     2384        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_script", 0, NULL, 32.32)) {
    20532385            psFree(md);
    20542386            exit(EXIT_FAILURE);
     
    20582390            exit(EXIT_FAILURE);
    20592391        }
     2392        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_addstar", 0, NULL, 32.32)) {
     2393            psFree(md);
     2394            exit(EXIT_FAILURE);
     2395        }
    20602396        if (!psMetadataAddStr(md, PS_LIST_TAIL, "hostname", 0, NULL, "a string")) {
    20612397            psFree(md);
     
    20632399        }
    20642400        if (!psMetadataAddS32(md, PS_LIST_TAIL, "n_stars", 0, NULL, -32)) {
     2401            psFree(md);
     2402            exit(EXIT_FAILURE);
     2403        }
     2404        if (!psMetadataAddS32(md, PS_LIST_TAIL, "n_psfstars", 0, NULL, -32)) {
     2405            psFree(md);
     2406            exit(EXIT_FAILURE);
     2407        }
     2408        if (!psMetadataAddS32(md, PS_LIST_TAIL, "n_iqstars", 0, NULL, -32)) {
    20652409            psFree(md);
    20662410            exit(EXIT_FAILURE);
     
    21652509            exit(EXIT_FAILURE);
    21662510        }
    2167         if (!object->dtime_detrend == 32.32) {
    2168             psFree(object);
    2169             exit(EXIT_FAILURE);
    2170         }
    2171         if (!object->dtime_photom == 32.32) {
     2511        if (!object->iq_m2 == 32.32) {
     2512            psFree(object);
     2513            exit(EXIT_FAILURE);
     2514        }
     2515        if (!object->iq_m2_err == 32.32) {
     2516            psFree(object);
     2517            exit(EXIT_FAILURE);
     2518        }
     2519        if (!object->iq_m2_lq == 32.32) {
     2520            psFree(object);
     2521            exit(EXIT_FAILURE);
     2522        }
     2523        if (!object->iq_m2_uq == 32.32) {
     2524            psFree(object);
     2525            exit(EXIT_FAILURE);
     2526        }
     2527        if (!object->iq_m2c == 32.32) {
     2528            psFree(object);
     2529            exit(EXIT_FAILURE);
     2530        }
     2531        if (!object->iq_m2c_err == 32.32) {
     2532            psFree(object);
     2533            exit(EXIT_FAILURE);
     2534        }
     2535        if (!object->iq_m2c_lq == 32.32) {
     2536            psFree(object);
     2537            exit(EXIT_FAILURE);
     2538        }
     2539        if (!object->iq_m2c_uq == 32.32) {
     2540            psFree(object);
     2541            exit(EXIT_FAILURE);
     2542        }
     2543        if (!object->iq_m2s == 32.32) {
     2544            psFree(object);
     2545            exit(EXIT_FAILURE);
     2546        }
     2547        if (!object->iq_m2s_err == 32.32) {
     2548            psFree(object);
     2549            exit(EXIT_FAILURE);
     2550        }
     2551        if (!object->iq_m2s_lq == 32.32) {
     2552            psFree(object);
     2553            exit(EXIT_FAILURE);
     2554        }
     2555        if (!object->iq_m2s_uq == 32.32) {
     2556            psFree(object);
     2557            exit(EXIT_FAILURE);
     2558        }
     2559        if (!object->iq_m3 == 32.32) {
     2560            psFree(object);
     2561            exit(EXIT_FAILURE);
     2562        }
     2563        if (!object->iq_m3_err == 32.32) {
     2564            psFree(object);
     2565            exit(EXIT_FAILURE);
     2566        }
     2567        if (!object->iq_m3_lq == 32.32) {
     2568            psFree(object);
     2569            exit(EXIT_FAILURE);
     2570        }
     2571        if (!object->iq_m3_uq == 32.32) {
     2572            psFree(object);
     2573            exit(EXIT_FAILURE);
     2574        }
     2575        if (!object->iq_m4 == 32.32) {
     2576            psFree(object);
     2577            exit(EXIT_FAILURE);
     2578        }
     2579        if (!object->iq_m4_err == 32.32) {
     2580            psFree(object);
     2581            exit(EXIT_FAILURE);
     2582        }
     2583        if (!object->iq_m4_lq == 32.32) {
     2584            psFree(object);
     2585            exit(EXIT_FAILURE);
     2586        }
     2587        if (!object->iq_m4_uq == 32.32) {
     2588            psFree(object);
     2589            exit(EXIT_FAILURE);
     2590        }
     2591        if (!object->dtime_script == 32.32) {
    21722592            psFree(object);
    21732593            exit(EXIT_FAILURE);
     
    21772597            exit(EXIT_FAILURE);
    21782598        }
     2599        if (!object->dtime_addstar == 32.32) {
     2600            psFree(object);
     2601            exit(EXIT_FAILURE);
     2602        }
    21792603        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    21802604            psFree(object);
     
    21822606        }
    21832607        if (!object->n_stars == -32) {
     2608            psFree(object);
     2609            exit(EXIT_FAILURE);
     2610        }
     2611        if (!object->n_psfstars == -32) {
     2612            psFree(object);
     2613            exit(EXIT_FAILURE);
     2614        }
     2615        if (!object->n_iqstars == -32) {
    21842616            psFree(object);
    21852617            exit(EXIT_FAILURE);
     
    23572789            exit(EXIT_FAILURE);
    23582790        }
     2791        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_script", 0, NULL, 32.32)) {
     2792            psFree(md);
     2793            exit(EXIT_FAILURE);
     2794        }
    23592795        if (!psMetadataAddStr(md, PS_LIST_TAIL, "hostname", 0, NULL, "a string")) {
    23602796            psFree(md);
     
    23622798        }
    23632799        if (!psMetadataAddStr(md, PS_LIST_TAIL, "path_base", 0, NULL, "a string")) {
     2800            psFree(md);
     2801            exit(EXIT_FAILURE);
     2802        }
     2803        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
    23642804            psFree(md);
    23652805            exit(EXIT_FAILURE);
     
    23982838            exit(EXIT_FAILURE);
    23992839        }
     2840        if (!object->dtime_script == 32.32) {
     2841            psFree(object);
     2842            exit(EXIT_FAILURE);
     2843        }
    24002844        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
    24012845            psFree(object);
     
    24032847        }
    24042848        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     2849            psFree(object);
     2850            exit(EXIT_FAILURE);
     2851        }
     2852        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    24052853            psFree(object);
    24062854            exit(EXIT_FAILURE);
     
    26283076            exit(EXIT_FAILURE);
    26293077        }
     3078        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     3079            psFree(md);
     3080            exit(EXIT_FAILURE);
     3081        }
    26303082        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 64.64)) {
    26313083            psFree(md);
     
    26373089        }
    26383090        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_warp", 0, NULL, 32.32)) {
     3091            psFree(md);
     3092            exit(EXIT_FAILURE);
     3093        }
     3094        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_script", 0, NULL, 32.32)) {
    26393095            psFree(md);
    26403096            exit(EXIT_FAILURE);
     
    26993155            exit(EXIT_FAILURE);
    27003156        }
     3157        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
     3158            psFree(object);
     3159            exit(EXIT_FAILURE);
     3160        }
    27013161        if (!object->bg == 64.64) {
    27023162            psFree(object);
     
    27083168        }
    27093169        if (!object->dtime_warp == 32.32) {
     3170            psFree(object);
     3171            exit(EXIT_FAILURE);
     3172        }
     3173        if (!object->dtime_script == 32.32) {
    27103174            psFree(object);
    27113175            exit(EXIT_FAILURE);
     
    27843248            exit(EXIT_FAILURE);
    27853249        }
     3250        if (!psMetadataAddStr(md, PS_LIST_TAIL, "label", 0, NULL, "a string")) {
     3251            psFree(md);
     3252            exit(EXIT_FAILURE);
     3253        }
     3254        if (!psMetadataAddStr(md, PS_LIST_TAIL, "reduction", 0, NULL, "a string")) {
     3255            psFree(md);
     3256            exit(EXIT_FAILURE);
     3257        }
    27863258        if (!psMetadataAddStr(md, PS_LIST_TAIL, "workdir", 0, NULL, "a string")) {
    27873259            psFree(md);
     
    28163288        }
    28173289        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     3290            psFree(object);
     3291            exit(EXIT_FAILURE);
     3292        }
     3293        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     3294            psFree(object);
     3295            exit(EXIT_FAILURE);
     3296        }
     3297        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
    28183298            psFree(object);
    28193299            exit(EXIT_FAILURE);
     
    29383418            exit(EXIT_FAILURE);
    29393419        }
     3420        if (!psMetadataAddF32(md, PS_LIST_TAIL, "stamps_mean", 0, NULL, 32.32)) {
     3421            psFree(md);
     3422            exit(EXIT_FAILURE);
     3423        }
    29403424        if (!psMetadataAddF32(md, PS_LIST_TAIL, "stamps_rms", 0, NULL, 32.32)) {
    29413425            psFree(md);
    29423426            exit(EXIT_FAILURE);
    29433427        }
     3428        if (!psMetadataAddF32(md, PS_LIST_TAIL, "norm", 0, NULL, 32.32)) {
     3429            psFree(md);
     3430            exit(EXIT_FAILURE);
     3431        }
     3432        if (!psMetadataAddF32(md, PS_LIST_TAIL, "bg_diff", 0, NULL, 32.32)) {
     3433            psFree(md);
     3434            exit(EXIT_FAILURE);
     3435        }
     3436        if (!psMetadataAddF32(md, PS_LIST_TAIL, "kernel_x", 0, NULL, 32.32)) {
     3437            psFree(md);
     3438            exit(EXIT_FAILURE);
     3439        }
     3440        if (!psMetadataAddF32(md, PS_LIST_TAIL, "kernel_y", 0, NULL, 32.32)) {
     3441            psFree(md);
     3442            exit(EXIT_FAILURE);
     3443        }
     3444        if (!psMetadataAddF32(md, PS_LIST_TAIL, "kernel_xx", 0, NULL, 32.32)) {
     3445            psFree(md);
     3446            exit(EXIT_FAILURE);
     3447        }
     3448        if (!psMetadataAddF32(md, PS_LIST_TAIL, "kernel_xy", 0, NULL, 32.32)) {
     3449            psFree(md);
     3450            exit(EXIT_FAILURE);
     3451        }
     3452        if (!psMetadataAddF32(md, PS_LIST_TAIL, "kernel_yy", 0, NULL, 32.32)) {
     3453            psFree(md);
     3454            exit(EXIT_FAILURE);
     3455        }
    29443456        if (!psMetadataAddS32(md, PS_LIST_TAIL, "sources", 0, NULL, -32)) {
    29453457            psFree(md);
     
    29473459        }
    29483460        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_diff", 0, NULL, 32.32)) {
     3461            psFree(md);
     3462            exit(EXIT_FAILURE);
     3463        }
     3464        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_match", 0, NULL, 32.32)) {
     3465            psFree(md);
     3466            exit(EXIT_FAILURE);
     3467        }
     3468        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_phot", 0, NULL, 32.32)) {
     3469            psFree(md);
     3470            exit(EXIT_FAILURE);
     3471        }
     3472        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_script", 0, NULL, 32.32)) {
    29493473            psFree(md);
    29503474            exit(EXIT_FAILURE);
     
    29933517            exit(EXIT_FAILURE);
    29943518        }
     3519        if (!object->stamps_mean == 32.32) {
     3520            psFree(object);
     3521            exit(EXIT_FAILURE);
     3522        }
    29953523        if (!object->stamps_rms == 32.32) {
    29963524            psFree(object);
    29973525            exit(EXIT_FAILURE);
    29983526        }
     3527        if (!object->norm == 32.32) {
     3528            psFree(object);
     3529            exit(EXIT_FAILURE);
     3530        }
     3531        if (!object->bg_diff == 32.32) {
     3532            psFree(object);
     3533            exit(EXIT_FAILURE);
     3534        }
     3535        if (!object->kernel_x == 32.32) {
     3536            psFree(object);
     3537            exit(EXIT_FAILURE);
     3538        }
     3539        if (!object->kernel_y == 32.32) {
     3540            psFree(object);
     3541            exit(EXIT_FAILURE);
     3542        }
     3543        if (!object->kernel_xx == 32.32) {
     3544            psFree(object);
     3545            exit(EXIT_FAILURE);
     3546        }
     3547        if (!object->kernel_xy == 32.32) {
     3548            psFree(object);
     3549            exit(EXIT_FAILURE);
     3550        }
     3551        if (!object->kernel_yy == 32.32) {
     3552            psFree(object);
     3553            exit(EXIT_FAILURE);
     3554        }
    29993555        if (!object->sources == -32) {
    30003556            psFree(object);
     
    30023558        }
    30033559        if (!object->dtime_diff == 32.32) {
     3560            psFree(object);
     3561            exit(EXIT_FAILURE);
     3562        }
     3563        if (!object->dtime_match == 32.32) {
     3564            psFree(object);
     3565            exit(EXIT_FAILURE);
     3566        }
     3567        if (!object->dtime_phot == 32.32) {
     3568            psFree(object);
     3569            exit(EXIT_FAILURE);
     3570        }
     3571        if (!object->dtime_script == 32.32) {
    30043572            psFree(object);
    30053573            exit(EXIT_FAILURE);
     
    30363604            exit(EXIT_FAILURE);
    30373605        }
     3606        if (!psMetadataAddStr(md, PS_LIST_TAIL, "label", 0, NULL, "a string")) {
     3607            psFree(md);
     3608            exit(EXIT_FAILURE);
     3609        }
     3610        if (!psMetadataAddStr(md, PS_LIST_TAIL, "reduction", 0, NULL, "a string")) {
     3611            psFree(md);
     3612            exit(EXIT_FAILURE);
     3613        }
    30383614        if (!psMetadataAddStr(md, PS_LIST_TAIL, "dvodb", 0, NULL, "a string")) {
    30393615            psFree(md);
     
    30723648        }
    30733649        if (strncmp(object->workdir, "a string", MAX_STRING_LENGTH)) {
     3650            psFree(object);
     3651            exit(EXIT_FAILURE);
     3652        }
     3653        if (strncmp(object->label, "a string", MAX_STRING_LENGTH)) {
     3654            psFree(object);
     3655            exit(EXIT_FAILURE);
     3656        }
     3657        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
    30743658            psFree(object);
    30753659            exit(EXIT_FAILURE);
     
    31563740            exit(EXIT_FAILURE);
    31573741        }
     3742        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_match_mean", 0, NULL, 32.32)) {
     3743            psFree(md);
     3744            exit(EXIT_FAILURE);
     3745        }
     3746        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_match_stdev", 0, NULL, 32.32)) {
     3747            psFree(md);
     3748            exit(EXIT_FAILURE);
     3749        }
     3750        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_initial", 0, NULL, 32.32)) {
     3751            psFree(md);
     3752            exit(EXIT_FAILURE);
     3753        }
     3754        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_reject", 0, NULL, 32.32)) {
     3755            psFree(md);
     3756            exit(EXIT_FAILURE);
     3757        }
     3758        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_final", 0, NULL, 32.32)) {
     3759            psFree(md);
     3760            exit(EXIT_FAILURE);
     3761        }
     3762        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_phot", 0, NULL, 32.32)) {
     3763            psFree(md);
     3764            exit(EXIT_FAILURE);
     3765        }
     3766        if (!psMetadataAddF32(md, PS_LIST_TAIL, "dtime_script", 0, NULL, 32.32)) {
     3767            psFree(md);
     3768            exit(EXIT_FAILURE);
     3769        }
     3770        if (!psMetadataAddF32(md, PS_LIST_TAIL, "match_mean", 0, NULL, 32.32)) {
     3771            psFree(md);
     3772            exit(EXIT_FAILURE);
     3773        }
     3774        if (!psMetadataAddF32(md, PS_LIST_TAIL, "match_stdev", 0, NULL, 32.32)) {
     3775            psFree(md);
     3776            exit(EXIT_FAILURE);
     3777        }
     3778        if (!psMetadataAddF32(md, PS_LIST_TAIL, "match_rms", 0, NULL, 32.32)) {
     3779            psFree(md);
     3780            exit(EXIT_FAILURE);
     3781        }
     3782        if (!psMetadataAddF32(md, PS_LIST_TAIL, "stamps_mean", 0, NULL, 32.32)) {
     3783            psFree(md);
     3784            exit(EXIT_FAILURE);
     3785        }
     3786        if (!psMetadataAddF32(md, PS_LIST_TAIL, "stamps_stdev", 0, NULL, 32.32)) {
     3787            psFree(md);
     3788            exit(EXIT_FAILURE);
     3789        }
     3790        if (!psMetadataAddS32(md, PS_LIST_TAIL, "stamps_min", 0, NULL, -32)) {
     3791            psFree(md);
     3792            exit(EXIT_FAILURE);
     3793        }
     3794        if (!psMetadataAddS32(md, PS_LIST_TAIL, "reject_images", 0, NULL, -32)) {
     3795            psFree(md);
     3796            exit(EXIT_FAILURE);
     3797        }
     3798        if (!psMetadataAddF32(md, PS_LIST_TAIL, "reject_pix_mean", 0, NULL, 32.32)) {
     3799            psFree(md);
     3800            exit(EXIT_FAILURE);
     3801        }
     3802        if (!psMetadataAddF32(md, PS_LIST_TAIL, "reject_pix_stdev", 0, NULL, 32.32)) {
     3803            psFree(md);
     3804            exit(EXIT_FAILURE);
     3805        }
     3806        if (!psMetadataAddS32(md, PS_LIST_TAIL, "sources", 0, NULL, -32)) {
     3807            psFree(md);
     3808            exit(EXIT_FAILURE);
     3809        }
    31583810        if (!psMetadataAddStr(md, PS_LIST_TAIL, "hostname", 0, NULL, "a string")) {
    31593811            psFree(md);
     
    31963848        }
    31973849        if (!object->dtime_stack == 32.32) {
     3850            psFree(object);
     3851            exit(EXIT_FAILURE);
     3852        }
     3853        if (!object->dtime_match_mean == 32.32) {
     3854            psFree(object);
     3855            exit(EXIT_FAILURE);
     3856        }
     3857        if (!object->dtime_match_stdev == 32.32) {
     3858            psFree(object);
     3859            exit(EXIT_FAILURE);
     3860        }
     3861        if (!object->dtime_initial == 32.32) {
     3862            psFree(object);
     3863            exit(EXIT_FAILURE);
     3864        }
     3865        if (!object->dtime_reject == 32.32) {
     3866            psFree(object);
     3867            exit(EXIT_FAILURE);
     3868        }
     3869        if (!object->dtime_final == 32.32) {
     3870            psFree(object);
     3871            exit(EXIT_FAILURE);
     3872        }
     3873        if (!object->dtime_phot == 32.32) {
     3874            psFree(object);
     3875            exit(EXIT_FAILURE);
     3876        }
     3877        if (!object->dtime_script == 32.32) {
     3878            psFree(object);
     3879            exit(EXIT_FAILURE);
     3880        }
     3881        if (!object->match_mean == 32.32) {
     3882            psFree(object);
     3883            exit(EXIT_FAILURE);
     3884        }
     3885        if (!object->match_stdev == 32.32) {
     3886            psFree(object);
     3887            exit(EXIT_FAILURE);
     3888        }
     3889        if (!object->match_rms == 32.32) {
     3890            psFree(object);
     3891            exit(EXIT_FAILURE);
     3892        }
     3893        if (!object->stamps_mean == 32.32) {
     3894            psFree(object);
     3895            exit(EXIT_FAILURE);
     3896        }
     3897        if (!object->stamps_stdev == 32.32) {
     3898            psFree(object);
     3899            exit(EXIT_FAILURE);
     3900        }
     3901        if (!object->stamps_min == -32) {
     3902            psFree(object);
     3903            exit(EXIT_FAILURE);
     3904        }
     3905        if (!object->reject_images == -32) {
     3906            psFree(object);
     3907            exit(EXIT_FAILURE);
     3908        }
     3909        if (!object->reject_pix_mean == 32.32) {
     3910            psFree(object);
     3911            exit(EXIT_FAILURE);
     3912        }
     3913        if (!object->reject_pix_stdev == 32.32) {
     3914            psFree(object);
     3915            exit(EXIT_FAILURE);
     3916        }
     3917        if (!object->sources == -32) {
    31983918            psFree(object);
    31993919            exit(EXIT_FAILURE);
     
    33254045            exit(EXIT_FAILURE);
    33264046        }
    3327         if (!psMetadataAddS32(md, PS_LIST_TAIL, "parent", 0, NULL, -32)) {
     4047            psFree(md);
     4048            exit(EXIT_FAILURE);
     4049        }
     4050        if (!psMetadataAddS32(md, PS_LIST_TAIL, "ref_iter", 0, NULL, -32)) {
    33284051            psFree(md);
    33294052            exit(EXIT_FAILURE);
     
    34444167            exit(EXIT_FAILURE);
    34454168        }
    3446         if (!object->parent == -32) {
     4169            psFree(object);
     4170            exit(EXIT_FAILURE);
     4171        }
     4172        if (!object->ref_iter == -32) {
    34474173            psFree(object);
    34484174            exit(EXIT_FAILURE);
     
    35694295            exit(EXIT_FAILURE);
    35704296        }
     4297        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     4298            psFree(md);
     4299            exit(EXIT_FAILURE);
     4300        }
    35714301            psFree(md);
    35724302            exit(EXIT_FAILURE);
     
    36444374        }
    36454375        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     4376            psFree(object);
     4377            exit(EXIT_FAILURE);
     4378        }
     4379        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    36464380            psFree(object);
    36474381            exit(EXIT_FAILURE);
     
    37174451            exit(EXIT_FAILURE);
    37184452        }
     4453        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     4454            psFree(md);
     4455            exit(EXIT_FAILURE);
     4456        }
    37194457            psFree(md);
    37204458            exit(EXIT_FAILURE);
     
    37844522        }
    37854523        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     4524            psFree(object);
     4525            exit(EXIT_FAILURE);
     4526        }
     4527        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    37864528            psFree(object);
    37874529            exit(EXIT_FAILURE);
     
    38504592            exit(EXIT_FAILURE);
    38514593        }
     4594        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     4595            psFree(md);
     4596            exit(EXIT_FAILURE);
     4597        }
    38524598            psFree(md);
    38534599            exit(EXIT_FAILURE);
     
    39104656        }
    39114657        if (!object->user_5 == 64.64) {
     4658            psFree(object);
     4659            exit(EXIT_FAILURE);
     4660        }
     4661        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    39124662            psFree(object);
    39134663            exit(EXIT_FAILURE);
     
    39404690            exit(EXIT_FAILURE);
    39414691        }
     4692        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     4693            psFree(md);
     4694            exit(EXIT_FAILURE);
     4695        }
    39424696            psFree(md);
    39434697            exit(EXIT_FAILURE);
     
    39644718        }
    39654719        if (!object->norm == 32.32) {
     4720            psFree(object);
     4721            exit(EXIT_FAILURE);
     4722        }
     4723        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    39664724            psFree(object);
    39674725            exit(EXIT_FAILURE);
     
    40304788            exit(EXIT_FAILURE);
    40314789        }
     4790        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     4791            psFree(md);
     4792            exit(EXIT_FAILURE);
     4793        }
    40324794            psFree(md);
    40334795            exit(EXIT_FAILURE);
     
    40904852        }
    40914853        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     4854            psFree(object);
     4855            exit(EXIT_FAILURE);
     4856        }
     4857        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    40924858            psFree(object);
    40934859            exit(EXIT_FAILURE);
     
    41524918            exit(EXIT_FAILURE);
    41534919        }
     4920        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     4921            psFree(md);
     4922            exit(EXIT_FAILURE);
     4923        }
    41544924            psFree(md);
    41554925            exit(EXIT_FAILURE);
     
    42084978        }
    42094979        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     4980            psFree(object);
     4981            exit(EXIT_FAILURE);
     4982        }
     4983        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    42104984            psFree(object);
    42114985            exit(EXIT_FAILURE);
     
    42335007            exit(EXIT_FAILURE);
    42345008        }
     5009        if (!psMetadataAddS32(md, PS_LIST_TAIL, "ref_iter", 0, NULL, -32)) {
     5010            psFree(md);
     5011            exit(EXIT_FAILURE);
     5012        }
     5013            psFree(md);
     5014            exit(EXIT_FAILURE);
     5015        }
    42355016        if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
    42365017            psFree(md);
     
    43145095        }
    43155096        if (!psMetadataAddStr(md, PS_LIST_TAIL, "path_base", 0, NULL, "a string")) {
     5097            psFree(md);
     5098            exit(EXIT_FAILURE);
     5099        }
     5100        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
    43165101            psFree(md);
    43175102            exit(EXIT_FAILURE);
     
    43395124            exit(EXIT_FAILURE);
    43405125        }
     5126        if (!object->ref_iter == -32) {
     5127            psFree(object);
     5128            exit(EXIT_FAILURE);
     5129        }
     5130            psFree(object);
     5131            exit(EXIT_FAILURE);
     5132        }
    43415133        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    43425134            psFree(object);
     
    44205212        }
    44215213        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     5214            psFree(object);
     5215            exit(EXIT_FAILURE);
     5216        }
     5217        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    44225218            psFree(object);
    44235219            exit(EXIT_FAILURE);
     
    45215317            exit(EXIT_FAILURE);
    45225318        }
     5319        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     5320            psFree(md);
     5321            exit(EXIT_FAILURE);
     5322        }
    45235323        if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, true)) {
    45245324            psFree(md);
     
    46205420        }
    46215421        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     5422            psFree(object);
     5423            exit(EXIT_FAILURE);
     5424        }
     5425        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    46225426            psFree(object);
    46235427            exit(EXIT_FAILURE);
     
    46465450            exit(EXIT_FAILURE);
    46475451        }
     5452        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     5453            psFree(md);
     5454            exit(EXIT_FAILURE);
     5455        }
    46485456        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 64.64)) {
    46495457            psFree(md);
     
    46785486        }
    46795487        if (!object->iteration == -32) {
     5488            psFree(object);
     5489            exit(EXIT_FAILURE);
     5490        }
     5491        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    46805492            psFree(object);
    46815493            exit(EXIT_FAILURE);
     
    47605572            exit(EXIT_FAILURE);
    47615573        }
     5574        if (!psMetadataAddStr(md, PS_LIST_TAIL, "data_state", 0, NULL, "a string")) {
     5575            psFree(md);
     5576            exit(EXIT_FAILURE);
     5577        }
    47625578            psFree(md);
    47635579            exit(EXIT_FAILURE);
     
    48205636        }
    48215637        if (strncmp(object->path_base, "a string", MAX_STRING_LENGTH)) {
     5638            psFree(object);
     5639            exit(EXIT_FAILURE);
     5640        }
     5641        if (strncmp(object->data_state, "a string", MAX_STRING_LENGTH)) {
    48225642            psFree(object);
    48235643            exit(EXIT_FAILURE);
     
    53326152            exit(EXIT_FAILURE);
    53336153        }
    5334         if (!psMetadataAddStr(md, PS_LIST_TAIL, "stats", 0, NULL, "a string")) {
     6154        if (!psMetadataAddStr(md, PS_LIST_TAIL, "reduction", 0, NULL, "a string")) {
    53356155            psFree(md);
    53366156            exit(EXIT_FAILURE);
    53376157        }
    53386158        if (!psMetadataAddStr(md, PS_LIST_TAIL, "region", 0, NULL, "a string")) {
     6159            psFree(md);
     6160            exit(EXIT_FAILURE);
     6161        }
     6162        if (!psMetadataAddStr(md, PS_LIST_TAIL, "hostname", 0, NULL, "a string")) {
     6163            psFree(md);
     6164            exit(EXIT_FAILURE);
     6165        }
    53396166            psFree(md);
    53406167            exit(EXIT_FAILURE);
     
    53726199            exit(EXIT_FAILURE);
    53736200        }
    5374         if (strncmp(object->stats, "a string", MAX_STRING_LENGTH)) {
     6201        if (strncmp(object->reduction, "a string", MAX_STRING_LENGTH)) {
    53756202            psFree(object);
    53766203            exit(EXIT_FAILURE);
    53776204        }
    53786205        if (strncmp(object->region, "a string", MAX_STRING_LENGTH)) {
     6206            psFree(object);
     6207            exit(EXIT_FAILURE);
     6208        }
     6209        if (strncmp(object->hostname, "a string", MAX_STRING_LENGTH)) {
     6210            psFree(object);
     6211            exit(EXIT_FAILURE);
     6212        }
    53796213            psFree(object);
    53806214            exit(EXIT_FAILURE);
     
    53866220    {
    53876221        psMetadata      *md;
    5388         flatcorrExpRow *object;
     6222        flatcorrChipLinkRow *object;
    53896223
    53906224        md = psMetadataAlloc();
     
    53966230        }
    53976231
    5398         object = flatcorrExpObjectFromMetadata(md);
     6232        object = flatcorrChipLinkObjectFromMetadata(md);
    53996233        if (!object) {
    54006234            psFree(md);
     
    54046238        psFree(md);
    54056239
     6240            psFree(object);
     6241            exit(EXIT_FAILURE);
     6242        }
     6243            psFree(object);
     6244            exit(EXIT_FAILURE);
     6245        }
     6246
     6247        psFree(object);
     6248    }
     6249
     6250    {
     6251        psMetadata      *md;
     6252        flatcorrCamLinkRow *object;
     6253
     6254        md = psMetadataAlloc();
     6255            psFree(md);
     6256            exit(EXIT_FAILURE);
     6257        }
     6258            psFree(md);
     6259            exit(EXIT_FAILURE);
     6260        }
     6261            psFree(md);
     6262            exit(EXIT_FAILURE);
     6263        }
     6264
     6265        object = flatcorrCamLinkObjectFromMetadata(md);
     6266        if (!object) {
     6267            psFree(md);
     6268            exit(EXIT_FAILURE);
     6269        }
     6270
     6271        psFree(md);
     6272
     6273            psFree(object);
     6274            exit(EXIT_FAILURE);
     6275        }
    54066276            psFree(object);
    54076277            exit(EXIT_FAILURE);
     
    54726342    {
    54736343        psMetadata      *md;
     6344        pstampProjectRow *object;
     6345
     6346        md = psMetadataAlloc();
     6347            psFree(md);
     6348            exit(EXIT_FAILURE);
     6349        }
     6350        if (!psMetadataAddStr(md, PS_LIST_TAIL, "name", 0, NULL, "a string")) {
     6351            psFree(md);
     6352            exit(EXIT_FAILURE);
     6353        }
     6354        if (!psMetadataAddStr(md, PS_LIST_TAIL, "state", 0, NULL, "a string")) {
     6355            psFree(md);
     6356            exit(EXIT_FAILURE);
     6357        }
     6358        if (!psMetadataAddStr(md, PS_LIST_TAIL, "dbname", 0, NULL, "a string")) {
     6359            psFree(md);
     6360            exit(EXIT_FAILURE);
     6361        }
     6362        if (!psMetadataAddStr(md, PS_LIST_TAIL, "dvodb", 0, NULL, "a string")) {
     6363            psFree(md);
     6364            exit(EXIT_FAILURE);
     6365        }
     6366        if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "a string")) {
     6367            psFree(md);
     6368            exit(EXIT_FAILURE);
     6369        }
     6370        if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "a string")) {
     6371            psFree(md);
     6372            exit(EXIT_FAILURE);
     6373        }
     6374        if (!psMetadataAdd(md, PS_LIST_TAIL, "need_magic", PS_DATA_BOOL, NULL, true)) {
     6375            psFree(md);
     6376            exit(EXIT_FAILURE);
     6377        }
     6378
     6379        object = pstampProjectObjectFromMetadata(md);
     6380        if (!object) {
     6381            psFree(md);
     6382            exit(EXIT_FAILURE);
     6383        }
     6384
     6385        psFree(md);
     6386
     6387            psFree(object);
     6388            exit(EXIT_FAILURE);
     6389        }
     6390        if (strncmp(object->name, "a string", MAX_STRING_LENGTH)) {
     6391            psFree(object);
     6392            exit(EXIT_FAILURE);
     6393        }
     6394        if (strncmp(object->state, "a string", MAX_STRING_LENGTH)) {
     6395            psFree(object);
     6396            exit(EXIT_FAILURE);
     6397        }
     6398        if (strncmp(object->dbname, "a string", MAX_STRING_LENGTH)) {
     6399            psFree(object);
     6400            exit(EXIT_FAILURE);
     6401        }
     6402        if (strncmp(object->dvodb, "a string", MAX_STRING_LENGTH)) {
     6403            psFree(object);
     6404            exit(EXIT_FAILURE);
     6405        }
     6406        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
     6407            psFree(object);
     6408            exit(EXIT_FAILURE);
     6409        }
     6410        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
     6411            psFree(object);
     6412            exit(EXIT_FAILURE);
     6413        }
     6414        if (!object->need_magic == true) {
     6415            psFree(object);
     6416            exit(EXIT_FAILURE);
     6417        }
     6418
     6419        psFree(object);
     6420    }
     6421
     6422    {
     6423        psMetadata      *md;
    54746424        pstampRequestRow *object;
    54756425
     
    55796529            exit(EXIT_FAILURE);
    55806530        }
     6531            psFree(md);
     6532            exit(EXIT_FAILURE);
     6533        }
    55816534        if (!psMetadataAddStr(md, PS_LIST_TAIL, "outputBase", 0, NULL, "a string")) {
    55826535            psFree(md);
     
    56226575            exit(EXIT_FAILURE);
    56236576        }
     6577            psFree(object);
     6578            exit(EXIT_FAILURE);
     6579        }
    56246580        if (strncmp(object->outputBase, "a string", MAX_STRING_LENGTH)) {
    56256581            psFree(object);
  • trunk/ippdb/tests/selectrowsfits.c

    r18595 r20205  
    11431143        }
    11441144
    1145         if (!flatcorrExpSelectRowsFits(dbh, fits, NULL, 1)) {
     1145        if (!flatcorrChipLinkSelectRowsFits(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 (!flatcorrCamLinkSelectRowsFits(dbh, fits, NULL, 1)) {
    11461168            exit(EXIT_FAILURE);
    11471169        }
     
    11661188
    11671189        if (!pstampDataStoreSelectRowsFits(dbh, fits, NULL, 1)) {
     1190            exit(EXIT_FAILURE);
     1191        }
     1192
     1193        psFree(fits);
     1194        psDBCleanup(dbh);
     1195    }
     1196
     1197    {
     1198        psDB            *dbh;
     1199        psFits          *fits;
     1200
     1201        dbh = psDBInit("localhost", "test", NULL, "test");
     1202        if (!dbh) {
     1203            exit(EXIT_FAILURE);
     1204        }
     1205
     1206        fits = psFitsOpen(TMP_FILENAME, "w");
     1207        if (!fits) {
     1208            exit(EXIT_FAILURE);
     1209        }
     1210
     1211        if (!pstampProjectSelectRowsFits(dbh, fits, NULL, 1)) {
    11681212            exit(EXIT_FAILURE);
    11691213        }
Note: See TracChangeset for help on using the changeset viewer.