IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 10, 2006, 3:34:31 PM (20 years ago)
Author:
jhoblitt
Message:

VERSION 0.0.25

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippdb/src/ippdb.c

    r8266 r8283  
    55015501        return false;
    55025502    }
    5503     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Key", "64")) {
     5503    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Primary Key", "64")) {
    55045504        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
    55055505        psFree(md);
     
    55215521        return false;
    55225522    }
    5523     if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "64")) {
     5523    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, "Primary Key", "64")) {
    55245524        psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
    55255525        psFree(md);
     
    65196519        return false;
    65206520    }
    6521     if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, "Primary Key", "64")) {
     6521    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, NULL, "64")) {
    65226522        psError(PS_ERR_UNKNOWN, false, "failed to add item class");
    65236523        psFree(md);
     
    69446944static void rawDetrendExpRowFree(rawDetrendExpRow *object);
    69456945
    6946 rawDetrendExpRow *rawDetrendExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
     6946rawDetrendExpRow *rawDetrendExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
    69476947{
    69486948    rawDetrendExpRow *object;
     
    69616961    object->decl = decl;
    69626962    object->exp_time = exp_time;
    6963     object->background = background;
     6963    object->bg = bg;
     6964    object->bg_stdev = bg_stdev;
     6965    object->bg_mean_stdev = bg_mean_stdev;
     6966    object->alt = alt;
     6967    object->az = az;
     6968    object->ccd_temp = ccd_temp;
     6969    object->posang = posang;
    69646970
    69656971    return object;
     
    70367042        return false;
    70377043    }
    7038     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
    7039         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
     7044    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) {
     7045        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     7046        psFree(md);
     7047        return false;
     7048    }
     7049    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) {
     7050        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     7051        psFree(md);
     7052        return false;
     7053    }
     7054    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) {
     7055        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     7056        psFree(md);
     7057        return false;
     7058    }
     7059    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, 0.0)) {
     7060        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
     7061        psFree(md);
     7062        return false;
     7063    }
     7064    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, 0.0)) {
     7065        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
     7066        psFree(md);
     7067        return false;
     7068    }
     7069    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, 0.0)) {
     7070        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     7071        psFree(md);
     7072        return false;
     7073    }
     7074    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, 0.0)) {
     7075        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
    70407076        psFree(md);
    70417077        return false;
     
    70547090}
    70557091
    7056 bool rawDetrendExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
     7092bool rawDetrendExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
    70577093{
    70587094    psMetadata      *md;
     
    71107146        return false;
    71117147    }
    7112     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
    7113         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
     7148    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) {
     7149        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     7150        psFree(md);
     7151        return false;
     7152    }
     7153    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) {
     7154        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     7155        psFree(md);
     7156        return false;
     7157    }
     7158    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) {
     7159        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     7160        psFree(md);
     7161        return false;
     7162    }
     7163    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, alt)) {
     7164        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
     7165        psFree(md);
     7166        return false;
     7167    }
     7168    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, az)) {
     7169        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
     7170        psFree(md);
     7171        return false;
     7172    }
     7173    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, ccd_temp)) {
     7174        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     7175        psFree(md);
     7176        return false;
     7177    }
     7178    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, posang)) {
     7179        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
    71147180        psFree(md);
    71157181        return false;
     
    71367202    return deleted;
    71377203}
    7138 bool rawDetrendExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background)
     7204bool rawDetrendExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, psF64 *alt, psF64 *az, psF32 *ccd_temp, psF64 *posang)
    71397205{
    71407206    psArray         *rowSet;
     
    72407306        return false;
    72417307    }
    7242     *background = psMetadataLookupF64(&status, row, "background");
    7243     if (!status) {
    7244         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
     7308    *bg = psMetadataLookupF64(&status, row, "bg");
     7309    if (!status) {
     7310        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     7311        psFree(row);
     7312        return false;
     7313    }
     7314    *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev");
     7315    if (!status) {
     7316        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     7317        psFree(row);
     7318        return false;
     7319    }
     7320    *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev");
     7321    if (!status) {
     7322        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     7323        psFree(row);
     7324        return false;
     7325    }
     7326    *alt = psMetadataLookupF64(&status, row, "alt");
     7327    if (!status) {
     7328        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");
     7329        psFree(row);
     7330        return false;
     7331    }
     7332    *az = psMetadataLookupF64(&status, row, "az");
     7333    if (!status) {
     7334        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");
     7335        psFree(row);
     7336        return false;
     7337    }
     7338    *ccd_temp = psMetadataLookupF32(&status, row, "ccd_temp");
     7339    if (!status) {
     7340        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
     7341        psFree(row);
     7342        return false;
     7343    }
     7344    *posang = psMetadataLookupF64(&status, row, "posang");
     7345    if (!status) {
     7346        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
    72457347        psFree(row);
    72467348        return false;
     
    72547356bool rawDetrendExpInsertObject(psDB *dbh, rawDetrendExpRow *object)
    72557357{
    7256     return rawDetrendExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background);
     7358    return rawDetrendExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang);
    72577359}
    72587360
     
    72697371    psF64           decl;
    72707372    psF32           exp_time;
    7271     psF64           background;
    7272 
    7273     if (!rawDetrendExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background)) {
     7373    psF64           bg;
     7374    psF64           bg_stdev;
     7375    psF64           bg_mean_stdev;
     7376    psF64           alt;
     7377    psF64           az;
     7378    psF32           ccd_temp;
     7379    psF64           posang;
     7380
     7381    if (!rawDetrendExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) {
    72747382        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    72757383        return NULL;
    72767384    }
    72777385
    7278     return rawDetrendExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
     7386    return rawDetrendExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
    72797387}
    72807388
     
    74257533        return NULL;
    74267534    }
    7427     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
    7428         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
     7535    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) {
     7536        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     7537        psFree(md);
     7538        return NULL;
     7539    }
     7540    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) {
     7541        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     7542        psFree(md);
     7543        return NULL;
     7544    }
     7545    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) {
     7546        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     7547        psFree(md);
     7548        return NULL;
     7549    }
     7550    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, object->alt)) {
     7551        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
     7552        psFree(md);
     7553        return NULL;
     7554    }
     7555    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, object->az)) {
     7556        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
     7557        psFree(md);
     7558        return NULL;
     7559    }
     7560    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, object->ccd_temp)) {
     7561        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     7562        psFree(md);
     7563        return NULL;
     7564    }
     7565    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, object->posang)) {
     7566        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
    74297567        psFree(md);
    74307568        return NULL;
     
    74477585    psF64           decl;
    74487586    psF32           exp_time;
    7449     psF64           background;
     7587    psF64           bg;
     7588    psF64           bg_stdev;
     7589    psF64           bg_mean_stdev;
     7590    psF64           alt;
     7591    psF64           az;
     7592    psF32           ccd_temp;
     7593    psF64           posang;
    74507594
    74517595    exp_id = psMetadataLookupPtr(&status, md, "exp_id");
     
    74997643        return false;
    75007644    }
    7501     background = psMetadataLookupF64(&status, md, "background");
    7502     if (!status) {
    7503         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    7504         return false;
    7505     }
    7506 
    7507     return rawDetrendExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
     7645    bg = psMetadataLookupF64(&status, md, "bg");
     7646    if (!status) {
     7647        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     7648        return false;
     7649    }
     7650    bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
     7651    if (!status) {
     7652        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     7653        return false;
     7654    }
     7655    bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
     7656    if (!status) {
     7657        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     7658        return false;
     7659    }
     7660    alt = psMetadataLookupF64(&status, md, "alt");
     7661    if (!status) {
     7662        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");
     7663        return false;
     7664    }
     7665    az = psMetadataLookupF64(&status, md, "az");
     7666    if (!status) {
     7667        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");
     7668        return false;
     7669    }
     7670    ccd_temp = psMetadataLookupF32(&status, md, "ccd_temp");
     7671    if (!status) {
     7672        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
     7673        return false;
     7674    }
     7675    posang = psMetadataLookupF64(&status, md, "posang");
     7676    if (!status) {
     7677        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
     7678        return false;
     7679    }
     7680
     7681    return rawDetrendExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
    75087682}
    75097683psArray *rawDetrendExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    76127786static void rawScienceExpRowFree(rawScienceExpRow *object);
    76137787
    7614 rawScienceExpRow *rawScienceExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
     7788rawScienceExpRow *rawScienceExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
    76157789{
    76167790    rawScienceExpRow *object;
     
    76297803    object->decl = decl;
    76307804    object->exp_time = exp_time;
    7631     object->background = background;
     7805    object->bg = bg;
     7806    object->bg_stdev = bg_stdev;
     7807    object->bg_mean_stdev = bg_mean_stdev;
     7808    object->alt = alt;
     7809    object->az = az;
     7810    object->ccd_temp = ccd_temp;
     7811    object->posang = posang;
    76327812
    76337813    return object;
     
    77047884        return false;
    77057885    }
    7706     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
    7707         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
     7886    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) {
     7887        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     7888        psFree(md);
     7889        return false;
     7890    }
     7891    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) {
     7892        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     7893        psFree(md);
     7894        return false;
     7895    }
     7896    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) {
     7897        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     7898        psFree(md);
     7899        return false;
     7900    }
     7901    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, 0.0)) {
     7902        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
     7903        psFree(md);
     7904        return false;
     7905    }
     7906    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, 0.0)) {
     7907        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
     7908        psFree(md);
     7909        return false;
     7910    }
     7911    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, 0.0)) {
     7912        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     7913        psFree(md);
     7914        return false;
     7915    }
     7916    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, 0.0)) {
     7917        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
    77087918        psFree(md);
    77097919        return false;
     
    77227932}
    77237933
    7724 bool rawScienceExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
     7934bool rawScienceExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
    77257935{
    77267936    psMetadata      *md;
     
    77787988        return false;
    77797989    }
    7780     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
    7781         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
     7990    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) {
     7991        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     7992        psFree(md);
     7993        return false;
     7994    }
     7995    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) {
     7996        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     7997        psFree(md);
     7998        return false;
     7999    }
     8000    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) {
     8001        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     8002        psFree(md);
     8003        return false;
     8004    }
     8005    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, alt)) {
     8006        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
     8007        psFree(md);
     8008        return false;
     8009    }
     8010    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, az)) {
     8011        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
     8012        psFree(md);
     8013        return false;
     8014    }
     8015    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, ccd_temp)) {
     8016        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     8017        psFree(md);
     8018        return false;
     8019    }
     8020    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, posang)) {
     8021        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
    77828022        psFree(md);
    77838023        return false;
     
    78048044    return deleted;
    78058045}
    7806 bool rawScienceExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background)
     8046bool rawScienceExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, psF64 *alt, psF64 *az, psF32 *ccd_temp, psF64 *posang)
    78078047{
    78088048    psArray         *rowSet;
     
    79088148        return false;
    79098149    }
    7910     *background = psMetadataLookupF64(&status, row, "background");
    7911     if (!status) {
    7912         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
     8150    *bg = psMetadataLookupF64(&status, row, "bg");
     8151    if (!status) {
     8152        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     8153        psFree(row);
     8154        return false;
     8155    }
     8156    *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev");
     8157    if (!status) {
     8158        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     8159        psFree(row);
     8160        return false;
     8161    }
     8162    *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev");
     8163    if (!status) {
     8164        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     8165        psFree(row);
     8166        return false;
     8167    }
     8168    *alt = psMetadataLookupF64(&status, row, "alt");
     8169    if (!status) {
     8170        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");
     8171        psFree(row);
     8172        return false;
     8173    }
     8174    *az = psMetadataLookupF64(&status, row, "az");
     8175    if (!status) {
     8176        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");
     8177        psFree(row);
     8178        return false;
     8179    }
     8180    *ccd_temp = psMetadataLookupF32(&status, row, "ccd_temp");
     8181    if (!status) {
     8182        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
     8183        psFree(row);
     8184        return false;
     8185    }
     8186    *posang = psMetadataLookupF64(&status, row, "posang");
     8187    if (!status) {
     8188        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
    79138189        psFree(row);
    79148190        return false;
     
    79228198bool rawScienceExpInsertObject(psDB *dbh, rawScienceExpRow *object)
    79238199{
    7924     return rawScienceExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background);
     8200    return rawScienceExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang);
    79258201}
    79268202
     
    79378213    psF64           decl;
    79388214    psF32           exp_time;
    7939     psF64           background;
    7940 
    7941     if (!rawScienceExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background)) {
     8215    psF64           bg;
     8216    psF64           bg_stdev;
     8217    psF64           bg_mean_stdev;
     8218    psF64           alt;
     8219    psF64           az;
     8220    psF32           ccd_temp;
     8221    psF64           posang;
     8222
     8223    if (!rawScienceExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) {
    79428224        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    79438225        return NULL;
    79448226    }
    79458227
    7946     return rawScienceExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
     8228    return rawScienceExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
    79478229}
    79488230
     
    80938375        return NULL;
    80948376    }
    8095     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
    8096         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
     8377    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) {
     8378        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     8379        psFree(md);
     8380        return NULL;
     8381    }
     8382    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) {
     8383        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     8384        psFree(md);
     8385        return NULL;
     8386    }
     8387    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) {
     8388        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     8389        psFree(md);
     8390        return NULL;
     8391    }
     8392    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, object->alt)) {
     8393        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
     8394        psFree(md);
     8395        return NULL;
     8396    }
     8397    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, object->az)) {
     8398        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
     8399        psFree(md);
     8400        return NULL;
     8401    }
     8402    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, object->ccd_temp)) {
     8403        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     8404        psFree(md);
     8405        return NULL;
     8406    }
     8407    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, object->posang)) {
     8408        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
    80978409        psFree(md);
    80988410        return NULL;
     
    81158427    psF64           decl;
    81168428    psF32           exp_time;
    8117     psF64           background;
     8429    psF64           bg;
     8430    psF64           bg_stdev;
     8431    psF64           bg_mean_stdev;
     8432    psF64           alt;
     8433    psF64           az;
     8434    psF32           ccd_temp;
     8435    psF64           posang;
    81188436
    81198437    exp_id = psMetadataLookupPtr(&status, md, "exp_id");
     
    81678485        return false;
    81688486    }
    8169     background = psMetadataLookupF64(&status, md, "background");
    8170     if (!status) {
    8171         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    8172         return false;
    8173     }
    8174 
    8175     return rawScienceExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
     8487    bg = psMetadataLookupF64(&status, md, "bg");
     8488    if (!status) {
     8489        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     8490        return false;
     8491    }
     8492    bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
     8493    if (!status) {
     8494        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     8495        return false;
     8496    }
     8497    bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
     8498    if (!status) {
     8499        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     8500        return false;
     8501    }
     8502    alt = psMetadataLookupF64(&status, md, "alt");
     8503    if (!status) {
     8504        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");
     8505        return false;
     8506    }
     8507    az = psMetadataLookupF64(&status, md, "az");
     8508    if (!status) {
     8509        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");
     8510        return false;
     8511    }
     8512    ccd_temp = psMetadataLookupF32(&status, md, "ccd_temp");
     8513    if (!status) {
     8514        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
     8515        return false;
     8516    }
     8517    posang = psMetadataLookupF64(&status, md, "posang");
     8518    if (!status) {
     8519        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
     8520        return false;
     8521    }
     8522
     8523    return rawScienceExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
    81768524}
    81778525psArray *rawScienceExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    83328680        return false;
    83338681    }
    8334     if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, "Primary Key", "64")) {
     8682    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, NULL, "64")) {
    83358683        psError(PS_ERR_UNKNOWN, false, "failed to add item class");
    83368684        psFree(md);
     
    90939441static void p1PendingExpRowFree(p1PendingExpRow *object);
    90949442
    9095 p1PendingExpRow *p1PendingExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p1_version)
     9443p1PendingExpRow *p1PendingExpRowAlloc(const char *exp_id, const char *recipe, psS32 p1_version)
    90969444{
    90979445    p1PendingExpRow *object;
     
    91019449
    91029450    object->exp_id = psStringCopy(exp_id);
    9103     object->camera = psStringCopy(camera);
    9104     object->telescope = psStringCopy(telescope);
    9105     object->exp_type = psStringCopy(exp_type);
    9106     object->imfiles = imfiles;
    9107     object->filter = psStringCopy(filter);
    9108     object->airmass = airmass;
    9109     object->ra = ra;
    9110     object->decl = decl;
    9111     object->exp_time = exp_time;
    9112     object->background = background;
    91139451    object->recipe = psStringCopy(recipe);
    91149452    object->p1_version = p1_version;
     
    91209458{
    91219459    psFree(object->exp_id);
    9122     psFree(object->camera);
    9123     psFree(object->telescope);
    9124     psFree(object->exp_type);
    9125     psFree(object->filter);
    91269460    psFree(object->recipe);
    91279461}
     
    91439477        return false;
    91449478    }
    9145     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "255")) {
    9146         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    9147         psFree(md);
    9148         return false;
    9149     }
    9150     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "255")) {
    9151         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    9152         psFree(md);
    9153         return false;
    9154     }
    9155     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
    9156         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    9157         psFree(md);
    9158         return false;
    9159     }
    9160     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, 0)) {
    9161         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    9162         psFree(md);
    9163         return false;
    9164     }
    9165     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
    9166         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    9167         psFree(md);
    9168         return false;
    9169     }
    9170     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
    9171         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    9172         psFree(md);
    9173         return false;
    9174     }
    9175     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
    9176         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    9177         psFree(md);
    9178         return false;
    9179     }
    9180     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
    9181         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    9182         psFree(md);
    9183         return false;
    9184     }
    9185     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
    9186         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    9187         psFree(md);
    9188         return false;
    9189     }
    9190     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
    9191         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    9192         psFree(md);
    9193         return false;
    9194     }
    91959479    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
    91969480        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    92169500}
    92179501
    9218 bool p1PendingExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p1_version)
     9502bool p1PendingExpInsert(psDB * dbh, const char *exp_id, const char *recipe, psS32 p1_version)
    92199503{
    92209504    psMetadata      *md;
     
    92249508    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, exp_id)) {
    92259509        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
    9226         psFree(md);
    9227         return false;
    9228     }
    9229     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, camera)) {
    9230         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    9231         psFree(md);
    9232         return false;
    9233     }
    9234     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, telescope)) {
    9235         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    9236         psFree(md);
    9237         return false;
    9238     }
    9239     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
    9240         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    9241         psFree(md);
    9242         return false;
    9243     }
    9244     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, imfiles)) {
    9245         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    9246         psFree(md);
    9247         return false;
    9248     }
    9249     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
    9250         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    9251         psFree(md);
    9252         return false;
    9253     }
    9254     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
    9255         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    9256         psFree(md);
    9257         return false;
    9258     }
    9259     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
    9260         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    9261         psFree(md);
    9262         return false;
    9263     }
    9264     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
    9265         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    9266         psFree(md);
    9267         return false;
    9268     }
    9269     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
    9270         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    9271         psFree(md);
    9272         return false;
    9273     }
    9274     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
    9275         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    92769510        psFree(md);
    92779511        return false;
     
    93089542    return deleted;
    93099543}
    9310 bool p1PendingExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background, char **recipe, psS32 *p1_version)
     9544bool p1PendingExpPop(psDB *dbh, char **exp_id, char **recipe, psS32 *p1_version)
    93119545{
    93129546    psArray         *rowSet;
     
    93589592        return false;
    93599593    }
    9360     *camera = psMetadataLookupPtr(&status, row, "camera");
    9361     if (!status) {
    9362         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    9363         psFree(row);
    9364         return false;
    9365     }
    9366     *telescope = psMetadataLookupPtr(&status, row, "telescope");
    9367     if (!status) {
    9368         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
    9369         psFree(row);
    9370         return false;
    9371     }
    9372     *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
    9373     if (!status) {
    9374         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
    9375         psFree(row);
    9376         return false;
    9377     }
    9378     *imfiles = psMetadataLookupS32(&status, row, "imfiles");
    9379     if (!status) {
    9380         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
    9381         psFree(row);
    9382         return false;
    9383     }
    9384     *filter = psMetadataLookupPtr(&status, row, "filter");
    9385     if (!status) {
    9386         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
    9387         psFree(row);
    9388         return false;
    9389     }
    9390     *airmass = psMetadataLookupF32(&status, row, "airmass");
    9391     if (!status) {
    9392         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
    9393         psFree(row);
    9394         return false;
    9395     }
    9396     *ra = psMetadataLookupF64(&status, row, "ra");
    9397     if (!status) {
    9398         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
    9399         psFree(row);
    9400         return false;
    9401     }
    9402     *decl = psMetadataLookupF64(&status, row, "decl");
    9403     if (!status) {
    9404         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
    9405         psFree(row);
    9406         return false;
    9407     }
    9408     *exp_time = psMetadataLookupF32(&status, row, "exp_time");
    9409     if (!status) {
    9410         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
    9411         psFree(row);
    9412         return false;
    9413     }
    9414     *background = psMetadataLookupF64(&status, row, "background");
    9415     if (!status) {
    9416         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    9417         psFree(row);
    9418         return false;
    9419     }
    94209594    *recipe = psMetadataLookupPtr(&status, row, "recipe");
    94219595    if (!status) {
     
    94389612bool p1PendingExpInsertObject(psDB *dbh, p1PendingExpRow *object)
    94399613{
    9440     return p1PendingExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background, object->recipe, object->p1_version);
     9614    return p1PendingExpInsert(dbh, object->exp_id, object->recipe, object->p1_version);
    94419615}
    94429616
     
    94449618{
    94459619    char            exp_id[256];
    9446     char            camera[256];
    9447     char            telescope[256];
    9448     char            exp_type[256];
    9449     psS32           imfiles;
    9450     char            filter[256];
    9451     psF32           airmass;
    9452     psF64           ra;
    9453     psF64           decl;
    9454     psF32           exp_time;
    9455     psF64           background;
    94569620    char            recipe[256];
    94579621    psS32           p1_version;
    94589622
    9459     if (!p1PendingExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p1_version)) {
     9623    if (!p1PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version)) {
    94609624        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    94619625        return NULL;
    94629626    }
    94639627
    9464     return p1PendingExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version);
     9628    return p1PendingExpRowAlloc(exp_id, recipe, p1_version);
    94659629}
    94669630
     
    95669730        return NULL;
    95679731    }
    9568     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, object->camera)) {
    9569         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    9570         psFree(md);
    9571         return NULL;
    9572     }
    9573     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, object->telescope)) {
    9574         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    9575         psFree(md);
    9576         return NULL;
    9577     }
    9578     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
    9579         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    9580         psFree(md);
    9581         return NULL;
    9582     }
    9583     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, object->imfiles)) {
    9584         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    9585         psFree(md);
    9586         return NULL;
    9587     }
    9588     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
    9589         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    9590         psFree(md);
    9591         return NULL;
    9592     }
    9593     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
    9594         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    9595         psFree(md);
    9596         return NULL;
    9597     }
    9598     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
    9599         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    9600         psFree(md);
    9601         return NULL;
    9602     }
    9603     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
    9604         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    9605         psFree(md);
    9606         return NULL;
    9607     }
    9608     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
    9609         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    9610         psFree(md);
    9611         return NULL;
    9612     }
    9613     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
    9614         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    9615         psFree(md);
    9616         return NULL;
    9617     }
    96189732    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
    96199733        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    96349748    bool            status;
    96359749    char            *exp_id;
    9636     char            *camera;
    9637     char            *telescope;
    9638     char            *exp_type;
    9639     psS32           imfiles;
    9640     char            *filter;
    9641     psF32           airmass;
    9642     psF64           ra;
    9643     psF64           decl;
    9644     psF32           exp_time;
    9645     psF64           background;
    96469750    char            *recipe;
    96479751    psS32           p1_version;
     
    96529756        return false;
    96539757    }
    9654     camera = psMetadataLookupPtr(&status, md, "camera");
    9655     if (!status) {
    9656         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    9657         return false;
    9658     }
    9659     telescope = psMetadataLookupPtr(&status, md, "telescope");
    9660     if (!status) {
    9661         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
    9662         return false;
    9663     }
    9664     exp_type = psMetadataLookupPtr(&status, md, "exp_type");
    9665     if (!status) {
    9666         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
    9667         return false;
    9668     }
    9669     imfiles = psMetadataLookupS32(&status, md, "imfiles");
    9670     if (!status) {
    9671         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
    9672         return false;
    9673     }
    9674     filter = psMetadataLookupPtr(&status, md, "filter");
    9675     if (!status) {
    9676         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
    9677         return false;
    9678     }
    9679     airmass = psMetadataLookupF32(&status, md, "airmass");
    9680     if (!status) {
    9681         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
    9682         return false;
    9683     }
    9684     ra = psMetadataLookupF64(&status, md, "ra");
    9685     if (!status) {
    9686         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
    9687         return false;
    9688     }
    9689     decl = psMetadataLookupF64(&status, md, "decl");
    9690     if (!status) {
    9691         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
    9692         return false;
    9693     }
    9694     exp_time = psMetadataLookupF32(&status, md, "exp_time");
    9695     if (!status) {
    9696         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
    9697         return false;
    9698     }
    9699     background = psMetadataLookupF64(&status, md, "background");
    9700     if (!status) {
    9701         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    9702         return false;
    9703     }
    97049758    recipe = psMetadataLookupPtr(&status, md, "recipe");
    97059759    if (!status) {
     
    97139767    }
    97149768
    9715     return p1PendingExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version);
     9769    return p1PendingExpRowAlloc(exp_id, recipe, p1_version);
    97169770}
    97179771psArray *p1PendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    98209874static void p2PendingExpRowFree(p2PendingExpRow *object);
    98219875
    9822 p2PendingExpRow *p2PendingExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF32 ra, psF64 decl, psF64 exp_time, psF64 background, const char *recipe, psS32 p1_version, psS32 p2_version)
     9876p2PendingExpRow *p2PendingExpRowAlloc(const char *exp_id, const char *recipe, psS32 p1_version, psS32 p2_version)
    98239877{
    98249878    p2PendingExpRow *object;
     
    98289882
    98299883    object->exp_id = psStringCopy(exp_id);
    9830     object->camera = psStringCopy(camera);
    9831     object->telescope = psStringCopy(telescope);
    9832     object->exp_type = psStringCopy(exp_type);
    9833     object->imfiles = imfiles;
    9834     object->filter = psStringCopy(filter);
    9835     object->airmass = airmass;
    9836     object->ra = ra;
    9837     object->decl = decl;
    9838     object->exp_time = exp_time;
    9839     object->background = background;
    98409884    object->recipe = psStringCopy(recipe);
    98419885    object->p1_version = p1_version;
     
    98489892{
    98499893    psFree(object->exp_id);
    9850     psFree(object->camera);
    9851     psFree(object->telescope);
    9852     psFree(object->exp_type);
    9853     psFree(object->filter);
    98549894    psFree(object->recipe);
    98559895}
     
    98719911        return false;
    98729912    }
    9873     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "255")) {
    9874         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    9875         psFree(md);
    9876         return false;
    9877     }
    9878     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "255")) {
    9879         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    9880         psFree(md);
    9881         return false;
    9882     }
    9883     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
    9884         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    9885         psFree(md);
    9886         return false;
    9887     }
    9888     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, 0)) {
    9889         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    9890         psFree(md);
    9891         return false;
    9892     }
    9893     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
    9894         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    9895         psFree(md);
    9896         return false;
    9897     }
    9898     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
    9899         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    9900         psFree(md);
    9901         return false;
    9902     }
    9903     if (!psMetadataAddF32(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
    9904         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    9905         psFree(md);
    9906         return false;
    9907     }
    9908     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
    9909         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    9910         psFree(md);
    9911         return false;
    9912     }
    9913     if (!psMetadataAddF64(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
    9914         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    9915         psFree(md);
    9916         return false;
    9917     }
    9918     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
    9919         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    9920         psFree(md);
    9921         return false;
    9922     }
    99239913    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
    99249914        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    99499939}
    99509940
    9951 bool p2PendingExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF32 ra, psF64 decl, psF64 exp_time, psF64 background, const char *recipe, psS32 p1_version, psS32 p2_version)
     9941bool p2PendingExpInsert(psDB * dbh, const char *exp_id, const char *recipe, psS32 p1_version, psS32 p2_version)
    99529942{
    99539943    psMetadata      *md;
     
    99579947    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, exp_id)) {
    99589948        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
    9959         psFree(md);
    9960         return false;
    9961     }
    9962     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, camera)) {
    9963         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    9964         psFree(md);
    9965         return false;
    9966     }
    9967     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, telescope)) {
    9968         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    9969         psFree(md);
    9970         return false;
    9971     }
    9972     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
    9973         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    9974         psFree(md);
    9975         return false;
    9976     }
    9977     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, imfiles)) {
    9978         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    9979         psFree(md);
    9980         return false;
    9981     }
    9982     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
    9983         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    9984         psFree(md);
    9985         return false;
    9986     }
    9987     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
    9988         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    9989         psFree(md);
    9990         return false;
    9991     }
    9992     if (!psMetadataAddF32(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
    9993         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    9994         psFree(md);
    9995         return false;
    9996     }
    9997     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
    9998         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    9999         psFree(md);
    10000         return false;
    10001     }
    10002     if (!psMetadataAddF64(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
    10003         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    10004         psFree(md);
    10005         return false;
    10006     }
    10007     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
    10008         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    100099949        psFree(md);
    100109950        return false;
     
    100469986    return deleted;
    100479987}
    10048 bool p2PendingExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF32 *ra, psF64 *decl, psF64 *exp_time, psF64 *background, char **recipe, psS32 *p1_version, psS32 *p2_version)
     9988bool p2PendingExpPop(psDB *dbh, char **exp_id, char **recipe, psS32 *p1_version, psS32 *p2_version)
    100499989{
    100509990    psArray         *rowSet;
     
    1009610036        return false;
    1009710037    }
    10098     *camera = psMetadataLookupPtr(&status, row, "camera");
    10099     if (!status) {
    10100         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    10101         psFree(row);
    10102         return false;
    10103     }
    10104     *telescope = psMetadataLookupPtr(&status, row, "telescope");
    10105     if (!status) {
    10106         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
    10107         psFree(row);
    10108         return false;
    10109     }
    10110     *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
    10111     if (!status) {
    10112         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
    10113         psFree(row);
    10114         return false;
    10115     }
    10116     *imfiles = psMetadataLookupS32(&status, row, "imfiles");
    10117     if (!status) {
    10118         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
    10119         psFree(row);
    10120         return false;
    10121     }
    10122     *filter = psMetadataLookupPtr(&status, row, "filter");
    10123     if (!status) {
    10124         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
    10125         psFree(row);
    10126         return false;
    10127     }
    10128     *airmass = psMetadataLookupF32(&status, row, "airmass");
    10129     if (!status) {
    10130         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
    10131         psFree(row);
    10132         return false;
    10133     }
    10134     *ra = psMetadataLookupF32(&status, row, "ra");
    10135     if (!status) {
    10136         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
    10137         psFree(row);
    10138         return false;
    10139     }
    10140     *decl = psMetadataLookupF64(&status, row, "decl");
    10141     if (!status) {
    10142         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
    10143         psFree(row);
    10144         return false;
    10145     }
    10146     *exp_time = psMetadataLookupF64(&status, row, "exp_time");
    10147     if (!status) {
    10148         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
    10149         psFree(row);
    10150         return false;
    10151     }
    10152     *background = psMetadataLookupF64(&status, row, "background");
    10153     if (!status) {
    10154         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    10155         psFree(row);
    10156         return false;
    10157     }
    1015810038    *recipe = psMetadataLookupPtr(&status, row, "recipe");
    1015910039    if (!status) {
     
    1018210062bool p2PendingExpInsertObject(psDB *dbh, p2PendingExpRow *object)
    1018310063{
    10184     return p2PendingExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background, object->recipe, object->p1_version, object->p2_version);
     10064    return p2PendingExpInsert(dbh, object->exp_id, object->recipe, object->p1_version, object->p2_version);
    1018510065}
    1018610066
     
    1018810068{
    1018910069    char            exp_id[256];
    10190     char            camera[256];
    10191     char            telescope[256];
    10192     char            exp_type[256];
    10193     psS32           imfiles;
    10194     char            filter[256];
    10195     psF32           airmass;
    10196     psF32           ra;
    10197     psF64           decl;
    10198     psF64           exp_time;
    10199     psF64           background;
    1020010070    char            recipe[256];
    1020110071    psS32           p1_version;
    1020210072    psS32           p2_version;
    1020310073
    10204     if (!p2PendingExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p1_version, &p2_version)) {
     10074    if (!p2PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version, &p2_version)) {
    1020510075        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1020610076        return NULL;
    1020710077    }
    1020810078
    10209     return p2PendingExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version, p2_version);
     10079    return p2PendingExpRowAlloc(exp_id, recipe, p1_version, p2_version);
    1021010080}
    1021110081
     
    1031110181        return NULL;
    1031210182    }
    10313     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, object->camera)) {
    10314         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    10315         psFree(md);
    10316         return NULL;
    10317     }
    10318     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, object->telescope)) {
    10319         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    10320         psFree(md);
    10321         return NULL;
    10322     }
    10323     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
    10324         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    10325         psFree(md);
    10326         return NULL;
    10327     }
    10328     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, object->imfiles)) {
    10329         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    10330         psFree(md);
    10331         return NULL;
    10332     }
    10333     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
    10334         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    10335         psFree(md);
    10336         return NULL;
    10337     }
    10338     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
    10339         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    10340         psFree(md);
    10341         return NULL;
    10342     }
    10343     if (!psMetadataAddF32(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
    10344         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    10345         psFree(md);
    10346         return NULL;
    10347     }
    10348     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
    10349         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    10350         psFree(md);
    10351         return NULL;
    10352     }
    10353     if (!psMetadataAddF64(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
    10354         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    10355         psFree(md);
    10356         return NULL;
    10357     }
    10358     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
    10359         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    10360         psFree(md);
    10361         return NULL;
    10362     }
    1036310183    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
    1036410184        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    1038410204    bool            status;
    1038510205    char            *exp_id;
    10386     char            *camera;
    10387     char            *telescope;
    10388     char            *exp_type;
    10389     psS32           imfiles;
    10390     char            *filter;
    10391     psF32           airmass;
    10392     psF32           ra;
    10393     psF64           decl;
    10394     psF64           exp_time;
    10395     psF64           background;
    1039610206    char            *recipe;
    1039710207    psS32           p1_version;
     
    1040310213        return false;
    1040410214    }
    10405     camera = psMetadataLookupPtr(&status, md, "camera");
    10406     if (!status) {
    10407         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    10408         return false;
    10409     }
    10410     telescope = psMetadataLookupPtr(&status, md, "telescope");
    10411     if (!status) {
    10412         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
    10413         return false;
    10414     }
    10415     exp_type = psMetadataLookupPtr(&status, md, "exp_type");
    10416     if (!status) {
    10417         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
    10418         return false;
    10419     }
    10420     imfiles = psMetadataLookupS32(&status, md, "imfiles");
    10421     if (!status) {
    10422         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
    10423         return false;
    10424     }
    10425     filter = psMetadataLookupPtr(&status, md, "filter");
    10426     if (!status) {
    10427         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
    10428         return false;
    10429     }
    10430     airmass = psMetadataLookupF32(&status, md, "airmass");
    10431     if (!status) {
    10432         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
    10433         return false;
    10434     }
    10435     ra = psMetadataLookupF32(&status, md, "ra");
    10436     if (!status) {
    10437         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
    10438         return false;
    10439     }
    10440     decl = psMetadataLookupF64(&status, md, "decl");
    10441     if (!status) {
    10442         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
    10443         return false;
    10444     }
    10445     exp_time = psMetadataLookupF64(&status, md, "exp_time");
    10446     if (!status) {
    10447         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
    10448         return false;
    10449     }
    10450     background = psMetadataLookupF64(&status, md, "background");
    10451     if (!status) {
    10452         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    10453         return false;
    10454     }
    1045510215    recipe = psMetadataLookupPtr(&status, md, "recipe");
    1045610216    if (!status) {
     
    1046910229    }
    1047010230
    10471     return p2PendingExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version, p2_version);
     10231    return p2PendingExpRowAlloc(exp_id, recipe, p1_version, p2_version);
    1047210232}
    1047310233psArray *p2PendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1061210372        return false;
    1061310373    }
    10614     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Key", "64")) {
     10374    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Primary Key", "64")) {
    1061510375        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
    1061610376        psFree(md);
    1061710377        return false;
    1061810378    }
    10619     if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "64")) {
     10379    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, "Primary Key", "64")) {
    1062010380        psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
    1062110381        psFree(md);
     
    1109810858static void p2DoneExpRowFree(p2DoneExpRow *object);
    1109910859
    11100 p2DoneExpRow *p2DoneExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p1_version, psS32 p2_version)
     10860p2DoneExpRow *p2DoneExpRowAlloc(const char *exp_id, const char *recipe, psS32 p1_version, psS32 p2_version)
    1110110861{
    1110210862    p2DoneExpRow    *object;
     
    1110610866
    1110710867    object->exp_id = psStringCopy(exp_id);
    11108     object->camera = psStringCopy(camera);
    11109     object->telescope = psStringCopy(telescope);
    11110     object->exp_type = psStringCopy(exp_type);
    11111     object->imfiles = imfiles;
    11112     object->filter = psStringCopy(filter);
    11113     object->airmass = airmass;
    11114     object->ra = ra;
    11115     object->decl = decl;
    11116     object->exp_time = exp_time;
    11117     object->background = background;
    1111810868    object->recipe = psStringCopy(recipe);
    1111910869    object->p1_version = p1_version;
     
    1112610876{
    1112710877    psFree(object->exp_id);
    11128     psFree(object->camera);
    11129     psFree(object->telescope);
    11130     psFree(object->exp_type);
    11131     psFree(object->filter);
    1113210878    psFree(object->recipe);
    1113310879}
     
    1114910895        return false;
    1115010896    }
    11151     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "255")) {
    11152         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    11153         psFree(md);
    11154         return false;
    11155     }
    11156     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "255")) {
    11157         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    11158         psFree(md);
    11159         return false;
    11160     }
    11161     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
    11162         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    11163         psFree(md);
    11164         return false;
    11165     }
    11166     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, 0)) {
    11167         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    11168         psFree(md);
    11169         return false;
    11170     }
    11171     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
    11172         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    11173         psFree(md);
    11174         return false;
    11175     }
    11176     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
    11177         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    11178         psFree(md);
    11179         return false;
    11180     }
    11181     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
    11182         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    11183         psFree(md);
    11184         return false;
    11185     }
    11186     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
    11187         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    11188         psFree(md);
    11189         return false;
    11190     }
    11191     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
    11192         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    11193         psFree(md);
    11194         return false;
    11195     }
    11196     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
    11197         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    11198         psFree(md);
    11199         return false;
    11200     }
    1120110897    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
    1120210898        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    1122710923}
    1122810924
    11229 bool p2DoneExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p1_version, psS32 p2_version)
     10925bool p2DoneExpInsert(psDB * dbh, const char *exp_id, const char *recipe, psS32 p1_version, psS32 p2_version)
    1123010926{
    1123110927    psMetadata      *md;
     
    1123510931    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, exp_id)) {
    1123610932        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
    11237         psFree(md);
    11238         return false;
    11239     }
    11240     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, camera)) {
    11241         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    11242         psFree(md);
    11243         return false;
    11244     }
    11245     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, telescope)) {
    11246         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    11247         psFree(md);
    11248         return false;
    11249     }
    11250     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
    11251         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    11252         psFree(md);
    11253         return false;
    11254     }
    11255     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, imfiles)) {
    11256         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    11257         psFree(md);
    11258         return false;
    11259     }
    11260     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
    11261         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    11262         psFree(md);
    11263         return false;
    11264     }
    11265     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
    11266         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    11267         psFree(md);
    11268         return false;
    11269     }
    11270     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
    11271         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    11272         psFree(md);
    11273         return false;
    11274     }
    11275     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
    11276         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    11277         psFree(md);
    11278         return false;
    11279     }
    11280     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
    11281         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    11282         psFree(md);
    11283         return false;
    11284     }
    11285     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
    11286         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    1128710933        psFree(md);
    1128810934        return false;
     
    1132410970    return deleted;
    1132510971}
    11326 bool p2DoneExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background, char **recipe, psS32 *p1_version, psS32 *p2_version)
     10972bool p2DoneExpPop(psDB *dbh, char **exp_id, char **recipe, psS32 *p1_version, psS32 *p2_version)
    1132710973{
    1132810974    psArray         *rowSet;
     
    1137411020        return false;
    1137511021    }
    11376     *camera = psMetadataLookupPtr(&status, row, "camera");
    11377     if (!status) {
    11378         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    11379         psFree(row);
    11380         return false;
    11381     }
    11382     *telescope = psMetadataLookupPtr(&status, row, "telescope");
    11383     if (!status) {
    11384         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
    11385         psFree(row);
    11386         return false;
    11387     }
    11388     *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
    11389     if (!status) {
    11390         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
    11391         psFree(row);
    11392         return false;
    11393     }
    11394     *imfiles = psMetadataLookupS32(&status, row, "imfiles");
    11395     if (!status) {
    11396         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
    11397         psFree(row);
    11398         return false;
    11399     }
    11400     *filter = psMetadataLookupPtr(&status, row, "filter");
    11401     if (!status) {
    11402         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
    11403         psFree(row);
    11404         return false;
    11405     }
    11406     *airmass = psMetadataLookupF32(&status, row, "airmass");
    11407     if (!status) {
    11408         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
    11409         psFree(row);
    11410         return false;
    11411     }
    11412     *ra = psMetadataLookupF64(&status, row, "ra");
    11413     if (!status) {
    11414         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
    11415         psFree(row);
    11416         return false;
    11417     }
    11418     *decl = psMetadataLookupF64(&status, row, "decl");
    11419     if (!status) {
    11420         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
    11421         psFree(row);
    11422         return false;
    11423     }
    11424     *exp_time = psMetadataLookupF32(&status, row, "exp_time");
    11425     if (!status) {
    11426         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
    11427         psFree(row);
    11428         return false;
    11429     }
    11430     *background = psMetadataLookupF64(&status, row, "background");
    11431     if (!status) {
    11432         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    11433         psFree(row);
    11434         return false;
    11435     }
    1143611022    *recipe = psMetadataLookupPtr(&status, row, "recipe");
    1143711023    if (!status) {
     
    1146011046bool p2DoneExpInsertObject(psDB *dbh, p2DoneExpRow *object)
    1146111047{
    11462     return p2DoneExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background, object->recipe, object->p1_version, object->p2_version);
     11048    return p2DoneExpInsert(dbh, object->exp_id, object->recipe, object->p1_version, object->p2_version);
    1146311049}
    1146411050
     
    1146611052{
    1146711053    char            exp_id[256];
    11468     char            camera[256];
    11469     char            telescope[256];
    11470     char            exp_type[256];
    11471     psS32           imfiles;
    11472     char            filter[256];
    11473     psF32           airmass;
    11474     psF64           ra;
    11475     psF64           decl;
    11476     psF32           exp_time;
    11477     psF64           background;
    1147811054    char            recipe[256];
    1147911055    psS32           p1_version;
    1148011056    psS32           p2_version;
    1148111057
    11482     if (!p2DoneExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p1_version, &p2_version)) {
     11058    if (!p2DoneExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version, &p2_version)) {
    1148311059        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1148411060        return NULL;
    1148511061    }
    1148611062
    11487     return p2DoneExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version, p2_version);
     11063    return p2DoneExpRowAlloc(exp_id, recipe, p1_version, p2_version);
    1148811064}
    1148911065
     
    1158911165        return NULL;
    1159011166    }
    11591     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, object->camera)) {
    11592         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    11593         psFree(md);
    11594         return NULL;
    11595     }
    11596     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, object->telescope)) {
    11597         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    11598         psFree(md);
    11599         return NULL;
    11600     }
    11601     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
    11602         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    11603         psFree(md);
    11604         return NULL;
    11605     }
    11606     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, object->imfiles)) {
    11607         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    11608         psFree(md);
    11609         return NULL;
    11610     }
    11611     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
    11612         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    11613         psFree(md);
    11614         return NULL;
    11615     }
    11616     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
    11617         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    11618         psFree(md);
    11619         return NULL;
    11620     }
    11621     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
    11622         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    11623         psFree(md);
    11624         return NULL;
    11625     }
    11626     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
    11627         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    11628         psFree(md);
    11629         return NULL;
    11630     }
    11631     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
    11632         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    11633         psFree(md);
    11634         return NULL;
    11635     }
    11636     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
    11637         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    11638         psFree(md);
    11639         return NULL;
    11640     }
    1164111167    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
    1164211168        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    1166211188    bool            status;
    1166311189    char            *exp_id;
    11664     char            *camera;
    11665     char            *telescope;
    11666     char            *exp_type;
    11667     psS32           imfiles;
    11668     char            *filter;
    11669     psF32           airmass;
    11670     psF64           ra;
    11671     psF64           decl;
    11672     psF32           exp_time;
    11673     psF64           background;
    1167411190    char            *recipe;
    1167511191    psS32           p1_version;
     
    1168111197        return false;
    1168211198    }
    11683     camera = psMetadataLookupPtr(&status, md, "camera");
    11684     if (!status) {
    11685         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    11686         return false;
    11687     }
    11688     telescope = psMetadataLookupPtr(&status, md, "telescope");
    11689     if (!status) {
    11690         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
    11691         return false;
    11692     }
    11693     exp_type = psMetadataLookupPtr(&status, md, "exp_type");
    11694     if (!status) {
    11695         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
    11696         return false;
    11697     }
    11698     imfiles = psMetadataLookupS32(&status, md, "imfiles");
    11699     if (!status) {
    11700         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
    11701         return false;
    11702     }
    11703     filter = psMetadataLookupPtr(&status, md, "filter");
    11704     if (!status) {
    11705         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
    11706         return false;
    11707     }
    11708     airmass = psMetadataLookupF32(&status, md, "airmass");
    11709     if (!status) {
    11710         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
    11711         return false;
    11712     }
    11713     ra = psMetadataLookupF64(&status, md, "ra");
    11714     if (!status) {
    11715         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
    11716         return false;
    11717     }
    11718     decl = psMetadataLookupF64(&status, md, "decl");
    11719     if (!status) {
    11720         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
    11721         return false;
    11722     }
    11723     exp_time = psMetadataLookupF32(&status, md, "exp_time");
    11724     if (!status) {
    11725         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
    11726         return false;
    11727     }
    11728     background = psMetadataLookupF64(&status, md, "background");
    11729     if (!status) {
    11730         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    11731         return false;
    11732     }
    1173311199    recipe = psMetadataLookupPtr(&status, md, "recipe");
    1173411200    if (!status) {
     
    1174711213    }
    1174811214
    11749     return p2DoneExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version, p2_version);
     11215    return p2DoneExpRowAlloc(exp_id, recipe, p1_version, p2_version);
    1175011216}
    1175111217psArray *p2DoneExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1189011356        return false;
    1189111357    }
    11892     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Key", "64")) {
     11358    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Primary Key", "64")) {
    1189311359        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
    1189411360        psFree(md);
    1189511361        return false;
    1189611362    }
    11897     if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "64")) {
     11363    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, "Primary Key", "64")) {
    1189811364        psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
    1189911365        psFree(md);
     
    1237611842static void p3PendingExpRowFree(p3PendingExpRow *object);
    1237711843
    12378 p3PendingExpRow *p3PendingExpRowAlloc(const char *exp_id, const char *camera, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p2_version, psS32 p3_version)
     11844p3PendingExpRow *p3PendingExpRowAlloc(const char *exp_id, const char *recipe, psS32 p2_version, psS32 p3_version)
    1237911845{
    1238011846    p3PendingExpRow *object;
     
    1238411850
    1238511851    object->exp_id = psStringCopy(exp_id);
    12386     object->camera = psStringCopy(camera);
    12387     object->exp_type = psStringCopy(exp_type);
    12388     object->imfiles = imfiles;
    12389     object->filter = psStringCopy(filter);
    12390     object->airmass = airmass;
    12391     object->ra = ra;
    12392     object->decl = decl;
    12393     object->exp_time = exp_time;
    12394     object->background = background;
    1239511852    object->recipe = psStringCopy(recipe);
    1239611853    object->p2_version = p2_version;
     
    1240311860{
    1240411861    psFree(object->exp_id);
    12405     psFree(object->camera);
    12406     psFree(object->exp_type);
    12407     psFree(object->filter);
    1240811862    psFree(object->recipe);
    1240911863}
     
    1242511879        return false;
    1242611880    }
    12427     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "255")) {
    12428         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    12429         psFree(md);
    12430         return false;
    12431     }
    12432     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
    12433         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    12434         psFree(md);
    12435         return false;
    12436     }
    12437     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, 0)) {
    12438         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    12439         psFree(md);
    12440         return false;
    12441     }
    12442     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
    12443         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    12444         psFree(md);
    12445         return false;
    12446     }
    12447     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
    12448         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    12449         psFree(md);
    12450         return false;
    12451     }
    12452     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
    12453         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    12454         psFree(md);
    12455         return false;
    12456     }
    12457     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
    12458         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    12459         psFree(md);
    12460         return false;
    12461     }
    12462     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
    12463         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    12464         psFree(md);
    12465         return false;
    12466     }
    12467     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
    12468         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    12469         psFree(md);
    12470         return false;
    12471     }
    1247211881    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
    1247311882        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    1249811907}
    1249911908
    12500 bool p3PendingExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p2_version, psS32 p3_version)
     11909bool p3PendingExpInsert(psDB * dbh, const char *exp_id, const char *recipe, psS32 p2_version, psS32 p3_version)
    1250111910{
    1250211911    psMetadata      *md;
     
    1250611915    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, exp_id)) {
    1250711916        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
    12508         psFree(md);
    12509         return false;
    12510     }
    12511     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, camera)) {
    12512         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    12513         psFree(md);
    12514         return false;
    12515     }
    12516     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
    12517         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    12518         psFree(md);
    12519         return false;
    12520     }
    12521     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, imfiles)) {
    12522         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    12523         psFree(md);
    12524         return false;
    12525     }
    12526     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
    12527         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    12528         psFree(md);
    12529         return false;
    12530     }
    12531     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
    12532         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    12533         psFree(md);
    12534         return false;
    12535     }
    12536     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
    12537         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    12538         psFree(md);
    12539         return false;
    12540     }
    12541     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
    12542         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    12543         psFree(md);
    12544         return false;
    12545     }
    12546     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
    12547         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    12548         psFree(md);
    12549         return false;
    12550     }
    12551     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
    12552         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    1255311917        psFree(md);
    1255411918        return false;
     
    1259011954    return deleted;
    1259111955}
    12592 bool p3PendingExpPop(psDB *dbh, char **exp_id, char **camera, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background, char **recipe, psS32 *p2_version, psS32 *p3_version)
     11956bool p3PendingExpPop(psDB *dbh, char **exp_id, char **recipe, psS32 *p2_version, psS32 *p3_version)
    1259311957{
    1259411958    psArray         *rowSet;
     
    1264012004        return false;
    1264112005    }
    12642     *camera = psMetadataLookupPtr(&status, row, "camera");
    12643     if (!status) {
    12644         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    12645         psFree(row);
    12646         return false;
    12647     }
    12648     *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
    12649     if (!status) {
    12650         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
    12651         psFree(row);
    12652         return false;
    12653     }
    12654     *imfiles = psMetadataLookupS32(&status, row, "imfiles");
    12655     if (!status) {
    12656         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
    12657         psFree(row);
    12658         return false;
    12659     }
    12660     *filter = psMetadataLookupPtr(&status, row, "filter");
    12661     if (!status) {
    12662         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
    12663         psFree(row);
    12664         return false;
    12665     }
    12666     *airmass = psMetadataLookupF32(&status, row, "airmass");
    12667     if (!status) {
    12668         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
    12669         psFree(row);
    12670         return false;
    12671     }
    12672     *ra = psMetadataLookupF64(&status, row, "ra");
    12673     if (!status) {
    12674         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
    12675         psFree(row);
    12676         return false;
    12677     }
    12678     *decl = psMetadataLookupF64(&status, row, "decl");
    12679     if (!status) {
    12680         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
    12681         psFree(row);
    12682         return false;
    12683     }
    12684     *exp_time = psMetadataLookupF32(&status, row, "exp_time");
    12685     if (!status) {
    12686         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
    12687         psFree(row);
    12688         return false;
    12689     }
    12690     *background = psMetadataLookupF64(&status, row, "background");
    12691     if (!status) {
    12692         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    12693         psFree(row);
    12694         return false;
    12695     }
    1269612006    *recipe = psMetadataLookupPtr(&status, row, "recipe");
    1269712007    if (!status) {
     
    1272012030bool p3PendingExpInsertObject(psDB *dbh, p3PendingExpRow *object)
    1272112031{
    12722     return p3PendingExpInsert(dbh, object->exp_id, object->camera, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background, object->recipe, object->p2_version, object->p3_version);
     12032    return p3PendingExpInsert(dbh, object->exp_id, object->recipe, object->p2_version, object->p3_version);
    1272312033}
    1272412034
     
    1272612036{
    1272712037    char            exp_id[256];
    12728     char            camera[256];
    12729     char            exp_type[256];
    12730     psS32           imfiles;
    12731     char            filter[256];
    12732     psF32           airmass;
    12733     psF64           ra;
    12734     psF64           decl;
    12735     psF32           exp_time;
    12736     psF64           background;
    1273712038    char            recipe[256];
    1273812039    psS32           p2_version;
    1273912040    psS32           p3_version;
    1274012041
    12741     if (!p3PendingExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p2_version, &p3_version)) {
     12042    if (!p3PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p2_version, &p3_version)) {
    1274212043        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1274312044        return NULL;
    1274412045    }
    1274512046
    12746     return p3PendingExpRowAlloc(exp_id, camera, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p2_version, p3_version);
     12047    return p3PendingExpRowAlloc(exp_id, recipe, p2_version, p3_version);
    1274712048}
    1274812049
     
    1284812149        return NULL;
    1284912150    }
    12850     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, object->camera)) {
    12851         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    12852         psFree(md);
    12853         return NULL;
    12854     }
    12855     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
    12856         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    12857         psFree(md);
    12858         return NULL;
    12859     }
    12860     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, object->imfiles)) {
    12861         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    12862         psFree(md);
    12863         return NULL;
    12864     }
    12865     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
    12866         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    12867         psFree(md);
    12868         return NULL;
    12869     }
    12870     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
    12871         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    12872         psFree(md);
    12873         return NULL;
    12874     }
    12875     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
    12876         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    12877         psFree(md);
    12878         return NULL;
    12879     }
    12880     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
    12881         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    12882         psFree(md);
    12883         return NULL;
    12884     }
    12885     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
    12886         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    12887         psFree(md);
    12888         return NULL;
    12889     }
    12890     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
    12891         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
    12892         psFree(md);
    12893         return NULL;
    12894     }
    1289512151    if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
    1289612152        psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
     
    1291612172    bool            status;
    1291712173    char            *exp_id;
    12918     char            *camera;
    12919     char            *exp_type;
    12920     psS32           imfiles;
    12921     char            *filter;
    12922     psF32           airmass;
    12923     psF64           ra;
    12924     psF64           decl;
    12925     psF32           exp_time;
    12926     psF64           background;
    1292712174    char            *recipe;
    1292812175    psS32           p2_version;
     
    1293412181        return false;
    1293512182    }
    12936     camera = psMetadataLookupPtr(&status, md, "camera");
    12937     if (!status) {
    12938         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    12939         return false;
    12940     }
    12941     exp_type = psMetadataLookupPtr(&status, md, "exp_type");
    12942     if (!status) {
    12943         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
    12944         return false;
    12945     }
    12946     imfiles = psMetadataLookupS32(&status, md, "imfiles");
    12947     if (!status) {
    12948         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
    12949         return false;
    12950     }
    12951     filter = psMetadataLookupPtr(&status, md, "filter");
    12952     if (!status) {
    12953         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
    12954         return false;
    12955     }
    12956     airmass = psMetadataLookupF32(&status, md, "airmass");
    12957     if (!status) {
    12958         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
    12959         return false;
    12960     }
    12961     ra = psMetadataLookupF64(&status, md, "ra");
    12962     if (!status) {
    12963         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
    12964         return false;
    12965     }
    12966     decl = psMetadataLookupF64(&status, md, "decl");
    12967     if (!status) {
    12968         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
    12969         return false;
    12970     }
    12971     exp_time = psMetadataLookupF32(&status, md, "exp_time");
    12972     if (!status) {
    12973         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
    12974         return false;
    12975     }
    12976     background = psMetadataLookupF64(&status, md, "background");
    12977     if (!status) {
    12978         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    12979         return false;
    12980     }
    1298112183    recipe = psMetadataLookupPtr(&status, md, "recipe");
    1298212184    if (!status) {
     
    1299512197    }
    1299612198
    12997     return p3PendingExpRowAlloc(exp_id, camera, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p2_version, p3_version);
     12199    return p3PendingExpRowAlloc(exp_id, recipe, p2_version, p3_version);
    1299812200}
    1299912201psArray *p3PendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1350512707static void detInputExpRowFree(detInputExpRow *object);
    1350612708
    13507 detInputExpRow *detInputExpRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
     12709detInputExpRow *detInputExpRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, bool include, bool accept)
    1350812710{
    1350912711    detInputExpRow  *object;
     
    1351512717    object->iteration = iteration;
    1351612718    object->exp_id = psStringCopy(exp_id);
    13517     object->camera = psStringCopy(camera);
    13518     object->telescope = psStringCopy(telescope);
    13519     object->exp_type = psStringCopy(exp_type);
    13520     object->imfiles = imfiles;
    13521     object->filter = psStringCopy(filter);
    13522     object->airmass = airmass;
    13523     object->ra = ra;
    13524     object->decl = decl;
    13525     object->exp_time = exp_time;
    13526     object->background = background;
     12719    object->include = include;
     12720    object->accept = accept;
    1352712721
    1352812722    return object;
     
    1353212726{
    1353312727    psFree(object->exp_id);
    13534     psFree(object->camera);
    13535     psFree(object->telescope);
    13536     psFree(object->exp_type);
    13537     psFree(object->filter);
    1353812728}
    1353912729
     
    1356412754        return false;
    1356512755    }
    13566     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "255")) {
    13567         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    13568         psFree(md);
    13569         return false;
    13570     }
    13571     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "255")) {
    13572         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    13573         psFree(md);
    13574         return false;
    13575     }
    13576     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
    13577         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    13578         psFree(md);
    13579         return false;
    13580     }
    13581     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, 0)) {
    13582         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    13583         psFree(md);
    13584         return false;
    13585     }
    13586     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
    13587         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    13588         psFree(md);
    13589         return false;
    13590     }
    13591     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
    13592         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    13593         psFree(md);
    13594         return false;
    13595     }
    13596     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
    13597         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    13598         psFree(md);
    13599         return false;
    13600     }
    13601     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
    13602         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    13603         psFree(md);
    13604         return false;
    13605     }
    13606     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
    13607         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    13608         psFree(md);
    13609         return false;
    13610     }
    13611     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
    13612         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
     12756    if (!psMetadataAdd(md, PS_LIST_TAIL, "include", PS_DATA_BOOL, NULL, false)) {
     12757        psError(PS_ERR_UNKNOWN, false, "failed to add item include");
     12758        psFree(md);
     12759        return false;
     12760    }
     12761    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, false)) {
     12762        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
    1361312763        psFree(md);
    1361412764        return false;
     
    1362712777}
    1362812778
    13629 bool detInputExpInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
     12779bool detInputExpInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, bool include, bool accept)
    1363012780{
    1363112781    psMetadata      *md;
     
    1364812798        return false;
    1364912799    }
    13650     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, camera)) {
    13651         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    13652         psFree(md);
    13653         return false;
    13654     }
    13655     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, telescope)) {
    13656         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    13657         psFree(md);
    13658         return false;
    13659     }
    13660     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
    13661         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    13662         psFree(md);
    13663         return false;
    13664     }
    13665     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, imfiles)) {
    13666         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    13667         psFree(md);
    13668         return false;
    13669     }
    13670     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
    13671         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    13672         psFree(md);
    13673         return false;
    13674     }
    13675     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
    13676         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    13677         psFree(md);
    13678         return false;
    13679     }
    13680     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
    13681         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    13682         psFree(md);
    13683         return false;
    13684     }
    13685     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
    13686         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    13687         psFree(md);
    13688         return false;
    13689     }
    13690     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
    13691         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    13692         psFree(md);
    13693         return false;
    13694     }
    13695     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
    13696         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
     12800    if (!psMetadataAdd(md, PS_LIST_TAIL, "include", PS_DATA_BOOL, NULL, include)) {
     12801        psError(PS_ERR_UNKNOWN, false, "failed to add item include");
     12802        psFree(md);
     12803        return false;
     12804    }
     12805    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, accept)) {
     12806        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
    1369712807        psFree(md);
    1369812808        return false;
     
    1371912829    return deleted;
    1372012830}
    13721 bool detInputExpPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background)
     12831bool detInputExpPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, bool *include, bool *accept)
    1372212832{
    1372312833    psArray         *rowSet;
     
    1378112891        return false;
    1378212892    }
    13783     *camera = psMetadataLookupPtr(&status, row, "camera");
    13784     if (!status) {
    13785         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    13786         psFree(row);
    13787         return false;
    13788     }
    13789     *telescope = psMetadataLookupPtr(&status, row, "telescope");
    13790     if (!status) {
    13791         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
    13792         psFree(row);
    13793         return false;
    13794     }
    13795     *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
    13796     if (!status) {
    13797         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
    13798         psFree(row);
    13799         return false;
    13800     }
    13801     *imfiles = psMetadataLookupS32(&status, row, "imfiles");
    13802     if (!status) {
    13803         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
    13804         psFree(row);
    13805         return false;
    13806     }
    13807     *filter = psMetadataLookupPtr(&status, row, "filter");
    13808     if (!status) {
    13809         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
    13810         psFree(row);
    13811         return false;
    13812     }
    13813     *airmass = psMetadataLookupF32(&status, row, "airmass");
    13814     if (!status) {
    13815         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
    13816         psFree(row);
    13817         return false;
    13818     }
    13819     *ra = psMetadataLookupF64(&status, row, "ra");
    13820     if (!status) {
    13821         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
    13822         psFree(row);
    13823         return false;
    13824     }
    13825     *decl = psMetadataLookupF64(&status, row, "decl");
    13826     if (!status) {
    13827         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
    13828         psFree(row);
    13829         return false;
    13830     }
    13831     *exp_time = psMetadataLookupF32(&status, row, "exp_time");
    13832     if (!status) {
    13833         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
    13834         psFree(row);
    13835         return false;
    13836     }
    13837     *background = psMetadataLookupF64(&status, row, "background");
    13838     if (!status) {
    13839         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
     12893    *include = psMetadataLookupBool(&status, row, "include");
     12894    if (!status) {
     12895        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item include");
     12896        psFree(row);
     12897        return false;
     12898    }
     12899    *accept = psMetadataLookupBool(&status, row, "accept");
     12900    if (!status) {
     12901        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item accept");
    1384012902        psFree(row);
    1384112903        return false;
     
    1384912911bool detInputExpInsertObject(psDB *dbh, detInputExpRow *object)
    1385012912{
    13851     return detInputExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background);
     12913    return detInputExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->include, object->accept);
    1385212914}
    1385312915
     
    1385712919    psS32           iteration;
    1385812920    char            exp_id[256];
    13859     char            camera[256];
    13860     char            telescope[256];
    13861     char            exp_type[256];
    13862     psS32           imfiles;
    13863     char            filter[256];
    13864     psF32           airmass;
    13865     psF64           ra;
    13866     psF64           decl;
    13867     psF32           exp_time;
    13868     psF64           background;
    13869 
    13870     if (!detInputExpPop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background)) {
     12921    bool            include;
     12922    bool            accept;
     12923
     12924    if (!detInputExpPop(dbh, &det_id, &iteration, (char **)&exp_id, &include, &accept)) {
    1387112925        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1387212926        return NULL;
    1387312927    }
    1387412928
    13875     return detInputExpRowAlloc(det_id, iteration, exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
     12929    return detInputExpRowAlloc(det_id, iteration, exp_id, include, accept);
    1387612930}
    1387712931
     
    1398713041        return NULL;
    1398813042    }
    13989     if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, object->camera)) {
    13990         psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
    13991         psFree(md);
    13992         return NULL;
    13993     }
    13994     if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, object->telescope)) {
    13995         psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
    13996         psFree(md);
    13997         return NULL;
    13998     }
    13999     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
    14000         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
    14001         psFree(md);
    14002         return NULL;
    14003     }
    14004     if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, object->imfiles)) {
    14005         psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
    14006         psFree(md);
    14007         return NULL;
    14008     }
    14009     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
    14010         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
    14011         psFree(md);
    14012         return NULL;
    14013     }
    14014     if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
    14015         psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
    14016         psFree(md);
    14017         return NULL;
    14018     }
    14019     if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
    14020         psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
    14021         psFree(md);
    14022         return NULL;
    14023     }
    14024     if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
    14025         psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
    14026         psFree(md);
    14027         return NULL;
    14028     }
    14029     if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
    14030         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
    14031         psFree(md);
    14032         return NULL;
    14033     }
    14034     if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
    14035         psError(PS_ERR_UNKNOWN, false, "failed to add item background");
     13043    if (!psMetadataAdd(md, PS_LIST_TAIL, "include", PS_DATA_BOOL, NULL, object->include)) {
     13044        psError(PS_ERR_UNKNOWN, false, "failed to add item include");
     13045        psFree(md);
     13046        return NULL;
     13047    }
     13048    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, object->accept)) {
     13049        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
    1403613050        psFree(md);
    1403713051        return NULL;
     
    1404713061    psS32           iteration;
    1404813062    char            *exp_id;
    14049     char            *camera;
    14050     char            *telescope;
    14051     char            *exp_type;
    14052     psS32           imfiles;
    14053     char            *filter;
    14054     psF32           airmass;
    14055     psF64           ra;
    14056     psF64           decl;
    14057     psF32           exp_time;
    14058     psF64           background;
     13063    bool            include;
     13064    bool            accept;
    1405913065
    1406013066    det_id = psMetadataLookupS32(&status, md, "det_id");
     
    1407313079        return false;
    1407413080    }
    14075     camera = psMetadataLookupPtr(&status, md, "camera");
    14076     if (!status) {
    14077         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
    14078         return false;
    14079     }
    14080     telescope = psMetadataLookupPtr(&status, md, "telescope");
    14081     if (!status) {
    14082         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
    14083         return false;
    14084     }
    14085     exp_type = psMetadataLookupPtr(&status, md, "exp_type");
    14086     if (!status) {
    14087         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
    14088         return false;
    14089     }
    14090     imfiles = psMetadataLookupS32(&status, md, "imfiles");
    14091     if (!status) {
    14092         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
    14093         return false;
    14094     }
    14095     filter = psMetadataLookupPtr(&status, md, "filter");
    14096     if (!status) {
    14097         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
    14098         return false;
    14099     }
    14100     airmass = psMetadataLookupF32(&status, md, "airmass");
    14101     if (!status) {
    14102         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
    14103         return false;
    14104     }
    14105     ra = psMetadataLookupF64(&status, md, "ra");
    14106     if (!status) {
    14107         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
    14108         return false;
    14109     }
    14110     decl = psMetadataLookupF64(&status, md, "decl");
    14111     if (!status) {
    14112         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
    14113         return false;
    14114     }
    14115     exp_time = psMetadataLookupF32(&status, md, "exp_time");
    14116     if (!status) {
    14117         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
    14118         return false;
    14119     }
    14120     background = psMetadataLookupF64(&status, md, "background");
    14121     if (!status) {
    14122         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
    14123         return false;
    14124     }
    14125 
    14126     return detInputExpRowAlloc(det_id, iteration, exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
     13081    include = psMetadataLookupBool(&status, md, "include");
     13082    if (!status) {
     13083        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item include");
     13084        return false;
     13085    }
     13086    accept = psMetadataLookupBool(&status, md, "accept");
     13087    if (!status) {
     13088        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item accept");
     13089        return false;
     13090    }
     13091
     13092    return detInputExpRowAlloc(det_id, iteration, exp_id, include, accept);
    1412713093}
    1412813094psArray *detInputExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
Note: See TracChangeset for help on using the changeset viewer.