IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 8665


Ignore:
Timestamp:
Aug 28, 2006, 6:44:34 PM (20 years ago)
Author:
jhoblitt
Message:

VERSION 0.0.34

Location:
trunk/ippdb
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippdb/Makefile.am

    r8528 r8665  
    2929    $(top_builddir)/docs/man/man3/p2PendingExpRow.3 \
    3030    $(top_builddir)/docs/man/man3/p2PendingImfileRow.3 \
    31     $(top_builddir)/docs/man/man3/p2DoneExpRow.3 \
    32     $(top_builddir)/docs/man/man3/p2DoneImfileRow.3 \
     31    $(top_builddir)/docs/man/man3/p2ProcessedExpRow.3 \
     32    $(top_builddir)/docs/man/man3/p2ProcessedImfileRow.3 \
    3333    $(top_builddir)/docs/man/man3/p3PendingExpRow.3 \
    3434    $(top_builddir)/docs/man/man3/detRunRow.3 \
     
    4545
    4646
    47 docs/man/man3/ippdb.3 docs/man/man3/weatherRow.3 docs/man/man3/skyp_transparencyRow.3 docs/man/man3/skyp_absorptionRow.3 docs/man/man3/skyp_emissionRow.3 docs/man/man3/dimmRow.3 docs/man/man3/skyp_irRow.3 docs/man/man3/domeRow.3 docs/man/man3/telescopeRow.3 docs/man/man3/summitExpRow.3 docs/man/man3/pzPendingExpRow.3 docs/man/man3/pzPendingImfileRow.3 docs/man/man3/newExpRow.3 docs/man/man3/newImfileRow.3 docs/man/man3/rawDetrendExpRow.3 docs/man/man3/rawScienceExpRow.3 docs/man/man3/rawImfileRow.3 docs/man/man3/p1PendingExpRow.3 docs/man/man3/p2PendingExpRow.3 docs/man/man3/p2PendingImfileRow.3 docs/man/man3/p2DoneExpRow.3 docs/man/man3/p2DoneImfileRow.3 docs/man/man3/p3PendingExpRow.3 docs/man/man3/detRunRow.3 docs/man/man3/detInputExpRow.3 docs/man/man3/detProcessedImfileRow.3 docs/man/man3/detStackedImfileRow.3 docs/man/man3/detNormalizedStatImfileRow.3 docs/man/man3/detNormalizedImfileRow.3 docs/man/man3/detMasterFrameRow.3 docs/man/man3/detMasterImfileRow.3 docs/man/man3/detResidImfileRow.3 docs/man/man3/detResidExpRow.3 docs/man/man3/detRunSummaryRow.3:
     47docs/man/man3/ippdb.3 docs/man/man3/weatherRow.3 docs/man/man3/skyp_transparencyRow.3 docs/man/man3/skyp_absorptionRow.3 docs/man/man3/skyp_emissionRow.3 docs/man/man3/dimmRow.3 docs/man/man3/skyp_irRow.3 docs/man/man3/domeRow.3 docs/man/man3/telescopeRow.3 docs/man/man3/summitExpRow.3 docs/man/man3/pzPendingExpRow.3 docs/man/man3/pzPendingImfileRow.3 docs/man/man3/newExpRow.3 docs/man/man3/newImfileRow.3 docs/man/man3/rawDetrendExpRow.3 docs/man/man3/rawScienceExpRow.3 docs/man/man3/rawImfileRow.3 docs/man/man3/p1PendingExpRow.3 docs/man/man3/p2PendingExpRow.3 docs/man/man3/p2PendingImfileRow.3 docs/man/man3/p2ProcessedExpRow.3 docs/man/man3/p2ProcessedImfileRow.3 docs/man/man3/p3PendingExpRow.3 docs/man/man3/detRunRow.3 docs/man/man3/detInputExpRow.3 docs/man/man3/detProcessedImfileRow.3 docs/man/man3/detStackedImfileRow.3 docs/man/man3/detNormalizedStatImfileRow.3 docs/man/man3/detNormalizedImfileRow.3 docs/man/man3/detMasterFrameRow.3 docs/man/man3/detMasterImfileRow.3 docs/man/man3/detResidImfileRow.3 docs/man/man3/detResidExpRow.3 docs/man/man3/detRunSummaryRow.3:
    4848        $(DOXYGEN)
    4949
  • trunk/ippdb/configure.ac

    r8543 r8665  
     1dnl
     2dnl This file was generated by glueforge 0.24
     3dnl
     4dnl Do NOT directly edit this file.
     5dnl
     6
    17AC_PREREQ(2.59)
    28
    3 AC_INIT([ippdb], [0.0.33], [pan-starrs.ifa.hawaii.edu])
     9AC_INIT([ippdb], [0.0.34], [pan-starrs.ifa.hawaii.edu])
    410AC_CONFIG_SRCDIR([ippdb.pc.in])
    511
  • trunk/ippdb/src/ippdb.c

    r8543 r8665  
     1/*
     2 *
     3 * This file was generated by glueforge 0.24
     4 *
     5 * Do NOT directly edit this file.
     6 *
     7 */
     8
    19#include <stdio.h>
    210
     
    4250#define P2PENDINGIMFILE_TABLE_NAME "p2PendingImfile"
    4351#define P2PENDINGIMFILE_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
    44 #define P2DONEEXP_TABLE_NAME "p2DoneExp"
    45 #define P2DONEEXP_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
    46 #define P2DONEIMFILE_TABLE_NAME "p2DoneImfile"
    47 #define P2DONEIMFILE_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
     52#define P2PROCESSEDEXP_TABLE_NAME "p2ProcessedExp"
     53#define P2PROCESSEDEXP_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
     54#define P2PROCESSEDIMFILE_TABLE_NAME "p2ProcessedImfile"
     55#define P2PROCESSEDIMFILE_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
    4856#define P3PENDINGEXP_TABLE_NAME "p3PendingExp"
    4957#define P3PENDINGEXP_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
     
    562570                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    563571                WEATHER_TABLE_NAME, WEATHER_INDEX_NAME, limit) < 0) {
    564         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     572        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    565573        return false;
    566574    }
     
    11211129                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    11221130                SKYP_TRANSPARENCY_TABLE_NAME, SKYP_TRANSPARENCY_INDEX_NAME, limit) < 0) {
    1123         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     1131        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    11241132        return false;
    11251133    }
     
    17161724                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    17171725                SKYP_ABSORPTION_TABLE_NAME, SKYP_ABSORPTION_INDEX_NAME, limit) < 0) {
    1718         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     1726        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    17191727        return false;
    17201728    }
     
    22792287                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    22802288                SKYP_EMISSION_TABLE_NAME, SKYP_EMISSION_INDEX_NAME, limit) < 0) {
    2281         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     2289        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    22822290        return false;
    22832291    }
     
    28272835                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    28282836                DIMM_TABLE_NAME, DIMM_INDEX_NAME, limit) < 0) {
    2829         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     2837        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    28302838        return false;
    28312839    }
     
    33673375                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    33683376                SKYP_IR_TABLE_NAME, SKYP_IR_INDEX_NAME, limit) < 0) {
    3369         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     3377        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    33703378        return false;
    33713379    }
     
    38603868                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    38613869                DOME_TABLE_NAME, DOME_INDEX_NAME, limit) < 0) {
    3862         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     3870        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    38633871        return false;
    38643872    }
     
    43504358                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    43514359                TELESCOPE_TABLE_NAME, TELESCOPE_INDEX_NAME, limit) < 0) {
    4352         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     4360        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    43534361        return false;
    43544362    }
     
    48554863                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    48564864                SUMMITEXP_TABLE_NAME, SUMMITEXP_INDEX_NAME, limit) < 0) {
    4857         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     4865        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    48584866        return false;
    48594867    }
     
    53595367                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    53605368                PZPENDINGEXP_TABLE_NAME, PZPENDINGEXP_INDEX_NAME, limit) < 0) {
    5361         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     5369        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    53625370        return false;
    53635371    }
     
    58825890                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    58835891                PZPENDINGIMFILE_TABLE_NAME, PZPENDINGIMFILE_INDEX_NAME, limit) < 0) {
    5884         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     5892        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    58855893        return false;
    58865894    }
     
    63976405                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    63986406                NEWEXP_TABLE_NAME, NEWEXP_INDEX_NAME, limit) < 0) {
    6399         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     6407        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    64006408        return false;
    64016409    }
     
    68836891                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    68846892                NEWIMFILE_TABLE_NAME, NEWIMFILE_INDEX_NAME, limit) < 0) {
    6885         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     6893        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    68866894        return false;
    68876895    }
     
    75937601                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    75947602                RAWDETRENDEXP_TABLE_NAME, RAWDETRENDEXP_INDEX_NAME, limit) < 0) {
    7595         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     7603        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    75967604        return false;
    75977605    }
     
    84468454                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    84478455                RAWSCIENCEEXP_TABLE_NAME, RAWSCIENCEEXP_INDEX_NAME, limit) < 0) {
    8448         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     8456        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    84498457        return false;
    84508458    }
     
    93009308                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    93019309                RAWIMFILE_TABLE_NAME, RAWIMFILE_INDEX_NAME, limit) < 0) {
    9302         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     9310        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    93039311        return false;
    93049312    }
     
    98989906                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    98999907                P1PENDINGEXP_TABLE_NAME, P1PENDINGEXP_INDEX_NAME, limit) < 0) {
    9900         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     9908        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    99019909        return false;
    99029910    }
     
    1036010368                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1036110369                P2PENDINGEXP_TABLE_NAME, P2PENDINGEXP_INDEX_NAME, limit) < 0) {
    10362         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     10370        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1036310371        return false;
    1036410372    }
     
    1087110879                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1087210880                P2PENDINGIMFILE_TABLE_NAME, P2PENDINGIMFILE_INDEX_NAME, limit) < 0) {
    10873         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     10881        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1087410882        return false;
    1087510883    }
     
    1109911107    return true;
    1110011108}
    11101 static void p2DoneExpRowFree(p2DoneExpRow *object);
    11102 
    11103 p2DoneExpRow *p2DoneExpRowAlloc(const char *exp_id, const char *recipe, psS32 p1_version, psS32 p2_version)
    11104 {
    11105     p2DoneExpRow    *object;
    11106 
    11107     object = psAlloc(sizeof(p2DoneExpRow));
    11108     psMemSetDeallocator(object, (psFreeFunc)p2DoneExpRowFree);
     11109static void p2ProcessedExpRowFree(p2ProcessedExpRow *object);
     11110
     11111p2ProcessedExpRow *p2ProcessedExpRowAlloc(const char *exp_id, psS32 p1_version, psS32 p2_version)
     11112{
     11113    p2ProcessedExpRow *object;
     11114
     11115    object = psAlloc(sizeof(p2ProcessedExpRow));
     11116    psMemSetDeallocator(object, (psFreeFunc)p2ProcessedExpRowFree);
    1110911117
    1111011118    object->exp_id = psStringCopy(exp_id);
    11111     object->recipe = psStringCopy(recipe);
    1111211119    object->p1_version = p1_version;
    1111311120    object->p2_version = p2_version;
     
    1111611123}
    1111711124
    11118 static void p2DoneExpRowFree(p2DoneExpRow *object)
     11125static void p2ProcessedExpRowFree(p2ProcessedExpRow *object)
    1111911126{
    1112011127    psFree(object->exp_id);
    11121     psFree(object->recipe);
    11122 }
    11123 
    11124 bool p2DoneExpCreateTable(psDB *dbh)
     11128}
     11129
     11130bool p2ProcessedExpCreateTable(psDB *dbh)
    1112511131{
    1112611132    psMetadata      *md;
     
    1112811134
    1112911135    md = psMetadataAlloc();
    11130     if (!psMetadataAdd(md, PS_LIST_TAIL, P2DONEEXP_INDEX_NAME, PS_DATA_S32, "AUTO_INCREMENT", 0.0)) {
    11131         psError(PS_ERR_UNKNOWN, false, "failed to add item %s", P2DONEEXP_INDEX_NAME);
     11136    if (!psMetadataAdd(md, PS_LIST_TAIL, P2PROCESSEDEXP_INDEX_NAME, PS_DATA_S32, "AUTO_INCREMENT", 0.0)) {
     11137        psError(PS_ERR_UNKNOWN, false, "failed to add item %s", P2PROCESSEDEXP_INDEX_NAME);
    1113211138        psFree(md);
    1113311139        return false;
     
    1113811144        return false;
    1113911145    }
    11140     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
    11141         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
    11142         psFree(md);
    11143         return false;
    11144     }
    1114511146    if (!psMetadataAddS32(md, PS_LIST_TAIL, "p1_version", 0, NULL, 0)) {
    1114611147        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
     
    1115411155    }
    1115511156
    11156     status = psDBCreateTable(dbh, P2DONEEXP_TABLE_NAME, md);
     11157    status = psDBCreateTable(dbh, P2PROCESSEDEXP_TABLE_NAME, md);
    1115711158
    1115811159    psFree(md);
     
    1116111162}
    1116211163
    11163 bool p2DoneExpDropTable(psDB *dbh)
    11164 {
    11165     return psDBDropTable(dbh, P2DONEEXP_TABLE_NAME);
    11166 }
    11167 
    11168 bool p2DoneExpInsert(psDB * dbh, const char *exp_id, const char *recipe, psS32 p1_version, psS32 p2_version)
     11164bool p2ProcessedExpDropTable(psDB *dbh)
     11165{
     11166    return psDBDropTable(dbh, P2PROCESSEDEXP_TABLE_NAME);
     11167}
     11168
     11169bool p2ProcessedExpInsert(psDB * dbh, const char *exp_id, psS32 p1_version, psS32 p2_version)
    1116911170{
    1117011171    psMetadata      *md;
     
    1117711178        return false;
    1117811179    }
    11179     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, recipe)) {
    11180         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
    11181         psFree(md);
    11182         return false;
    11183     }
    1118411180    if (!psMetadataAddS32(md, PS_LIST_TAIL, "p1_version", 0, NULL, p1_version)) {
    1118511181        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
     
    1119311189    }
    1119411190
    11195     status = psDBInsertOneRow(dbh, P2DONEEXP_TABLE_NAME, md);
     11191    status = psDBInsertOneRow(dbh, P2PROCESSEDEXP_TABLE_NAME, md);
    1119611192    psFree(md);
    1119711193
     
    1119911195}
    1120011196
    11201 long long p2DoneExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     11197long long p2ProcessedExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
    1120211198{
    1120311199    long long       deleted = 0;
    1120411200
    11205     long long count = psDBDeleteRows(dbh, P2DONEEXP_TABLE_NAME, where, limit);
     11201    long long count = psDBDeleteRows(dbh, P2PROCESSEDEXP_TABLE_NAME, where, limit);
    1120611202    if (count < 0) {
    11207         psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2DoneExp");
     11203        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedExp");
    1120811204        return count;
    1120911205
     
    1121311209    return deleted;
    1121411210}
    11215 bool p2DoneExpPop(psDB *dbh, char **exp_id, char **recipe, psS32 *p1_version, psS32 *p2_version)
     11211bool p2ProcessedExpPop(psDB *dbh, char **exp_id, psS32 *p1_version, psS32 *p2_version)
    1121611212{
    1121711213    psArray         *rowSet;
     
    1122211218    int             rowID;
    1122311219
    11224     rowSet = psDBSelectRows(dbh, P2DONEEXP_TABLE_NAME, NULL, 1);
     11220    rowSet = psDBSelectRows(dbh, P2PROCESSEDEXP_TABLE_NAME, NULL, 1);
    1122511221    if (!rowSet) {
    11226         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", P2DONEEXP_INDEX_NAME);
     11222        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", P2PROCESSEDEXP_INDEX_NAME);
    1122711223        psFree(rowSet);
    1122811224        return NULL;
     
    1123711233    psFree(rowSet);
    1123811234
    11239     rowID = psMetadataLookupS32(&status, row, P2DONEEXP_INDEX_NAME);
    11240     if (!status) {
    11241         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", P2DONEEXP_INDEX_NAME);
     11235    rowID = psMetadataLookupS32(&status, row, P2PROCESSEDEXP_INDEX_NAME);
     11236    if (!status) {
     11237        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", P2PROCESSEDEXP_INDEX_NAME);
    1124211238        psFree(row);
    1124311239        return NULL;
     
    1124511241
    1124611242    popped = psMetadataAlloc();
    11247     psMetadataAddS32(popped, PS_LIST_TAIL, P2DONEEXP_INDEX_NAME, 0, NULL, rowID);
    11248 
    11249     deleted = psDBDeleteRows(dbh, P2DONEEXP_TABLE_NAME, popped, 0);
     11243    psMetadataAddS32(popped, PS_LIST_TAIL, P2PROCESSEDEXP_INDEX_NAME, 0, NULL, rowID);
     11244
     11245    deleted = psDBDeleteRows(dbh, P2PROCESSEDEXP_TABLE_NAME, popped, 0);
    1125011246    if (deleted != 1) {
    1125111247        psError(PS_ERR_UNKNOWN, false, "database failed to delete row");
     
    1126311259        return false;
    1126411260    }
    11265     *recipe = psMetadataLookupPtr(&status, row, "recipe");
    11266     if (!status) {
    11267         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item recipe");
    11268         psFree(row);
    11269         return false;
    11270     }
    1127111261    *p1_version = psMetadataLookupS32(&status, row, "p1_version");
    1127211262    if (!status) {
     
    1128711277}
    1128811278
    11289 bool p2DoneExpInsertObject(psDB *dbh, p2DoneExpRow *object)
    11290 {
    11291     return p2DoneExpInsert(dbh, object->exp_id, object->recipe, object->p1_version, object->p2_version);
    11292 }
    11293 
    11294 bool p2DoneExpInsertObjects(psDB *dbh, psArray *objects)
     11279bool p2ProcessedExpInsertObject(psDB *dbh, p2ProcessedExpRow *object)
     11280{
     11281    return p2ProcessedExpInsert(dbh, object->exp_id, object->p1_version, object->p2_version);
     11282}
     11283
     11284bool p2ProcessedExpInsertObjects(psDB *dbh, psArray *objects)
    1129511285{
    1129611286    for (long i = 0; i < psArrayLength(objects); i++) {
    11297         if (!p2DoneExpInsertObject(dbh, objects->data[i])) {
     11287        if (!p2ProcessedExpInsertObject(dbh, objects->data[i])) {
    1129811288            return false;
    1129911289        }
     
    1130311293}
    1130411294
    11305 p2DoneExpRow *p2DoneExpPopObject(psDB *dbh)
     11295p2ProcessedExpRow *p2ProcessedExpPopObject(psDB *dbh)
    1130611296{
    1130711297    char            exp_id[256];
    11308     char            recipe[256];
    1130911298    psS32           p1_version;
    1131011299    psS32           p2_version;
    1131111300
    11312     if (!p2DoneExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version, &p2_version)) {
     11301    if (!p2ProcessedExpPop(dbh, (char **)&exp_id, &p1_version, &p2_version)) {
    1131311302        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1131411303        return NULL;
    1131511304    }
    1131611305
    11317     return p2DoneExpRowAlloc(exp_id, recipe, p1_version, p2_version);
    11318 }
    11319 
    11320 bool p2DoneExpInsertFits(psDB *dbh, const psFits *fits)
     11306    return p2ProcessedExpRowAlloc(exp_id, p1_version, p2_version);
     11307}
     11308
     11309bool p2ProcessedExpInsertFits(psDB *dbh, const psFits *fits)
    1132111310{
    1132211311    psArray         *rowSet;
    1132311312
    11324     // move to (the first?) extension named  P2DONEEXP_TABLE_NAME
    11325     if (!psFitsMoveExtName(fits, P2DONEEXP_TABLE_NAME)) {
    11326         psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P2DONEEXP_TABLE_NAME);
     11313    // move to (the first?) extension named  P2PROCESSEDEXP_TABLE_NAME
     11314    if (!psFitsMoveExtName(fits, P2PROCESSEDEXP_TABLE_NAME)) {
     11315        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P2PROCESSEDEXP_TABLE_NAME);
    1132711316        return false;
    1132811317    }
     
    1134211331    }
    1134311332
    11344     if (!psDBInsertRows(dbh, P2DONEEXP_TABLE_NAME, rowSet)) {
     11333    if (!psDBInsertRows(dbh, P2PROCESSEDEXP_TABLE_NAME, rowSet)) {
    1134511334        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
    1134611335        psFree(rowSet);
     
    1135311342}
    1135411343
    11355 bool p2DoneExpPopFits(psDB *dbh, psFits *fits, unsigned long long limit)
     11344bool p2ProcessedExpPopFits(psDB *dbh, psFits *fits, unsigned long long limit)
    1135611345{
    1135711346    char            query[MAX_STRING_LENGTH];
    1135811347
    11359     if (!p2DoneExpSelectRowsFits(dbh, fits, NULL, limit)) {
     11348    if (!p2ProcessedExpSelectRowsFits(dbh, fits, NULL, limit)) {
    1136011349        psError(PS_ERR_UNKNOWN, true, "database error or table is empty");
    1136111350        return false;
     
    1136511354    if (snprintf(query, MAX_STRING_LENGTH,
    1136611355                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    11367                 P2DONEEXP_TABLE_NAME, P2DONEEXP_INDEX_NAME, limit) < 0) {
    11368         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     11356                P2PROCESSEDEXP_TABLE_NAME, P2PROCESSEDEXP_INDEX_NAME, limit) < 0) {
     11357        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1136911358        return false;
    1137011359    }
     
    1137811367}
    1137911368
    11380 bool p2DoneExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     11369bool p2ProcessedExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
    1138111370{
    1138211371    psArray         *rowSet;
    1138311372    psU64           i;
    1138411373
    11385     rowSet = psDBSelectRows(dbh, P2DONEEXP_TABLE_NAME, where, limit);
     11374    rowSet = psDBSelectRows(dbh, P2PROCESSEDEXP_TABLE_NAME, where, limit);
    1138611375    if (!rowSet) {
    1138711376        return false;
     
    1139011379    // strip index column
    1139111380    for (i = 0; i < rowSet->n; i++) {
    11392         if (!psMetadataRemove((psMetadata *)rowSet->data[i], 0, P2DONEEXP_INDEX_NAME)) {
    11393             psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", P2DONEEXP_INDEX_NAME);
     11381        if (!psMetadataRemove((psMetadata *)rowSet->data[i], 0, P2PROCESSEDEXP_INDEX_NAME)) {
     11382            psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", P2PROCESSEDEXP_INDEX_NAME);
    1139411383            psFree(rowSet);
    1139511384            return false;
     
    1139811387
    1139911388    // output to fits
    11400     if (!psFitsWriteTable(fits, NULL, rowSet, P2DONEEXP_TABLE_NAME)) {
     11389    if (!psFitsWriteTable(fits, NULL, rowSet, P2PROCESSEDEXP_TABLE_NAME)) {
    1140111390        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
    1140211391        psFree(rowSet);
     
    1140911398}
    1141011399
    11411 psMetadata *p2DoneExpMetadataFromObject(const p2DoneExpRow *object)
     11400psMetadata *p2ProcessedExpMetadataFromObject(const p2ProcessedExpRow *object)
    1141211401{
    1141311402    psMetadata      *md;
     
    1141911408        return NULL;
    1142011409    }
    11421     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
    11422         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
    11423         psFree(md);
    11424         return NULL;
    11425     }
    1142611410    if (!psMetadataAddS32(md, PS_LIST_TAIL, "p1_version", 0, NULL, object->p1_version)) {
    1142711411        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
     
    1143811422}
    1143911423
    11440 p2DoneExpRow *p2DoneExpObjectFromMetadata(psMetadata *md)
     11424p2ProcessedExpRow *p2ProcessedExpObjectFromMetadata(psMetadata *md)
    1144111425{
    1144211426    bool            status;
    1144311427    char            *exp_id;
    11444     char            *recipe;
    1144511428    psS32           p1_version;
    1144611429    psS32           p2_version;
     
    1145111434        return false;
    1145211435    }
    11453     recipe = psMetadataLookupPtr(&status, md, "recipe");
    11454     if (!status) {
    11455         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item recipe");
    11456         return false;
    11457     }
    1145811436    p1_version = psMetadataLookupS32(&status, md, "p1_version");
    1145911437    if (!status) {
     
    1146711445    }
    1146811446
    11469     return p2DoneExpRowAlloc(exp_id, recipe, p1_version, p2_version);
    11470 }
    11471 psArray *p2DoneExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     11447    return p2ProcessedExpRowAlloc(exp_id, p1_version, p2_version);
     11448}
     11449psArray *p2ProcessedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
    1147211450{
    1147311451    psArray         *rowSet;
     
    1147511453    psU64           i;
    1147611454
    11477     rowSet = psDBSelectRows(dbh, P2DONEEXP_TABLE_NAME, where, limit);
     11455    rowSet = psDBSelectRows(dbh, P2PROCESSEDEXP_TABLE_NAME, where, limit);
    1147811456    if (!rowSet) {
    1147911457        return NULL;
     
    1148211460    // strip index column
    1148311461    for (i = 0; i < rowSet->n; i++) {
    11484         if (!psMetadataRemove((psMetadata *)(rowSet->data[i]), 0, P2DONEEXP_INDEX_NAME)) {
    11485             psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", P2DONEEXP_INDEX_NAME);
     11462        if (!psMetadataRemove((psMetadata *)(rowSet->data[i]), 0, P2PROCESSEDEXP_INDEX_NAME)) {
     11463            psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", P2PROCESSEDEXP_INDEX_NAME);
    1148611464            psFree(rowSet);
    1148711465            return false;
     
    1149511473
    1149611474    for (i = 0; i < rowSet->n; i++) {
    11497         p2DoneExpRow *object = p2DoneExpObjectFromMetadata(rowSet->data[i]);
     11475        p2ProcessedExpRow *object = p2ProcessedExpObjectFromMetadata(rowSet->data[i]);
    1149811476        psArrayAdd(returnSet, 0, object);
    1149911477        psFree(object);
     
    1150411482    return returnSet;
    1150511483}
    11506 bool p2DoneExpDeleteObject(psDB *dbh, const p2DoneExpRow *object)
    11507 {
    11508     psMetadata *where = p2DoneExpMetadataFromObject(object);
    11509     long long count = psDBDeleteRows(dbh, P2DONEEXP_TABLE_NAME, where, 0);
     11484bool p2ProcessedExpDeleteObject(psDB *dbh, const p2ProcessedExpRow *object)
     11485{
     11486    psMetadata *where = p2ProcessedExpMetadataFromObject(object);
     11487    long long count = psDBDeleteRows(dbh, P2PROCESSEDEXP_TABLE_NAME, where, 0);
    1151011488    psFree(where)
    1151111489    if (count < 0) {
    11512         psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2DoneExp");
     11490        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedExp");
    1151311491        return false;
    1151411492    }
     
    1151611494        // XXX should this be a psAbort() instead?  It is possible that
    1151711495        // having an object match multiple rows was by design.
    11518         psError(PS_ERR_UNKNOWN, true, "p2DoneExpRow object matched more then one row.  Check your database schema");
    11519         return false;
    11520     }
    11521 
    11522     return true;
    11523 }
    11524 long long p2DoneExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     11496        psError(PS_ERR_UNKNOWN, true, "p2ProcessedExpRow object matched more then one row.  Check your database schema");
     11497        return false;
     11498    }
     11499
     11500    return true;
     11501}
     11502long long p2ProcessedExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
    1152511503{
    1152611504    long long       deleted = 0;
    1152711505
    1152811506    for (long long i = 0; i < objects->n; i++) {
    11529         p2DoneExpRow *object = objects->data[i];
    11530         psMetadata *where = p2DoneExpMetadataFromObject(object);
    11531         long long count = psDBDeleteRows(dbh, P2DONEEXP_TABLE_NAME, where, limit);
     11507        p2ProcessedExpRow *object = objects->data[i];
     11508        psMetadata *where = p2ProcessedExpMetadataFromObject(object);
     11509        long long count = psDBDeleteRows(dbh, P2PROCESSEDEXP_TABLE_NAME, where, limit);
    1153211510        psFree(where)
    1153311511        if (count < 0) {
    11534             psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2DoneExp");
     11512            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedExp");
    1153511513            return count;
    1153611514        }
     
    1154111519    return deleted;
    1154211520}
    11543 bool p2DoneExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
     11521bool p2ProcessedExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
    1154411522{
    1154511523    PS_ASSERT_PTR_NON_NULL(objects, false);
     
    1154711525    psMetadata *output = psMetadataAlloc();
    1154811526    for (long i = 0; i < psArrayLength(objects); i++) {
    11549         psMetadata *md = p2DoneExpMetadataFromObject(objects->data[i]);
     11527        psMetadata *md = p2ProcessedExpMetadataFromObject(objects->data[i]);
    1155011528        if (!psMetadataAddMetadata(
    1155111529            output,
    1155211530            PS_LIST_TAIL,
    11553             P2DONEEXP_TABLE_NAME,
     11531            P2PROCESSEDEXP_TABLE_NAME,
    1155411532            PS_META_DUPLICATE_OK,
    1155511533            NULL,
     
    1157211550    return true;
    1157311551}
    11574 static void p2DoneImfileRowFree(p2DoneImfileRow *object);
    11575 
    11576 p2DoneImfileRow *p2DoneImfileRowAlloc(const char *exp_id, const char *class_id, const char *uri, const char *recipe, psS32 p1_version, psS32 p2_version)
    11577 {
    11578     p2DoneImfileRow *object;
    11579 
    11580     object = psAlloc(sizeof(p2DoneImfileRow));
    11581     psMemSetDeallocator(object, (psFreeFunc)p2DoneImfileRowFree);
     11552static void p2ProcessedImfileRowFree(p2ProcessedImfileRow *object);
     11553
     11554p2ProcessedImfileRow *p2ProcessedImfileRowAlloc(const char *exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *b1_uri, const char *b2_uri, psS32 p1_version, psS32 p2_version)
     11555{
     11556    p2ProcessedImfileRow *object;
     11557
     11558    object = psAlloc(sizeof(p2ProcessedImfileRow));
     11559    psMemSetDeallocator(object, (psFreeFunc)p2ProcessedImfileRowFree);
    1158211560
    1158311561    object->exp_id = psStringCopy(exp_id);
     
    1158511563    object->uri = psStringCopy(uri);
    1158611564    object->recipe = psStringCopy(recipe);
     11565    object->bg = bg;
     11566    object->bg_stdev = bg_stdev;
     11567    object->bg_mean_stdev = bg_mean_stdev;
     11568    object->b1_uri = psStringCopy(b1_uri);
     11569    object->b2_uri = psStringCopy(b2_uri);
    1158711570    object->p1_version = p1_version;
    1158811571    object->p2_version = p2_version;
     
    1159111574}
    1159211575
    11593 static void p2DoneImfileRowFree(p2DoneImfileRow *object)
     11576static void p2ProcessedImfileRowFree(p2ProcessedImfileRow *object)
    1159411577{
    1159511578    psFree(object->exp_id);
     
    1159711580    psFree(object->uri);
    1159811581    psFree(object->recipe);
    11599 }
    11600 
    11601 bool p2DoneImfileCreateTable(psDB *dbh)
     11582    psFree(object->b1_uri);
     11583    psFree(object->b2_uri);
     11584}
     11585
     11586bool p2ProcessedImfileCreateTable(psDB *dbh)
    1160211587{
    1160311588    psMetadata      *md;
     
    1160511590
    1160611591    md = psMetadataAlloc();
    11607     if (!psMetadataAdd(md, PS_LIST_TAIL, P2DONEIMFILE_INDEX_NAME, PS_DATA_S32, "AUTO_INCREMENT", 0.0)) {
    11608         psError(PS_ERR_UNKNOWN, false, "failed to add item %s", P2DONEIMFILE_INDEX_NAME);
     11592    if (!psMetadataAdd(md, PS_LIST_TAIL, P2PROCESSEDIMFILE_INDEX_NAME, PS_DATA_S32, "AUTO_INCREMENT", 0.0)) {
     11593        psError(PS_ERR_UNKNOWN, false, "failed to add item %s", P2PROCESSEDIMFILE_INDEX_NAME);
    1160911594        psFree(md);
    1161011595        return false;
     
    1163011615        return false;
    1163111616    }
     11617    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) {
     11618        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     11619        psFree(md);
     11620        return false;
     11621    }
     11622    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) {
     11623        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     11624        psFree(md);
     11625        return false;
     11626    }
     11627    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) {
     11628        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     11629        psFree(md);
     11630        return false;
     11631    }
     11632    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b1_uri", 0, NULL, "64")) {
     11633        psError(PS_ERR_UNKNOWN, false, "failed to add item b1_uri");
     11634        psFree(md);
     11635        return false;
     11636    }
     11637    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b2_uri", 0, NULL, "64")) {
     11638        psError(PS_ERR_UNKNOWN, false, "failed to add item b2_uri");
     11639        psFree(md);
     11640        return false;
     11641    }
    1163211642    if (!psMetadataAddS32(md, PS_LIST_TAIL, "p1_version", 0, NULL, 0)) {
    1163311643        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
     
    1164111651    }
    1164211652
    11643     status = psDBCreateTable(dbh, P2DONEIMFILE_TABLE_NAME, md);
     11653    status = psDBCreateTable(dbh, P2PROCESSEDIMFILE_TABLE_NAME, md);
    1164411654
    1164511655    psFree(md);
     
    1164811658}
    1164911659
    11650 bool p2DoneImfileDropTable(psDB *dbh)
    11651 {
    11652     return psDBDropTable(dbh, P2DONEIMFILE_TABLE_NAME);
    11653 }
    11654 
    11655 bool p2DoneImfileInsert(psDB * dbh, const char *exp_id, const char *class_id, const char *uri, const char *recipe, psS32 p1_version, psS32 p2_version)
     11660bool p2ProcessedImfileDropTable(psDB *dbh)
     11661{
     11662    return psDBDropTable(dbh, P2PROCESSEDIMFILE_TABLE_NAME);
     11663}
     11664
     11665bool p2ProcessedImfileInsert(psDB * dbh, const char *exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *b1_uri, const char *b2_uri, psS32 p1_version, psS32 p2_version)
    1165611666{
    1165711667    psMetadata      *md;
     
    1167911689        return false;
    1168011690    }
     11691    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) {
     11692        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     11693        psFree(md);
     11694        return false;
     11695    }
     11696    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) {
     11697        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     11698        psFree(md);
     11699        return false;
     11700    }
     11701    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) {
     11702        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     11703        psFree(md);
     11704        return false;
     11705    }
     11706    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b1_uri", 0, NULL, b1_uri)) {
     11707        psError(PS_ERR_UNKNOWN, false, "failed to add item b1_uri");
     11708        psFree(md);
     11709        return false;
     11710    }
     11711    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b2_uri", 0, NULL, b2_uri)) {
     11712        psError(PS_ERR_UNKNOWN, false, "failed to add item b2_uri");
     11713        psFree(md);
     11714        return false;
     11715    }
    1168111716    if (!psMetadataAddS32(md, PS_LIST_TAIL, "p1_version", 0, NULL, p1_version)) {
    1168211717        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
     
    1169011725    }
    1169111726
    11692     status = psDBInsertOneRow(dbh, P2DONEIMFILE_TABLE_NAME, md);
     11727    status = psDBInsertOneRow(dbh, P2PROCESSEDIMFILE_TABLE_NAME, md);
    1169311728    psFree(md);
    1169411729
     
    1169611731}
    1169711732
    11698 long long p2DoneImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     11733long long p2ProcessedImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
    1169911734{
    1170011735    long long       deleted = 0;
    1170111736
    11702     long long count = psDBDeleteRows(dbh, P2DONEIMFILE_TABLE_NAME, where, limit);
     11737    long long count = psDBDeleteRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, where, limit);
    1170311738    if (count < 0) {
    11704         psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2DoneImfile");
     11739        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedImfile");
    1170511740        return count;
    1170611741
     
    1171011745    return deleted;
    1171111746}
    11712 bool p2DoneImfilePop(psDB *dbh, char **exp_id, char **class_id, char **uri, char **recipe, psS32 *p1_version, psS32 *p2_version)
     11747bool p2ProcessedImfilePop(psDB *dbh, char **exp_id, char **class_id, char **uri, char **recipe, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, char **b1_uri, char **b2_uri, psS32 *p1_version, psS32 *p2_version)
    1171311748{
    1171411749    psArray         *rowSet;
     
    1171911754    int             rowID;
    1172011755
    11721     rowSet = psDBSelectRows(dbh, P2DONEIMFILE_TABLE_NAME, NULL, 1);
     11756    rowSet = psDBSelectRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, NULL, 1);
    1172211757    if (!rowSet) {
    11723         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", P2DONEIMFILE_INDEX_NAME);
     11758        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", P2PROCESSEDIMFILE_INDEX_NAME);
    1172411759        psFree(rowSet);
    1172511760        return NULL;
     
    1173411769    psFree(rowSet);
    1173511770
    11736     rowID = psMetadataLookupS32(&status, row, P2DONEIMFILE_INDEX_NAME);
    11737     if (!status) {
    11738         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", P2DONEIMFILE_INDEX_NAME);
     11771    rowID = psMetadataLookupS32(&status, row, P2PROCESSEDIMFILE_INDEX_NAME);
     11772    if (!status) {
     11773        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", P2PROCESSEDIMFILE_INDEX_NAME);
    1173911774        psFree(row);
    1174011775        return NULL;
     
    1174211777
    1174311778    popped = psMetadataAlloc();
    11744     psMetadataAddS32(popped, PS_LIST_TAIL, P2DONEIMFILE_INDEX_NAME, 0, NULL, rowID);
    11745 
    11746     deleted = psDBDeleteRows(dbh, P2DONEIMFILE_TABLE_NAME, popped, 0);
     11779    psMetadataAddS32(popped, PS_LIST_TAIL, P2PROCESSEDIMFILE_INDEX_NAME, 0, NULL, rowID);
     11780
     11781    deleted = psDBDeleteRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, popped, 0);
    1174711782    if (deleted != 1) {
    1174811783        psError(PS_ERR_UNKNOWN, false, "database failed to delete row");
     
    1177811813        return false;
    1177911814    }
     11815    *bg = psMetadataLookupF64(&status, row, "bg");
     11816    if (!status) {
     11817        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     11818        psFree(row);
     11819        return false;
     11820    }
     11821    *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev");
     11822    if (!status) {
     11823        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     11824        psFree(row);
     11825        return false;
     11826    }
     11827    *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev");
     11828    if (!status) {
     11829        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     11830        psFree(row);
     11831        return false;
     11832    }
     11833    *b1_uri = psMetadataLookupPtr(&status, row, "b1_uri");
     11834    if (!status) {
     11835        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item b1_uri");
     11836        psFree(row);
     11837        return false;
     11838    }
     11839    *b2_uri = psMetadataLookupPtr(&status, row, "b2_uri");
     11840    if (!status) {
     11841        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item b2_uri");
     11842        psFree(row);
     11843        return false;
     11844    }
    1178011845    *p1_version = psMetadataLookupS32(&status, row, "p1_version");
    1178111846    if (!status) {
     
    1179611861}
    1179711862
    11798 bool p2DoneImfileInsertObject(psDB *dbh, p2DoneImfileRow *object)
    11799 {
    11800     return p2DoneImfileInsert(dbh, object->exp_id, object->class_id, object->uri, object->recipe, object->p1_version, object->p2_version);
    11801 }
    11802 
    11803 bool p2DoneImfileInsertObjects(psDB *dbh, psArray *objects)
     11863bool p2ProcessedImfileInsertObject(psDB *dbh, p2ProcessedImfileRow *object)
     11864{
     11865    return p2ProcessedImfileInsert(dbh, object->exp_id, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->b1_uri, object->b2_uri, object->p1_version, object->p2_version);
     11866}
     11867
     11868bool p2ProcessedImfileInsertObjects(psDB *dbh, psArray *objects)
    1180411869{
    1180511870    for (long i = 0; i < psArrayLength(objects); i++) {
    11806         if (!p2DoneImfileInsertObject(dbh, objects->data[i])) {
     11871        if (!p2ProcessedImfileInsertObject(dbh, objects->data[i])) {
    1180711872            return false;
    1180811873        }
     
    1181211877}
    1181311878
    11814 p2DoneImfileRow *p2DoneImfilePopObject(psDB *dbh)
     11879p2ProcessedImfileRow *p2ProcessedImfilePopObject(psDB *dbh)
    1181511880{
    1181611881    char            exp_id[256];
     
    1181811883    char            uri[256];
    1181911884    char            recipe[256];
     11885    psF64           bg;
     11886    psF64           bg_stdev;
     11887    psF64           bg_mean_stdev;
     11888    char            b1_uri[256];
     11889    char            b2_uri[256];
    1182011890    psS32           p1_version;
    1182111891    psS32           p2_version;
    1182211892
    11823     if (!p2DoneImfilePop(dbh, (char **)&exp_id, (char **)&class_id, (char **)&uri, (char **)&recipe, &p1_version, &p2_version)) {
     11893    if (!p2ProcessedImfilePop(dbh, (char **)&exp_id, (char **)&class_id, (char **)&uri, (char **)&recipe, &bg, &bg_stdev, &bg_mean_stdev, (char **)&b1_uri, (char **)&b2_uri, &p1_version, &p2_version)) {
    1182411894        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1182511895        return NULL;
    1182611896    }
    1182711897
    11828     return p2DoneImfileRowAlloc(exp_id, class_id, uri, recipe, p1_version, p2_version);
    11829 }
    11830 
    11831 bool p2DoneImfileInsertFits(psDB *dbh, const psFits *fits)
     11898    return p2ProcessedImfileRowAlloc(exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, b1_uri, b2_uri, p1_version, p2_version);
     11899}
     11900
     11901bool p2ProcessedImfileInsertFits(psDB *dbh, const psFits *fits)
    1183211902{
    1183311903    psArray         *rowSet;
    1183411904
    11835     // move to (the first?) extension named  P2DONEIMFILE_TABLE_NAME
    11836     if (!psFitsMoveExtName(fits, P2DONEIMFILE_TABLE_NAME)) {
    11837         psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P2DONEIMFILE_TABLE_NAME);
     11905    // move to (the first?) extension named  P2PROCESSEDIMFILE_TABLE_NAME
     11906    if (!psFitsMoveExtName(fits, P2PROCESSEDIMFILE_TABLE_NAME)) {
     11907        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P2PROCESSEDIMFILE_TABLE_NAME);
    1183811908        return false;
    1183911909    }
     
    1185311923    }
    1185411924
    11855     if (!psDBInsertRows(dbh, P2DONEIMFILE_TABLE_NAME, rowSet)) {
     11925    if (!psDBInsertRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, rowSet)) {
    1185611926        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
    1185711927        psFree(rowSet);
     
    1186411934}
    1186511935
    11866 bool p2DoneImfilePopFits(psDB *dbh, psFits *fits, unsigned long long limit)
     11936bool p2ProcessedImfilePopFits(psDB *dbh, psFits *fits, unsigned long long limit)
    1186711937{
    1186811938    char            query[MAX_STRING_LENGTH];
    1186911939
    11870     if (!p2DoneImfileSelectRowsFits(dbh, fits, NULL, limit)) {
     11940    if (!p2ProcessedImfileSelectRowsFits(dbh, fits, NULL, limit)) {
    1187111941        psError(PS_ERR_UNKNOWN, true, "database error or table is empty");
    1187211942        return false;
     
    1187611946    if (snprintf(query, MAX_STRING_LENGTH,
    1187711947                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    11878                 P2DONEIMFILE_TABLE_NAME, P2DONEIMFILE_INDEX_NAME, limit) < 0) {
    11879         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     11948                P2PROCESSEDIMFILE_TABLE_NAME, P2PROCESSEDIMFILE_INDEX_NAME, limit) < 0) {
     11949        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1188011950        return false;
    1188111951    }
     
    1188911959}
    1189011960
    11891 bool p2DoneImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     11961bool p2ProcessedImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
    1189211962{
    1189311963    psArray         *rowSet;
    1189411964    psU64           i;
    1189511965
    11896     rowSet = psDBSelectRows(dbh, P2DONEIMFILE_TABLE_NAME, where, limit);
     11966    rowSet = psDBSelectRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, where, limit);
    1189711967    if (!rowSet) {
    1189811968        return false;
     
    1190111971    // strip index column
    1190211972    for (i = 0; i < rowSet->n; i++) {
    11903         if (!psMetadataRemove((psMetadata *)rowSet->data[i], 0, P2DONEIMFILE_INDEX_NAME)) {
    11904             psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", P2DONEIMFILE_INDEX_NAME);
     11973        if (!psMetadataRemove((psMetadata *)rowSet->data[i], 0, P2PROCESSEDIMFILE_INDEX_NAME)) {
     11974            psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", P2PROCESSEDIMFILE_INDEX_NAME);
    1190511975            psFree(rowSet);
    1190611976            return false;
     
    1190911979
    1191011980    // output to fits
    11911     if (!psFitsWriteTable(fits, NULL, rowSet, P2DONEIMFILE_TABLE_NAME)) {
     11981    if (!psFitsWriteTable(fits, NULL, rowSet, P2PROCESSEDIMFILE_TABLE_NAME)) {
    1191211982        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
    1191311983        psFree(rowSet);
     
    1192011990}
    1192111991
    11922 psMetadata *p2DoneImfileMetadataFromObject(const p2DoneImfileRow *object)
     11992psMetadata *p2ProcessedImfileMetadataFromObject(const p2ProcessedImfileRow *object)
    1192311993{
    1192411994    psMetadata      *md;
     
    1194512015        return NULL;
    1194612016    }
     12017    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) {
     12018        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     12019        psFree(md);
     12020        return NULL;
     12021    }
     12022    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) {
     12023        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     12024        psFree(md);
     12025        return NULL;
     12026    }
     12027    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) {
     12028        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     12029        psFree(md);
     12030        return NULL;
     12031    }
     12032    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b1_uri", 0, NULL, object->b1_uri)) {
     12033        psError(PS_ERR_UNKNOWN, false, "failed to add item b1_uri");
     12034        psFree(md);
     12035        return NULL;
     12036    }
     12037    if (!psMetadataAddStr(md, PS_LIST_TAIL, "b2_uri", 0, NULL, object->b2_uri)) {
     12038        psError(PS_ERR_UNKNOWN, false, "failed to add item b2_uri");
     12039        psFree(md);
     12040        return NULL;
     12041    }
    1194712042    if (!psMetadataAddS32(md, PS_LIST_TAIL, "p1_version", 0, NULL, object->p1_version)) {
    1194812043        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
     
    1195912054}
    1196012055
    11961 p2DoneImfileRow *p2DoneImfileObjectFromMetadata(psMetadata *md)
     12056p2ProcessedImfileRow *p2ProcessedImfileObjectFromMetadata(psMetadata *md)
    1196212057{
    1196312058    bool            status;
     
    1196612061    char            *uri;
    1196712062    char            *recipe;
     12063    psF64           bg;
     12064    psF64           bg_stdev;
     12065    psF64           bg_mean_stdev;
     12066    char            *b1_uri;
     12067    char            *b2_uri;
    1196812068    psS32           p1_version;
    1196912069    psS32           p2_version;
     
    1198912089        return false;
    1199012090    }
     12091    bg = psMetadataLookupF64(&status, md, "bg");
     12092    if (!status) {
     12093        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     12094        return false;
     12095    }
     12096    bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
     12097    if (!status) {
     12098        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     12099        return false;
     12100    }
     12101    bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
     12102    if (!status) {
     12103        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     12104        return false;
     12105    }
     12106    b1_uri = psMetadataLookupPtr(&status, md, "b1_uri");
     12107    if (!status) {
     12108        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item b1_uri");
     12109        return false;
     12110    }
     12111    b2_uri = psMetadataLookupPtr(&status, md, "b2_uri");
     12112    if (!status) {
     12113        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item b2_uri");
     12114        return false;
     12115    }
    1199112116    p1_version = psMetadataLookupS32(&status, md, "p1_version");
    1199212117    if (!status) {
     
    1200012125    }
    1200112126
    12002     return p2DoneImfileRowAlloc(exp_id, class_id, uri, recipe, p1_version, p2_version);
    12003 }
    12004 psArray *p2DoneImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     12127    return p2ProcessedImfileRowAlloc(exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, b1_uri, b2_uri, p1_version, p2_version);
     12128}
     12129psArray *p2ProcessedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
    1200512130{
    1200612131    psArray         *rowSet;
     
    1200812133    psU64           i;
    1200912134
    12010     rowSet = psDBSelectRows(dbh, P2DONEIMFILE_TABLE_NAME, where, limit);
     12135    rowSet = psDBSelectRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, where, limit);
    1201112136    if (!rowSet) {
    1201212137        return NULL;
     
    1201512140    // strip index column
    1201612141    for (i = 0; i < rowSet->n; i++) {
    12017         if (!psMetadataRemove((psMetadata *)(rowSet->data[i]), 0, P2DONEIMFILE_INDEX_NAME)) {
    12018             psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", P2DONEIMFILE_INDEX_NAME);
     12142        if (!psMetadataRemove((psMetadata *)(rowSet->data[i]), 0, P2PROCESSEDIMFILE_INDEX_NAME)) {
     12143            psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", P2PROCESSEDIMFILE_INDEX_NAME);
    1201912144            psFree(rowSet);
    1202012145            return false;
     
    1202812153
    1202912154    for (i = 0; i < rowSet->n; i++) {
    12030         p2DoneImfileRow *object = p2DoneImfileObjectFromMetadata(rowSet->data[i]);
     12155        p2ProcessedImfileRow *object = p2ProcessedImfileObjectFromMetadata(rowSet->data[i]);
    1203112156        psArrayAdd(returnSet, 0, object);
    1203212157        psFree(object);
     
    1203712162    return returnSet;
    1203812163}
    12039 bool p2DoneImfileDeleteObject(psDB *dbh, const p2DoneImfileRow *object)
    12040 {
    12041     psMetadata *where = p2DoneImfileMetadataFromObject(object);
    12042     long long count = psDBDeleteRows(dbh, P2DONEIMFILE_TABLE_NAME, where, 0);
     12164bool p2ProcessedImfileDeleteObject(psDB *dbh, const p2ProcessedImfileRow *object)
     12165{
     12166    psMetadata *where = p2ProcessedImfileMetadataFromObject(object);
     12167    long long count = psDBDeleteRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, where, 0);
    1204312168    psFree(where)
    1204412169    if (count < 0) {
    12045         psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2DoneImfile");
     12170        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedImfile");
    1204612171        return false;
    1204712172    }
     
    1204912174        // XXX should this be a psAbort() instead?  It is possible that
    1205012175        // having an object match multiple rows was by design.
    12051         psError(PS_ERR_UNKNOWN, true, "p2DoneImfileRow object matched more then one row.  Check your database schema");
    12052         return false;
    12053     }
    12054 
    12055     return true;
    12056 }
    12057 long long p2DoneImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     12176        psError(PS_ERR_UNKNOWN, true, "p2ProcessedImfileRow object matched more then one row.  Check your database schema");
     12177        return false;
     12178    }
     12179
     12180    return true;
     12181}
     12182long long p2ProcessedImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
    1205812183{
    1205912184    long long       deleted = 0;
    1206012185
    1206112186    for (long long i = 0; i < objects->n; i++) {
    12062         p2DoneImfileRow *object = objects->data[i];
    12063         psMetadata *where = p2DoneImfileMetadataFromObject(object);
    12064         long long count = psDBDeleteRows(dbh, P2DONEIMFILE_TABLE_NAME, where, limit);
     12187        p2ProcessedImfileRow *object = objects->data[i];
     12188        psMetadata *where = p2ProcessedImfileMetadataFromObject(object);
     12189        long long count = psDBDeleteRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, where, limit);
    1206512190        psFree(where)
    1206612191        if (count < 0) {
    12067             psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2DoneImfile");
     12192            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedImfile");
    1206812193            return count;
    1206912194        }
     
    1207412199    return deleted;
    1207512200}
    12076 bool p2DoneImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
     12201bool p2ProcessedImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
    1207712202{
    1207812203    PS_ASSERT_PTR_NON_NULL(objects, false);
     
    1208012205    psMetadata *output = psMetadataAlloc();
    1208112206    for (long i = 0; i < psArrayLength(objects); i++) {
    12082         psMetadata *md = p2DoneImfileMetadataFromObject(objects->data[i]);
     12207        psMetadata *md = p2ProcessedImfileMetadataFromObject(objects->data[i]);
    1208312208        if (!psMetadataAddMetadata(
    1208412209            output,
    1208512210            PS_LIST_TAIL,
    12086             P2DONEIMFILE_TABLE_NAME,
     12211            P2PROCESSEDIMFILE_TABLE_NAME,
    1208712212            PS_META_DUPLICATE_OK,
    1208812213            NULL,
     
    1210712232static void p3PendingExpRowFree(p3PendingExpRow *object);
    1210812233
    12109 p3PendingExpRow *p3PendingExpRowAlloc(const char *exp_id, const char *recipe, psS32 p2_version, psS32 p3_version)
     12234p3PendingExpRow *p3PendingExpRowAlloc(const char *exp_id, psS32 p2_version, psS32 p3_version)
    1211012235{
    1211112236    p3PendingExpRow *object;
     
    1211512240
    1211612241    object->exp_id = psStringCopy(exp_id);
    12117     object->recipe = psStringCopy(recipe);
    1211812242    object->p2_version = p2_version;
    1211912243    object->p3_version = p3_version;
     
    1212512249{
    1212612250    psFree(object->exp_id);
    12127     psFree(object->recipe);
    1212812251}
    1212912252
     
    1214412267        return false;
    1214512268    }
    12146     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
    12147         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
    12148         psFree(md);
    12149         return false;
    12150     }
    1215112269    if (!psMetadataAddS32(md, PS_LIST_TAIL, "p2_version", 0, NULL, 0)) {
    1215212270        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
     
    1217212290}
    1217312291
    12174 bool p3PendingExpInsert(psDB * dbh, const char *exp_id, const char *recipe, psS32 p2_version, psS32 p3_version)
     12292bool p3PendingExpInsert(psDB * dbh, const char *exp_id, psS32 p2_version, psS32 p3_version)
    1217512293{
    1217612294    psMetadata      *md;
     
    1218012298    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, exp_id)) {
    1218112299        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
    12182         psFree(md);
    12183         return false;
    12184     }
    12185     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, recipe)) {
    12186         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
    1218712300        psFree(md);
    1218812301        return false;
     
    1221912332    return deleted;
    1222012333}
    12221 bool p3PendingExpPop(psDB *dbh, char **exp_id, char **recipe, psS32 *p2_version, psS32 *p3_version)
     12334bool p3PendingExpPop(psDB *dbh, char **exp_id, psS32 *p2_version, psS32 *p3_version)
    1222212335{
    1222312336    psArray         *rowSet;
     
    1226912382        return false;
    1227012383    }
    12271     *recipe = psMetadataLookupPtr(&status, row, "recipe");
    12272     if (!status) {
    12273         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item recipe");
    12274         psFree(row);
    12275         return false;
    12276     }
    1227712384    *p2_version = psMetadataLookupS32(&status, row, "p2_version");
    1227812385    if (!status) {
     
    1229512402bool p3PendingExpInsertObject(psDB *dbh, p3PendingExpRow *object)
    1229612403{
    12297     return p3PendingExpInsert(dbh, object->exp_id, object->recipe, object->p2_version, object->p3_version);
     12404    return p3PendingExpInsert(dbh, object->exp_id, object->p2_version, object->p3_version);
    1229812405}
    1229912406
     
    1231212419{
    1231312420    char            exp_id[256];
    12314     char            recipe[256];
    1231512421    psS32           p2_version;
    1231612422    psS32           p3_version;
    1231712423
    12318     if (!p3PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p2_version, &p3_version)) {
     12424    if (!p3PendingExpPop(dbh, (char **)&exp_id, &p2_version, &p3_version)) {
    1231912425        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1232012426        return NULL;
    1232112427    }
    1232212428
    12323     return p3PendingExpRowAlloc(exp_id, recipe, p2_version, p3_version);
     12429    return p3PendingExpRowAlloc(exp_id, p2_version, p3_version);
    1232412430}
    1232512431
     
    1237212478                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1237312479                P3PENDINGEXP_TABLE_NAME, P3PENDINGEXP_INDEX_NAME, limit) < 0) {
    12374         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     12480        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1237512481        return false;
    1237612482    }
     
    1242512531        return NULL;
    1242612532    }
    12427     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
    12428         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
    12429         psFree(md);
    12430         return NULL;
    12431     }
    1243212533    if (!psMetadataAddS32(md, PS_LIST_TAIL, "p2_version", 0, NULL, object->p2_version)) {
    1243312534        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
     
    1244812549    bool            status;
    1244912550    char            *exp_id;
    12450     char            *recipe;
    1245112551    psS32           p2_version;
    1245212552    psS32           p3_version;
     
    1245712557        return false;
    1245812558    }
    12459     recipe = psMetadataLookupPtr(&status, md, "recipe");
    12460     if (!status) {
    12461         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item recipe");
    12462         return false;
    12463     }
    1246412559    p2_version = psMetadataLookupS32(&status, md, "p2_version");
    1246512560    if (!status) {
     
    1247312568    }
    1247412569
    12475     return p3PendingExpRowAlloc(exp_id, recipe, p2_version, p3_version);
     12570    return p3PendingExpRowAlloc(exp_id, p2_version, p3_version);
    1247612571}
    1247712572psArray *p3PendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1280812903                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1280912904                DETRUN_TABLE_NAME, DETRUN_INDEX_NAME, limit) < 0) {
    12810         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     12905        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1281112906        return false;
    1281212907    }
     
    1325813353                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1325913354                DETINPUTEXP_TABLE_NAME, DETINPUTEXP_INDEX_NAME, limit) < 0) {
    13260         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     13355        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1326113356        return false;
    1326213357    }
     
    1380513900                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1380613901                DETPROCESSEDIMFILE_TABLE_NAME, DETPROCESSEDIMFILE_INDEX_NAME, limit) < 0) {
    13807         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     13902        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1380813903        return false;
    1380913904    }
     
    1441314508                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1441414509                DETSTACKEDIMFILE_TABLE_NAME, DETSTACKEDIMFILE_INDEX_NAME, limit) < 0) {
    14415         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     14510        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1441614511        return false;
    1441714512    }
     
    1494015035                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1494115036                DETNORMALIZEDSTATIMFILE_TABLE_NAME, DETNORMALIZEDSTATIMFILE_INDEX_NAME, limit) < 0) {
    14942         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     15037        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1494315038        return false;
    1494415039    }
     
    1541315508                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1541415509                DETNORMALIZEDIMFILE_TABLE_NAME, DETNORMALIZEDIMFILE_INDEX_NAME, limit) < 0) {
    15415         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     15510        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1541615511        return false;
    1541715512    }
     
    1586715962                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1586815963                DETMASTERFRAME_TABLE_NAME, DETMASTERFRAME_INDEX_NAME, limit) < 0) {
    15869         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     15964        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1587015965        return false;
    1587115966    }
     
    1633016425                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1633116426                DETMASTERIMFILE_TABLE_NAME, DETMASTERIMFILE_INDEX_NAME, limit) < 0) {
    16332         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     16427        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1633316428        return false;
    1633416429    }
     
    1693317028                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1693417029                DETRESIDIMFILE_TABLE_NAME, DETRESIDIMFILE_INDEX_NAME, limit) < 0) {
    16935         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     17030        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1693617031        return false;
    1693717032    }
     
    1759317688                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1759417689                DETRESIDEXP_TABLE_NAME, DETRESIDEXP_INDEX_NAME, limit) < 0) {
    17595         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     17690        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1759617691        return false;
    1759717692    }
     
    1816618261                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    1816718262                DETRUNSUMMARY_TABLE_NAME, DETRUNSUMMARY_INDEX_NAME, limit) < 0) {
    18168         psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
     18263        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %d bytes", MAX_STRING_LENGTH);
    1816918264        return false;
    1817018265    }
  • trunk/ippdb/src/ippdb.h

    r8543 r8665  
     1/*
     2 *
     3 * This file was generated by glueforge 0.24
     4 *
     5 * Do NOT directly edit this file.
     6 *
     7 */
     8
    19#ifndef IPPDB_H
    210#define IPPDB_H 1
     
    46664674    bool            mdcf                ///< format as mdconfig or simple
    46674675);
    4668 /** p2DoneExpRow data structure
    4669  *
    4670  * Structure for representing a single row of p2DoneExp table data.
     4676/** p2ProcessedExpRow data structure
     4677 *
     4678 * Structure for representing a single row of p2ProcessedExp table data.
    46714679 */
    46724680
    46734681typedef struct {
    46744682    char            *exp_id;
    4675     char            *recipe;
    46764683    psS32           p1_version;
    46774684    psS32           p2_version;
    4678 } p2DoneExpRow;
    4679 
    4680 /** Creates a new p2DoneExpRow object
    4681  *
    4682  *  @return A new p2DoneExpRow object or NULL on failure.
    4683  */
    4684 
    4685 p2DoneExpRow *p2DoneExpRowAlloc(
     4685} p2ProcessedExpRow;
     4686
     4687/** Creates a new p2ProcessedExpRow object
     4688 *
     4689 *  @return A new p2ProcessedExpRow object or NULL on failure.
     4690 */
     4691
     4692p2ProcessedExpRow *p2ProcessedExpRowAlloc(
    46864693    const char      *exp_id,
    4687     const char      *recipe,
    46884694    psS32           p1_version,
    46894695    psS32           p2_version
    46904696);
    46914697
    4692 /** Creates a new p2DoneExp table
    4693  *
    4694  * @return true on success
    4695  */
    4696 
    4697 bool p2DoneExpCreateTable(
    4698     psDB            *dbh                ///< Database handle
    4699 );
    4700 
    4701 /** Deletes a p2DoneExp table
    4702  *
    4703  * @return true on success
    4704  */
    4705 
    4706 bool p2DoneExpDropTable(
     4698/** Creates a new p2ProcessedExp table
     4699 *
     4700 * @return true on success
     4701 */
     4702
     4703bool p2ProcessedExpCreateTable(
     4704    psDB            *dbh                ///< Database handle
     4705);
     4706
     4707/** Deletes a p2ProcessedExp table
     4708 *
     4709 * @return true on success
     4710 */
     4711
     4712bool p2ProcessedExpDropTable(
    47074713    psDB            *dbh                ///< Database handle
    47084714);
     
    47154721 */
    47164722
    4717 bool p2DoneExpInsert(
     4723bool p2ProcessedExpInsert(
    47184724    psDB            *dbh,               ///< Database handle
    47194725    const char      *exp_id,
    4720     const char      *recipe,
    47214726    psS32           p1_version,
    47224727    psS32           p2_version
     
    47284733 */
    47294734
    4730 long long p2DoneExpDelete(
     4735long long p2ProcessedExpDelete(
    47314736    psDB            *dbh,               ///< Database handle
    47324737    const psMetadata *where,            ///< Row match criteria
     
    47394744 */
    47404745
    4741 bool p2DoneExpPop(
     4746bool p2ProcessedExpPop(
    47424747    psDB            *dbh,               ///< Database handle
    47434748    char            **exp_id,
    4744     char            **recipe,
    47454749    psS32           *p1_version,
    47464750    psS32           *p2_version
    47474751);
    47484752
    4749 /** Insert a single p2DoneExpRow object into a table
     4753/** Insert a single p2ProcessedExpRow object into a table
    47504754 *
    47514755 * This function constructs and inserts a single row based on it's parameters.
     
    47544758 */
    47554759
    4756 bool p2DoneExpInsertObject(
    4757     psDB            *dbh,               ///< Database handle
    4758     p2DoneExpRow    *object             ///< p2DoneExpRow object
    4759 );
    4760 
    4761 /** Insert an array of p2DoneExpRow object into a table
     4760bool p2ProcessedExpInsertObject(
     4761    psDB            *dbh,               ///< Database handle
     4762    p2ProcessedExpRow *object             ///< p2ProcessedExpRow object
     4763);
     4764
     4765/** Insert an array of p2ProcessedExpRow object into a table
    47624766 *
    47634767 * This function constructs and inserts multiple rows based on it's parameters.
     
    47664770 */
    47674771
    4768 bool p2DoneExpInsertObjects(
    4769     psDB            *dbh,               ///< Database handle
    4770     psArray         *objects            ///< array of p2DoneExpRow objects
     4772bool p2ProcessedExpInsertObjects(
     4773    psDB            *dbh,               ///< Database handle
     4774    psArray         *objects            ///< array of p2ProcessedExpRow objects
    47714775);
    47724776
    47734777/** Removes the last row from the database and returns it
    47744778 *
    4775  * @return A new p2DoneExpRow on success or NULL on failure.
    4776  */
    4777 
    4778 p2DoneExpRow *p2DoneExpPopObject(
    4779     psDB            *dbh                ///< Database handle
    4780 );
    4781 
    4782 /** Insert data from a binary FITS table p2DoneExpRow into the database
     4779 * @return A new p2ProcessedExpRow on success or NULL on failure.
     4780 */
     4781
     4782p2ProcessedExpRow *p2ProcessedExpPopObject(
     4783    psDB            *dbh                ///< Database handle
     4784);
     4785
     4786/** Insert data from a binary FITS table p2ProcessedExpRow into the database
    47834787 *
    47844788 * This function expects a psFits object with a FITS table as the first
     
    47904794 */
    47914795
    4792 bool p2DoneExpInsertFits(
     4796bool p2ProcessedExpInsertFits(
    47934797    psDB            *dbh,               ///< Database handle
    47944798    const psFits    *fits               ///< psFits object
     
    48034807 */
    48044808
    4805 bool p2DoneExpPopFits(
     4809bool p2ProcessedExpPopFits(
    48064810    psDB            *dbh,               ///< Database handle
    48074811    psFits          *fits,              ///< psFits object
     
    48194823 */
    48204824
    4821 bool p2DoneExpSelectRowsFits(
     4825bool p2ProcessedExpSelectRowsFits(
    48224826    psDB            *dbh,               ///< Database handle
    48234827    psFits          *fits,              ///< psFits object
     
    48264830);
    48274831
    4828 /** Convert a p2DoneExpRow into an equivalent psMetadata
     4832/** Convert a p2ProcessedExpRow into an equivalent psMetadata
    48294833 *
    48304834 * @return A psMetadata pointer or NULL on error
    48314835 */
    48324836
    4833 psMetadata *p2DoneExpMetadataFromObject(
    4834     const p2DoneExpRow *object             ///< fooRow to convert into a psMetadata
     4837psMetadata *p2ProcessedExpMetadataFromObject(
     4838    const p2ProcessedExpRow *object             ///< fooRow to convert into a psMetadata
    48354839);
    48364840
    48374841/** Convert a psMetadata into an equivalent fooRow
    48384842 *
    4839  * @return A p2DoneExpRow pointer or NULL on error
    4840  */
    4841 
    4842 p2DoneExpRow *p2DoneExpObjectFromMetadata(
     4843 * @return A p2ProcessedExpRow pointer or NULL on error
     4844 */
     4845
     4846p2ProcessedExpRow *p2ProcessedExpObjectFromMetadata(
    48434847    psMetadata      *md                 ///< psMetadata to convert into a fooRow
    48444848);
    4845 /** Selects up to limit rows from the database and returns as p2DoneExpRow objects in a psArray
     4849/** Selects up to limit rows from the database and returns as p2ProcessedExpRow objects in a psArray
    48464850 *
    48474851 *  See psDBSelectRows() for documentation on the format of where.
     
    48504854 */
    48514855
    4852 psArray *p2DoneExpSelectRowObjects(
    4853     psDB            *dbh,               ///< Database handle
    4854     const psMetadata *where,            ///< Row match criteria
    4855     unsigned long long limit            ///< Maximum number of elements to return
    4856 );
    4857 /** Deletes a row from the database coresponding to an p2DoneExp
     4856psArray *p2ProcessedExpSelectRowObjects(
     4857    psDB            *dbh,               ///< Database handle
     4858    const psMetadata *where,            ///< Row match criteria
     4859    unsigned long long limit            ///< Maximum number of elements to return
     4860);
     4861/** Deletes a row from the database coresponding to an p2ProcessedExp
    48584862 *
    48594863 *  Note that a 'where' search psMetadata is constructed from each object and
     
    48634867 */
    48644868
    4865 bool p2DoneExpDeleteObject(
    4866     psDB            *dbh,               ///< Database handle
    4867     const p2DoneExpRow *object    ///< Object to delete
     4869bool p2ProcessedExpDeleteObject(
     4870    psDB            *dbh,               ///< Database handle
     4871    const p2ProcessedExpRow *object    ///< Object to delete
    48684872);
    48694873/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     
    48754879 */
    48764880
    4877 long long p2DoneExpDeleteRowObjects(
     4881long long p2ProcessedExpDeleteRowObjects(
    48784882    psDB            *dbh,               ///< Database handle
    48794883    const psArray   *objects,           ///< Array of objects to delete
    48804884    unsigned long long limit            ///< Maximum number of elements to delete
    48814885);
    4882 /** Formats and prints an array of p2DoneExpRow objects
     4886/** Formats and prints an array of p2ProcessedExpRow objects
    48834887 *
    48844888 * When mdcf is set the formated output is in psMetadataConfig
     
    48884892 */
    48894893
    4890 bool p2DoneExpPrintObjects(
     4894bool p2ProcessedExpPrintObjects(
    48914895    FILE            *stream,            ///< a stream
    4892     psArray         *objects,           ///< An array of p2DoneExpRow objects
     4896    psArray         *objects,           ///< An array of p2ProcessedExpRow objects
    48934897    bool            mdcf                ///< format as mdconfig or simple
    48944898);
    4895 /** p2DoneImfileRow data structure
    4896  *
    4897  * Structure for representing a single row of p2DoneImfile table data.
     4899/** p2ProcessedImfileRow data structure
     4900 *
     4901 * Structure for representing a single row of p2ProcessedImfile table data.
    48984902 */
    48994903
     
    49034907    char            *uri;
    49044908    char            *recipe;
     4909    psF64           bg;
     4910    psF64           bg_stdev;
     4911    psF64           bg_mean_stdev;
     4912    char            *b1_uri;
     4913    char            *b2_uri;
    49054914    psS32           p1_version;
    49064915    psS32           p2_version;
    4907 } p2DoneImfileRow;
    4908 
    4909 /** Creates a new p2DoneImfileRow object
    4910  *
    4911  *  @return A new p2DoneImfileRow object or NULL on failure.
    4912  */
    4913 
    4914 p2DoneImfileRow *p2DoneImfileRowAlloc(
     4916} p2ProcessedImfileRow;
     4917
     4918/** Creates a new p2ProcessedImfileRow object
     4919 *
     4920 *  @return A new p2ProcessedImfileRow object or NULL on failure.
     4921 */
     4922
     4923p2ProcessedImfileRow *p2ProcessedImfileRowAlloc(
    49154924    const char      *exp_id,
    49164925    const char      *class_id,
    49174926    const char      *uri,
    49184927    const char      *recipe,
     4928    psF64           bg,
     4929    psF64           bg_stdev,
     4930    psF64           bg_mean_stdev,
     4931    const char      *b1_uri,
     4932    const char      *b2_uri,
    49194933    psS32           p1_version,
    49204934    psS32           p2_version
    49214935);
    49224936
    4923 /** Creates a new p2DoneImfile table
    4924  *
    4925  * @return true on success
    4926  */
    4927 
    4928 bool p2DoneImfileCreateTable(
    4929     psDB            *dbh                ///< Database handle
    4930 );
    4931 
    4932 /** Deletes a p2DoneImfile table
    4933  *
    4934  * @return true on success
    4935  */
    4936 
    4937 bool p2DoneImfileDropTable(
     4937/** Creates a new p2ProcessedImfile table
     4938 *
     4939 * @return true on success
     4940 */
     4941
     4942bool p2ProcessedImfileCreateTable(
     4943    psDB            *dbh                ///< Database handle
     4944);
     4945
     4946/** Deletes a p2ProcessedImfile table
     4947 *
     4948 * @return true on success
     4949 */
     4950
     4951bool p2ProcessedImfileDropTable(
    49384952    psDB            *dbh                ///< Database handle
    49394953);
     
    49464960 */
    49474961
    4948 bool p2DoneImfileInsert(
     4962bool p2ProcessedImfileInsert(
    49494963    psDB            *dbh,               ///< Database handle
    49504964    const char      *exp_id,
     
    49524966    const char      *uri,
    49534967    const char      *recipe,
     4968    psF64           bg,
     4969    psF64           bg_stdev,
     4970    psF64           bg_mean_stdev,
     4971    const char      *b1_uri,
     4972    const char      *b2_uri,
    49544973    psS32           p1_version,
    49554974    psS32           p2_version
     
    49614980 */
    49624981
    4963 long long p2DoneImfileDelete(
     4982long long p2ProcessedImfileDelete(
    49644983    psDB            *dbh,               ///< Database handle
    49654984    const psMetadata *where,            ///< Row match criteria
     
    49724991 */
    49734992
    4974 bool p2DoneImfilePop(
     4993bool p2ProcessedImfilePop(
    49754994    psDB            *dbh,               ///< Database handle
    49764995    char            **exp_id,
     
    49784997    char            **uri,
    49794998    char            **recipe,
     4999    psF64           *bg,
     5000    psF64           *bg_stdev,
     5001    psF64           *bg_mean_stdev,
     5002    char            **b1_uri,
     5003    char            **b2_uri,
    49805004    psS32           *p1_version,
    49815005    psS32           *p2_version
    49825006);
    49835007
    4984 /** Insert a single p2DoneImfileRow object into a table
     5008/** Insert a single p2ProcessedImfileRow object into a table
    49855009 *
    49865010 * This function constructs and inserts a single row based on it's parameters.
     
    49895013 */
    49905014
    4991 bool p2DoneImfileInsertObject(
    4992     psDB            *dbh,               ///< Database handle
    4993     p2DoneImfileRow *object             ///< p2DoneImfileRow object
    4994 );
    4995 
    4996 /** Insert an array of p2DoneImfileRow object into a table
     5015bool p2ProcessedImfileInsertObject(
     5016    psDB            *dbh,               ///< Database handle
     5017    p2ProcessedImfileRow *object             ///< p2ProcessedImfileRow object
     5018);
     5019
     5020/** Insert an array of p2ProcessedImfileRow object into a table
    49975021 *
    49985022 * This function constructs and inserts multiple rows based on it's parameters.
     
    50015025 */
    50025026
    5003 bool p2DoneImfileInsertObjects(
    5004     psDB            *dbh,               ///< Database handle
    5005     psArray         *objects            ///< array of p2DoneImfileRow objects
     5027bool p2ProcessedImfileInsertObjects(
     5028    psDB            *dbh,               ///< Database handle
     5029    psArray         *objects            ///< array of p2ProcessedImfileRow objects
    50065030);
    50075031
    50085032/** Removes the last row from the database and returns it
    50095033 *
    5010  * @return A new p2DoneImfileRow on success or NULL on failure.
    5011  */
    5012 
    5013 p2DoneImfileRow *p2DoneImfilePopObject(
    5014     psDB            *dbh                ///< Database handle
    5015 );
    5016 
    5017 /** Insert data from a binary FITS table p2DoneImfileRow into the database
     5034 * @return A new p2ProcessedImfileRow on success or NULL on failure.
     5035 */
     5036
     5037p2ProcessedImfileRow *p2ProcessedImfilePopObject(
     5038    psDB            *dbh                ///< Database handle
     5039);
     5040
     5041/** Insert data from a binary FITS table p2ProcessedImfileRow into the database
    50185042 *
    50195043 * This function expects a psFits object with a FITS table as the first
     
    50255049 */
    50265050
    5027 bool p2DoneImfileInsertFits(
     5051bool p2ProcessedImfileInsertFits(
    50285052    psDB            *dbh,               ///< Database handle
    50295053    const psFits    *fits               ///< psFits object
     
    50385062 */
    50395063
    5040 bool p2DoneImfilePopFits(
     5064bool p2ProcessedImfilePopFits(
    50415065    psDB            *dbh,               ///< Database handle
    50425066    psFits          *fits,              ///< psFits object
     
    50545078 */
    50555079
    5056 bool p2DoneImfileSelectRowsFits(
     5080bool p2ProcessedImfileSelectRowsFits(
    50575081    psDB            *dbh,               ///< Database handle
    50585082    psFits          *fits,              ///< psFits object
     
    50615085);
    50625086
    5063 /** Convert a p2DoneImfileRow into an equivalent psMetadata
     5087/** Convert a p2ProcessedImfileRow into an equivalent psMetadata
    50645088 *
    50655089 * @return A psMetadata pointer or NULL on error
    50665090 */
    50675091
    5068 psMetadata *p2DoneImfileMetadataFromObject(
    5069     const p2DoneImfileRow *object             ///< fooRow to convert into a psMetadata
     5092psMetadata *p2ProcessedImfileMetadataFromObject(
     5093    const p2ProcessedImfileRow *object             ///< fooRow to convert into a psMetadata
    50705094);
    50715095
    50725096/** Convert a psMetadata into an equivalent fooRow
    50735097 *
    5074  * @return A p2DoneImfileRow pointer or NULL on error
    5075  */
    5076 
    5077 p2DoneImfileRow *p2DoneImfileObjectFromMetadata(
     5098 * @return A p2ProcessedImfileRow pointer or NULL on error
     5099 */
     5100
     5101p2ProcessedImfileRow *p2ProcessedImfileObjectFromMetadata(
    50785102    psMetadata      *md                 ///< psMetadata to convert into a fooRow
    50795103);
    5080 /** Selects up to limit rows from the database and returns as p2DoneImfileRow objects in a psArray
     5104/** Selects up to limit rows from the database and returns as p2ProcessedImfileRow objects in a psArray
    50815105 *
    50825106 *  See psDBSelectRows() for documentation on the format of where.
     
    50855109 */
    50865110
    5087 psArray *p2DoneImfileSelectRowObjects(
    5088     psDB            *dbh,               ///< Database handle
    5089     const psMetadata *where,            ///< Row match criteria
    5090     unsigned long long limit            ///< Maximum number of elements to return
    5091 );
    5092 /** Deletes a row from the database coresponding to an p2DoneImfile
     5111psArray *p2ProcessedImfileSelectRowObjects(
     5112    psDB            *dbh,               ///< Database handle
     5113    const psMetadata *where,            ///< Row match criteria
     5114    unsigned long long limit            ///< Maximum number of elements to return
     5115);
     5116/** Deletes a row from the database coresponding to an p2ProcessedImfile
    50935117 *
    50945118 *  Note that a 'where' search psMetadata is constructed from each object and
     
    50985122 */
    50995123
    5100 bool p2DoneImfileDeleteObject(
    5101     psDB            *dbh,               ///< Database handle
    5102     const p2DoneImfileRow *object    ///< Object to delete
     5124bool p2ProcessedImfileDeleteObject(
     5125    psDB            *dbh,               ///< Database handle
     5126    const p2ProcessedImfileRow *object    ///< Object to delete
    51035127);
    51045128/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     
    51105134 */
    51115135
    5112 long long p2DoneImfileDeleteRowObjects(
     5136long long p2ProcessedImfileDeleteRowObjects(
    51135137    psDB            *dbh,               ///< Database handle
    51145138    const psArray   *objects,           ///< Array of objects to delete
    51155139    unsigned long long limit            ///< Maximum number of elements to delete
    51165140);
    5117 /** Formats and prints an array of p2DoneImfileRow objects
     5141/** Formats and prints an array of p2ProcessedImfileRow objects
    51185142 *
    51195143 * When mdcf is set the formated output is in psMetadataConfig
     
    51235147 */
    51245148
    5125 bool p2DoneImfilePrintObjects(
     5149bool p2ProcessedImfilePrintObjects(
    51265150    FILE            *stream,            ///< a stream
    5127     psArray         *objects,           ///< An array of p2DoneImfileRow objects
     5151    psArray         *objects,           ///< An array of p2ProcessedImfileRow objects
    51285152    bool            mdcf                ///< format as mdconfig or simple
    51295153);
     
    51355159typedef struct {
    51365160    char            *exp_id;
    5137     char            *recipe;
    51385161    psS32           p2_version;
    51395162    psS32           p3_version;
     
    51475170p3PendingExpRow *p3PendingExpRowAlloc(
    51485171    const char      *exp_id,
    5149     const char      *recipe,
    51505172    psS32           p2_version,
    51515173    psS32           p3_version
     
    51805202    psDB            *dbh,               ///< Database handle
    51815203    const char      *exp_id,
    5182     const char      *recipe,
    51835204    psS32           p2_version,
    51845205    psS32           p3_version
     
    52045225    psDB            *dbh,               ///< Database handle
    52055226    char            **exp_id,
    5206     char            **recipe,
    52075227    psS32           *p2_version,
    52085228    psS32           *p3_version
  • trunk/ippdb/tests/alloc.c

    r8543 r8665  
    815815
    816816    {
    817         p2DoneExpRow    *object;
    818 
    819         object = p2DoneExpRowAlloc("a string", "a string", -32, -32    );
    820 
    821         if (!object) {
    822             exit(EXIT_FAILURE);
    823         }
    824 
    825         if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
     817        p2ProcessedExpRow *object;
     818
     819        object = p2ProcessedExpRowAlloc("a string", -32, -32    );
     820
     821        if (!object) {
     822            exit(EXIT_FAILURE);
     823        }
     824
     825        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
     826            psFree(object);
     827            exit(EXIT_FAILURE);
     828        }
     829        if (!object->p1_version == -32) {
     830            psFree(object);
     831            exit(EXIT_FAILURE);
     832        }
     833        if (!object->p2_version == -32) {
     834            psFree(object);
     835            exit(EXIT_FAILURE);
     836        }
     837
     838        psFree(object);
     839    }
     840
     841    {
     842        p2ProcessedImfileRow *object;
     843
     844        object = p2ProcessedImfileRowAlloc("a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string", -32, -32    );
     845
     846        if (!object) {
     847            exit(EXIT_FAILURE);
     848        }
     849
     850        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
     851            psFree(object);
     852            exit(EXIT_FAILURE);
     853        }
     854        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     855            psFree(object);
     856            exit(EXIT_FAILURE);
     857        }
     858        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    826859            psFree(object);
    827860            exit(EXIT_FAILURE);
     
    831864            exit(EXIT_FAILURE);
    832865        }
     866        if (!object->bg == 64.64) {
     867            psFree(object);
     868            exit(EXIT_FAILURE);
     869        }
     870        if (!object->bg_stdev == 64.64) {
     871            psFree(object);
     872            exit(EXIT_FAILURE);
     873        }
     874        if (!object->bg_mean_stdev == 64.64) {
     875            psFree(object);
     876            exit(EXIT_FAILURE);
     877        }
     878        if (strncmp(object->b1_uri, "a string", MAX_STRING_LENGTH)) {
     879            psFree(object);
     880            exit(EXIT_FAILURE);
     881        }
     882        if (strncmp(object->b2_uri, "a string", MAX_STRING_LENGTH)) {
     883            psFree(object);
     884            exit(EXIT_FAILURE);
     885        }
    833886        if (!object->p1_version == -32) {
    834887            psFree(object);
     
    844897
    845898    {
    846         p2DoneImfileRow *object;
    847 
    848         object = p2DoneImfileRowAlloc("a string", "a string", "a string", "a string", -32, -32    );
    849 
    850         if (!object) {
    851             exit(EXIT_FAILURE);
    852         }
    853 
    854         if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    855             psFree(object);
    856             exit(EXIT_FAILURE);
    857         }
    858         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    859             psFree(object);
    860             exit(EXIT_FAILURE);
    861         }
    862         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    863             psFree(object);
    864             exit(EXIT_FAILURE);
    865         }
    866         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    867             psFree(object);
    868             exit(EXIT_FAILURE);
    869         }
    870         if (!object->p1_version == -32) {
    871             psFree(object);
    872             exit(EXIT_FAILURE);
    873         }
    874         if (!object->p2_version == -32) {
    875             psFree(object);
    876             exit(EXIT_FAILURE);
    877         }
    878 
    879         psFree(object);
    880     }
    881 
    882     {
    883899        p3PendingExpRow *object;
    884900
    885         object = p3PendingExpRowAlloc("a string", "a string", -32, -32    );
    886 
    887         if (!object) {
    888             exit(EXIT_FAILURE);
    889         }
    890 
    891         if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    892             psFree(object);
    893             exit(EXIT_FAILURE);
    894         }
    895         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
     901        object = p3PendingExpRowAlloc("a string", -32, -32    );
     902
     903        if (!object) {
     904            exit(EXIT_FAILURE);
     905        }
     906
     907        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    896908            psFree(object);
    897909            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/createtable.c

    r8528 r8665  
    298298        }
    299299
    300         if(!p2DoneExpCreateTable(dbh)) {
    301             exit(EXIT_FAILURE);
    302         }
    303 
    304         psDBCleanup(dbh);
    305     }
    306 
    307     {
    308         psDB            *dbh;
    309 
    310         dbh = psDBInit("localhost", "test", NULL, "test");
    311         if (!dbh) {
    312             exit(EXIT_FAILURE);
    313         }
    314 
    315         if(!p2DoneImfileCreateTable(dbh)) {
     300        if(!p2ProcessedExpCreateTable(dbh)) {
     301            exit(EXIT_FAILURE);
     302        }
     303
     304        psDBCleanup(dbh);
     305    }
     306
     307    {
     308        psDB            *dbh;
     309
     310        dbh = psDBInit("localhost", "test", NULL, "test");
     311        if (!dbh) {
     312            exit(EXIT_FAILURE);
     313        }
     314
     315        if(!p2ProcessedImfileCreateTable(dbh)) {
    316316            exit(EXIT_FAILURE);
    317317        }
  • trunk/ippdb/tests/dbcleanup.c

    r8528 r8665  
    3030    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p2PendingExp");
    3131    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p2PendingImfile");
    32     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p2DoneExp");
    33     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p2DoneImfile");
     32    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p2ProcessedExp");
     33    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p2ProcessedImfile");
    3434    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p3PendingExp");
    3535    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detRun");
  • trunk/ippdb/tests/dbsetup.c

    r8528 r8665  
    7070    p2PendingImfileCreateTable(dbh);
    7171
    72     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p2DoneExp");
    73     p2DoneExpCreateTable(dbh);
     72    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p2ProcessedExp");
     73    p2ProcessedExpCreateTable(dbh);
    7474
    75     p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p2DoneImfile");
    76     p2DoneImfileCreateTable(dbh);
     75    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p2ProcessedImfile");
     76    p2ProcessedImfileCreateTable(dbh);
    7777
    7878    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p3PendingExp");
  • trunk/ippdb/tests/droptable.c

    r8528 r8665  
    298298        }
    299299
    300         if (!p2DoneExpDropTable(dbh)) {
    301             exit(EXIT_FAILURE);
    302         }
    303 
    304         psDBCleanup(dbh);
    305     }
    306 
    307     {
    308         psDB            *dbh;
    309 
    310         dbh = psDBInit("localhost", "test", NULL, "test");
    311         if (!dbh) {
    312             exit(EXIT_FAILURE);
    313         }
    314 
    315         if (!p2DoneImfileDropTable(dbh)) {
     300        if (!p2ProcessedExpDropTable(dbh)) {
     301            exit(EXIT_FAILURE);
     302        }
     303
     304        psDBCleanup(dbh);
     305    }
     306
     307    {
     308        psDB            *dbh;
     309
     310        dbh = psDBInit("localhost", "test", NULL, "test");
     311        if (!dbh) {
     312            exit(EXIT_FAILURE);
     313        }
     314
     315        if (!p2ProcessedImfileDropTable(dbh)) {
    316316            exit(EXIT_FAILURE);
    317317        }
  • trunk/ippdb/tests/insert.c

    r8543 r8665  
    298298        }
    299299
    300         if (!p2DoneExpInsert(dbh, "a string", "a string", -32, -32)) {
    301             exit(EXIT_FAILURE);
    302         }
    303 
    304         psDBCleanup(dbh);
    305     }
    306 
    307     {
    308         psDB            *dbh;
    309 
    310         dbh = psDBInit("localhost", "test", NULL, "test");
    311         if (!dbh) {
    312             exit(EXIT_FAILURE);
    313         }
    314 
    315         if (!p2DoneImfileInsert(dbh, "a string", "a string", "a string", "a string", -32, -32)) {
    316             exit(EXIT_FAILURE);
    317         }
    318 
    319         psDBCleanup(dbh);
    320     }
    321 
    322     {
    323         psDB            *dbh;
    324 
    325         dbh = psDBInit("localhost", "test", NULL, "test");
    326         if (!dbh) {
    327             exit(EXIT_FAILURE);
    328         }
    329 
    330         if (!p3PendingExpInsert(dbh, "a string", "a string", -32, -32)) {
     300        if (!p2ProcessedExpInsert(dbh, "a string", -32, -32)) {
     301            exit(EXIT_FAILURE);
     302        }
     303
     304        psDBCleanup(dbh);
     305    }
     306
     307    {
     308        psDB            *dbh;
     309
     310        dbh = psDBInit("localhost", "test", NULL, "test");
     311        if (!dbh) {
     312            exit(EXIT_FAILURE);
     313        }
     314
     315        if (!p2ProcessedImfileInsert(dbh, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string", -32, -32)) {
     316            exit(EXIT_FAILURE);
     317        }
     318
     319        psDBCleanup(dbh);
     320    }
     321
     322    {
     323        psDB            *dbh;
     324
     325        dbh = psDBInit("localhost", "test", NULL, "test");
     326        if (!dbh) {
     327            exit(EXIT_FAILURE);
     328        }
     329
     330        if (!p3PendingExpInsert(dbh, "a string", -32, -32)) {
    331331            exit(EXIT_FAILURE);
    332332        }
  • trunk/ippdb/tests/insertfits.c

    r8528 r8665  
    518518        }
    519519
    520         if (!p2DoneExpInsertFits(dbh, fits)) {
    521             exit(EXIT_FAILURE);
    522         }
    523 
    524         if (!psFitsClose(fits)) {
    525             exit(EXIT_FAILURE);
    526         }
    527 
    528         psDBCleanup(dbh);
    529     }
    530 
    531     {
    532         psDB            *dbh;
    533         psFits          *fits;
    534 
    535         dbh = psDBInit("localhost", "test", NULL, "test");
    536         if (!dbh) {
    537             exit(EXIT_FAILURE);
    538         }
    539 
    540         // open a temp
    541         fits = psFitsOpen(TMP_FILENAME, "r");
    542         if (!fits) {
    543             exit(EXIT_FAILURE);
    544         }
    545 
    546         if (!p2DoneImfileInsertFits(dbh, fits)) {
     520        if (!p2ProcessedExpInsertFits(dbh, fits)) {
     521            exit(EXIT_FAILURE);
     522        }
     523
     524        if (!psFitsClose(fits)) {
     525            exit(EXIT_FAILURE);
     526        }
     527
     528        psDBCleanup(dbh);
     529    }
     530
     531    {
     532        psDB            *dbh;
     533        psFits          *fits;
     534
     535        dbh = psDBInit("localhost", "test", NULL, "test");
     536        if (!dbh) {
     537            exit(EXIT_FAILURE);
     538        }
     539
     540        // open a temp
     541        fits = psFitsOpen(TMP_FILENAME, "r");
     542        if (!fits) {
     543            exit(EXIT_FAILURE);
     544        }
     545
     546        if (!p2ProcessedImfileInsertFits(dbh, fits)) {
    547547            exit(EXIT_FAILURE);
    548548        }
  • trunk/ippdb/tests/insertobject.c

    r8543 r8665  
    425425    {
    426426        psDB            *dbh;
    427         p2DoneExpRow    *object;
    428 
    429         dbh = psDBInit("localhost", "test", NULL, "test");
    430         if (!dbh) {
    431             exit(EXIT_FAILURE);
    432         }
    433 
    434         object = p2DoneExpRowAlloc("a string", "a string", -32, -32);
    435         if (!object) {
    436             exit(EXIT_FAILURE);
    437         }
    438 
    439         if (!p2DoneExpInsertObject(dbh, object)) {
    440             exit(EXIT_FAILURE);
    441         }
    442 
    443         psFree(object);
    444         psDBCleanup(dbh);
    445     }
    446 
    447     {
    448         psDB            *dbh;
    449         p2DoneImfileRow *object;
    450 
    451         dbh = psDBInit("localhost", "test", NULL, "test");
    452         if (!dbh) {
    453             exit(EXIT_FAILURE);
    454         }
    455 
    456         object = p2DoneImfileRowAlloc("a string", "a string", "a string", "a string", -32, -32);
    457         if (!object) {
    458             exit(EXIT_FAILURE);
    459         }
    460 
    461         if (!p2DoneImfileInsertObject(dbh, object)) {
     427        p2ProcessedExpRow *object;
     428
     429        dbh = psDBInit("localhost", "test", NULL, "test");
     430        if (!dbh) {
     431            exit(EXIT_FAILURE);
     432        }
     433
     434        object = p2ProcessedExpRowAlloc("a string", -32, -32);
     435        if (!object) {
     436            exit(EXIT_FAILURE);
     437        }
     438
     439        if (!p2ProcessedExpInsertObject(dbh, object)) {
     440            exit(EXIT_FAILURE);
     441        }
     442
     443        psFree(object);
     444        psDBCleanup(dbh);
     445    }
     446
     447    {
     448        psDB            *dbh;
     449        p2ProcessedImfileRow *object;
     450
     451        dbh = psDBInit("localhost", "test", NULL, "test");
     452        if (!dbh) {
     453            exit(EXIT_FAILURE);
     454        }
     455
     456        object = p2ProcessedImfileRowAlloc("a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string", -32, -32);
     457        if (!object) {
     458            exit(EXIT_FAILURE);
     459        }
     460
     461        if (!p2ProcessedImfileInsertObject(dbh, object)) {
    462462            exit(EXIT_FAILURE);
    463463        }
     
    476476        }
    477477
    478         object = p3PendingExpRowAlloc("a string", "a string", -32, -32);
     478        object = p3PendingExpRowAlloc("a string", -32, -32);
    479479        if (!object) {
    480480            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/metadatafromobject.c

    r8543 r8665  
    969969    {
    970970        psMetadata      *md;
    971         p2DoneExpRow    *object;
    972         bool            status;
    973 
    974         object = p2DoneExpRowAlloc("a string", "a string", -32, -32);
    975         if (!object) {
    976             exit(EXIT_FAILURE);
    977         }
    978 
    979         md = p2DoneExpMetadataFromObject(object);
    980         if (!md) {
    981             exit(EXIT_FAILURE);
    982         }
    983 
    984         psFree(object);
    985 
    986         if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
     971        p2ProcessedExpRow *object;
     972        bool            status;
     973
     974        object = p2ProcessedExpRowAlloc("a string", -32, -32);
     975        if (!object) {
     976            exit(EXIT_FAILURE);
     977        }
     978
     979        md = p2ProcessedExpMetadataFromObject(object);
     980        if (!md) {
     981            exit(EXIT_FAILURE);
     982        }
     983
     984        psFree(object);
     985
     986        if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
     987            psFree(md);
     988            exit(EXIT_FAILURE);
     989        }
     990        if (!psMetadataLookupS32(&status, md, "p1_version") == -32) {
     991            psFree(md);
     992            exit(EXIT_FAILURE);
     993        }
     994        if (!psMetadataLookupS32(&status, md, "p2_version") == -32) {
     995            psFree(md);
     996            exit(EXIT_FAILURE);
     997        }
     998
     999        psFree(md);
     1000    }
     1001
     1002    {
     1003        psMetadata      *md;
     1004        p2ProcessedImfileRow *object;
     1005        bool            status;
     1006
     1007        object = p2ProcessedImfileRowAlloc("a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string", -32, -32);
     1008        if (!object) {
     1009            exit(EXIT_FAILURE);
     1010        }
     1011
     1012        md = p2ProcessedImfileMetadataFromObject(object);
     1013        if (!md) {
     1014            exit(EXIT_FAILURE);
     1015        }
     1016
     1017        psFree(object);
     1018
     1019        if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
     1020            psFree(md);
     1021            exit(EXIT_FAILURE);
     1022        }
     1023        if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
     1024            psFree(md);
     1025            exit(EXIT_FAILURE);
     1026        }
     1027        if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    9871028            psFree(md);
    9881029            exit(EXIT_FAILURE);
     
    9921033            exit(EXIT_FAILURE);
    9931034        }
     1035        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
     1036            psFree(md);
     1037            exit(EXIT_FAILURE);
     1038        }
     1039        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
     1040            psFree(md);
     1041            exit(EXIT_FAILURE);
     1042        }
     1043        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
     1044            psFree(md);
     1045            exit(EXIT_FAILURE);
     1046        }
     1047        if (strncmp(psMetadataLookupPtr(&status, md, "b1_uri"), "a string", MAX_STRING_LENGTH)) {
     1048            psFree(md);
     1049            exit(EXIT_FAILURE);
     1050        }
     1051        if (strncmp(psMetadataLookupPtr(&status, md, "b2_uri"), "a string", MAX_STRING_LENGTH)) {
     1052            psFree(md);
     1053            exit(EXIT_FAILURE);
     1054        }
    9941055        if (!psMetadataLookupS32(&status, md, "p1_version") == -32) {
    9951056            psFree(md);
     
    10061067    {
    10071068        psMetadata      *md;
    1008         p2DoneImfileRow *object;
    1009         bool            status;
    1010 
    1011         object = p2DoneImfileRowAlloc("a string", "a string", "a string", "a string", -32, -32);
    1012         if (!object) {
    1013             exit(EXIT_FAILURE);
    1014         }
    1015 
    1016         md = p2DoneImfileMetadataFromObject(object);
    1017         if (!md) {
    1018             exit(EXIT_FAILURE);
    1019         }
    1020 
    1021         psFree(object);
    1022 
    1023         if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
    1024             psFree(md);
    1025             exit(EXIT_FAILURE);
    1026         }
    1027         if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {
    1028             psFree(md);
    1029             exit(EXIT_FAILURE);
    1030         }
    1031         if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {
    1032             psFree(md);
    1033             exit(EXIT_FAILURE);
    1034         }
    1035         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    1036             psFree(md);
    1037             exit(EXIT_FAILURE);
    1038         }
    1039         if (!psMetadataLookupS32(&status, md, "p1_version") == -32) {
    1040             psFree(md);
    1041             exit(EXIT_FAILURE);
    1042         }
    1043         if (!psMetadataLookupS32(&status, md, "p2_version") == -32) {
    1044             psFree(md);
    1045             exit(EXIT_FAILURE);
    1046         }
    1047 
    1048         psFree(md);
    1049     }
    1050 
    1051     {
    1052         psMetadata      *md;
    10531069        p3PendingExpRow *object;
    10541070        bool            status;
    10551071
    1056         object = p3PendingExpRowAlloc("a string", "a string", -32, -32);
     1072        object = p3PendingExpRowAlloc("a string", -32, -32);
    10571073        if (!object) {
    10581074            exit(EXIT_FAILURE);
     
    10671083
    10681084        if (strncmp(psMetadataLookupPtr(&status, md, "exp_id"), "a string", MAX_STRING_LENGTH)) {
    1069             psFree(md);
    1070             exit(EXIT_FAILURE);
    1071         }
    1072         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
    10731085            psFree(md);
    10741086            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/objectfrommetadata.c

    r8543 r8665  
    14721472    {
    14731473        psMetadata      *md;
    1474         p2DoneExpRow    *object;
     1474        p2ProcessedExpRow *object;
    14751475
    14761476        md = psMetadataAlloc();
     
    14791479            exit(EXIT_FAILURE);
    14801480        }
     1481        if (!psMetadataAddS32(md, PS_LIST_TAIL, "p1_version", 0, NULL, -32)) {
     1482            psFree(md);
     1483            exit(EXIT_FAILURE);
     1484        }
     1485        if (!psMetadataAddS32(md, PS_LIST_TAIL, "p2_version", 0, NULL, -32)) {
     1486            psFree(md);
     1487            exit(EXIT_FAILURE);
     1488        }
     1489
     1490        object = p2ProcessedExpObjectFromMetadata(md);
     1491        if (!object) {
     1492            psFree(md);
     1493            exit(EXIT_FAILURE);
     1494        }
     1495
     1496        psFree(md);
     1497
     1498        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
     1499            psFree(object);
     1500            exit(EXIT_FAILURE);
     1501        }
     1502        if (!object->p1_version == -32) {
     1503            psFree(object);
     1504            exit(EXIT_FAILURE);
     1505        }
     1506        if (!object->p2_version == -32) {
     1507            psFree(object);
     1508            exit(EXIT_FAILURE);
     1509        }
     1510
     1511        psFree(object);
     1512    }
     1513
     1514    {
     1515        psMetadata      *md;
     1516        p2ProcessedImfileRow *object;
     1517
     1518        md = psMetadataAlloc();
     1519        if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, "a string")) {
     1520            psFree(md);
     1521            exit(EXIT_FAILURE);
     1522        }
     1523        if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
     1524            psFree(md);
     1525            exit(EXIT_FAILURE);
     1526        }
     1527        if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
     1528            psFree(md);
     1529            exit(EXIT_FAILURE);
     1530        }
    14811531        if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
    14821532            psFree(md);
    14831533            exit(EXIT_FAILURE);
    14841534        }
     1535        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 64.64)) {
     1536            psFree(md);
     1537            exit(EXIT_FAILURE);
     1538        }
     1539        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 64.64)) {
     1540            psFree(md);
     1541            exit(EXIT_FAILURE);
     1542        }
     1543        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 64.64)) {
     1544            psFree(md);
     1545            exit(EXIT_FAILURE);
     1546        }
     1547        if (!psMetadataAddStr(md, PS_LIST_TAIL, "b1_uri", 0, NULL, "a string")) {
     1548            psFree(md);
     1549            exit(EXIT_FAILURE);
     1550        }
     1551        if (!psMetadataAddStr(md, PS_LIST_TAIL, "b2_uri", 0, NULL, "a string")) {
     1552            psFree(md);
     1553            exit(EXIT_FAILURE);
     1554        }
    14851555        if (!psMetadataAddS32(md, PS_LIST_TAIL, "p1_version", 0, NULL, -32)) {
    14861556            psFree(md);
     
    14921562        }
    14931563
    1494         object = p2DoneExpObjectFromMetadata(md);
     1564        object = p2ProcessedImfileObjectFromMetadata(md);
    14951565        if (!object) {
    14961566            psFree(md);
     
    15041574            exit(EXIT_FAILURE);
    15051575        }
     1576        if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
     1577            psFree(object);
     1578            exit(EXIT_FAILURE);
     1579        }
     1580        if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
     1581            psFree(object);
     1582            exit(EXIT_FAILURE);
     1583        }
    15061584        if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    15071585            psFree(object);
    15081586            exit(EXIT_FAILURE);
    15091587        }
     1588        if (!object->bg == 64.64) {
     1589            psFree(object);
     1590            exit(EXIT_FAILURE);
     1591        }
     1592        if (!object->bg_stdev == 64.64) {
     1593            psFree(object);
     1594            exit(EXIT_FAILURE);
     1595        }
     1596        if (!object->bg_mean_stdev == 64.64) {
     1597            psFree(object);
     1598            exit(EXIT_FAILURE);
     1599        }
     1600        if (strncmp(object->b1_uri, "a string", MAX_STRING_LENGTH)) {
     1601            psFree(object);
     1602            exit(EXIT_FAILURE);
     1603        }
     1604        if (strncmp(object->b2_uri, "a string", MAX_STRING_LENGTH)) {
     1605            psFree(object);
     1606            exit(EXIT_FAILURE);
     1607        }
    15101608        if (!object->p1_version == -32) {
    15111609            psFree(object);
     
    15221620    {
    15231621        psMetadata      *md;
    1524         p2DoneImfileRow *object;
     1622        p3PendingExpRow *object;
    15251623
    15261624        md = psMetadataAlloc();
     
    15291627            exit(EXIT_FAILURE);
    15301628        }
    1531         if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {
    1532             psFree(md);
    1533             exit(EXIT_FAILURE);
    1534         }
    1535         if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {
    1536             psFree(md);
    1537             exit(EXIT_FAILURE);
    1538         }
    1539         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
    1540             psFree(md);
    1541             exit(EXIT_FAILURE);
    1542         }
    1543         if (!psMetadataAddS32(md, PS_LIST_TAIL, "p1_version", 0, NULL, -32)) {
    1544             psFree(md);
    1545             exit(EXIT_FAILURE);
    1546         }
    15471629        if (!psMetadataAddS32(md, PS_LIST_TAIL, "p2_version", 0, NULL, -32)) {
    15481630            psFree(md);
    15491631            exit(EXIT_FAILURE);
    15501632        }
    1551 
    1552         object = p2DoneImfileObjectFromMetadata(md);
     1633        if (!psMetadataAddS32(md, PS_LIST_TAIL, "p3_version", 0, NULL, -32)) {
     1634            psFree(md);
     1635            exit(EXIT_FAILURE);
     1636        }
     1637
     1638        object = p3PendingExpObjectFromMetadata(md);
    15531639        if (!object) {
    15541640            psFree(md);
     
    15591645
    15601646        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    1561             psFree(object);
    1562             exit(EXIT_FAILURE);
    1563         }
    1564         if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {
    1565             psFree(object);
    1566             exit(EXIT_FAILURE);
    1567         }
    1568         if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {
    1569             psFree(object);
    1570             exit(EXIT_FAILURE);
    1571         }
    1572         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    1573             psFree(object);
    1574             exit(EXIT_FAILURE);
    1575         }
    1576         if (!object->p1_version == -32) {
    1577             psFree(object);
    1578             exit(EXIT_FAILURE);
    1579         }
    1580         if (!object->p2_version == -32) {
    1581             psFree(object);
    1582             exit(EXIT_FAILURE);
    1583         }
    1584 
    1585         psFree(object);
    1586     }
    1587 
    1588     {
    1589         psMetadata      *md;
    1590         p3PendingExpRow *object;
    1591 
    1592         md = psMetadataAlloc();
    1593         if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, "a string")) {
    1594             psFree(md);
    1595             exit(EXIT_FAILURE);
    1596         }
    1597         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
    1598             psFree(md);
    1599             exit(EXIT_FAILURE);
    1600         }
    1601         if (!psMetadataAddS32(md, PS_LIST_TAIL, "p2_version", 0, NULL, -32)) {
    1602             psFree(md);
    1603             exit(EXIT_FAILURE);
    1604         }
    1605         if (!psMetadataAddS32(md, PS_LIST_TAIL, "p3_version", 0, NULL, -32)) {
    1606             psFree(md);
    1607             exit(EXIT_FAILURE);
    1608         }
    1609 
    1610         object = p3PendingExpObjectFromMetadata(md);
    1611         if (!object) {
    1612             psFree(md);
    1613             exit(EXIT_FAILURE);
    1614         }
    1615 
    1616         psFree(md);
    1617 
    1618         if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
    1619             psFree(object);
    1620             exit(EXIT_FAILURE);
    1621         }
    1622         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
    16231647            psFree(object);
    16241648            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/pop.c

    r8543 r8665  
    433433        psDB            *dbh;
    434434        char            exp_id[256];
    435         char            recipe[256];
    436435        psS32           p1_version;
    437436        psS32           p2_version;
     
    442441        }
    443442
    444         if (!p2DoneExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version, &p2_version)) {
    445             exit(EXIT_FAILURE);
    446         }
    447 
    448         psDBCleanup(dbh);
    449     }
    450 
    451     {
    452         psDB            *dbh;
    453         char            exp_id[256];
    454         char            class_id[256];
    455         char            uri[256];
    456         char            recipe[256];
     443        if (!p2ProcessedExpPop(dbh, (char **)&exp_id, &p1_version, &p2_version)) {
     444            exit(EXIT_FAILURE);
     445        }
     446
     447        psDBCleanup(dbh);
     448    }
     449
     450    {
     451        psDB            *dbh;
     452        char            exp_id[256];
     453        char            class_id[256];
     454        char            uri[256];
     455        char            recipe[256];
     456        psF64           bg;
     457        psF64           bg_stdev;
     458        psF64           bg_mean_stdev;
     459        char            b1_uri[256];
     460        char            b2_uri[256];
    457461        psS32           p1_version;
    458462        psS32           p2_version;
     
    463467        }
    464468
    465         if (!p2DoneImfilePop(dbh, (char **)&exp_id, (char **)&class_id, (char **)&uri, (char **)&recipe, &p1_version, &p2_version)) {
    466             exit(EXIT_FAILURE);
    467         }
    468 
    469         psDBCleanup(dbh);
    470     }
    471 
    472     {
    473         psDB            *dbh;
    474         char            exp_id[256];
    475         char            recipe[256];
     469        if (!p2ProcessedImfilePop(dbh, (char **)&exp_id, (char **)&class_id, (char **)&uri, (char **)&recipe, &bg, &bg_stdev, &bg_mean_stdev, (char **)&b1_uri, (char **)&b2_uri, &p1_version, &p2_version)) {
     470            exit(EXIT_FAILURE);
     471        }
     472
     473        psDBCleanup(dbh);
     474    }
     475
     476    {
     477        psDB            *dbh;
     478        char            exp_id[256];
    476479        psS32           p2_version;
    477480        psS32           p3_version;
     
    482485        }
    483486
    484         if (!p3PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p2_version, &p3_version)) {
     487        if (!p3PendingExpPop(dbh, (char **)&exp_id, &p2_version, &p3_version)) {
    485488            exit(EXIT_FAILURE);
    486489        }
  • trunk/ippdb/tests/popfits.c

    r8528 r8665  
    518518        }
    519519
    520         if (!p2DoneExpPopFits(dbh, fits, 1)) {
    521             exit(EXIT_FAILURE);
    522         }
    523 
    524         if (!psFitsClose(fits)) {
    525             exit(EXIT_FAILURE);
    526         }
    527 
    528         psDBCleanup(dbh);
    529     }
    530 
    531     {
    532         psDB            *dbh;
    533         psFits          *fits;
    534 
    535         dbh = psDBInit("localhost", "test", NULL, "test");
    536         if (!dbh) {
    537             exit(EXIT_FAILURE);
    538         }
    539 
    540         // allocate a temp
    541         fits = psFitsOpen(TMP_FILENAME, "w");
    542         if (!fits) {
    543             exit(EXIT_FAILURE);
    544         }
    545 
    546         if (!p2DoneImfilePopFits(dbh, fits, 1)) {
     520        if (!p2ProcessedExpPopFits(dbh, fits, 1)) {
     521            exit(EXIT_FAILURE);
     522        }
     523
     524        if (!psFitsClose(fits)) {
     525            exit(EXIT_FAILURE);
     526        }
     527
     528        psDBCleanup(dbh);
     529    }
     530
     531    {
     532        psDB            *dbh;
     533        psFits          *fits;
     534
     535        dbh = psDBInit("localhost", "test", NULL, "test");
     536        if (!dbh) {
     537            exit(EXIT_FAILURE);
     538        }
     539
     540        // allocate a temp
     541        fits = psFitsOpen(TMP_FILENAME, "w");
     542        if (!fits) {
     543            exit(EXIT_FAILURE);
     544        }
     545
     546        if (!p2ProcessedImfilePopFits(dbh, fits, 1)) {
    547547            exit(EXIT_FAILURE);
    548548        }
  • trunk/ippdb/tests/popobject.c

    r8528 r8665  
    349349    {
    350350        psDB            *dbh;
    351         p2DoneExpRow    *object;
    352 
    353         dbh = psDBInit("localhost", "test", NULL, "test");
    354         if (!dbh) {
    355             exit(EXIT_FAILURE);
    356         }
    357 
    358         object = p2DoneExpPopObject(dbh);
    359         if (!object) {
    360             exit(EXIT_FAILURE);
    361         }
    362 
    363         psFree(object);
    364         psDBCleanup(dbh);
    365     }
    366 
    367     {
    368         psDB            *dbh;
    369         p2DoneImfileRow *object;
    370 
    371         dbh = psDBInit("localhost", "test", NULL, "test");
    372         if (!dbh) {
    373             exit(EXIT_FAILURE);
    374         }
    375 
    376         object = p2DoneImfilePopObject(dbh);
     351        p2ProcessedExpRow *object;
     352
     353        dbh = psDBInit("localhost", "test", NULL, "test");
     354        if (!dbh) {
     355            exit(EXIT_FAILURE);
     356        }
     357
     358        object = p2ProcessedExpPopObject(dbh);
     359        if (!object) {
     360            exit(EXIT_FAILURE);
     361        }
     362
     363        psFree(object);
     364        psDBCleanup(dbh);
     365    }
     366
     367    {
     368        psDB            *dbh;
     369        p2ProcessedImfileRow *object;
     370
     371        dbh = psDBInit("localhost", "test", NULL, "test");
     372        if (!dbh) {
     373            exit(EXIT_FAILURE);
     374        }
     375
     376        object = p2ProcessedImfilePopObject(dbh);
    377377        if (!object) {
    378378            exit(EXIT_FAILURE);
  • trunk/ippdb/tests/selectrowsfits.c

    r8528 r8665  
    439439        }
    440440
    441         if (!p2DoneExpSelectRowsFits(dbh, fits, NULL, 1)) {
    442             exit(EXIT_FAILURE);
    443         }
    444 
    445         psFree(fits);
    446         psDBCleanup(dbh);
    447     }
    448 
    449     {
    450         psDB            *dbh;
    451         psFits          *fits;
    452 
    453         dbh = psDBInit("localhost", "test", NULL, "test");
    454         if (!dbh) {
    455             exit(EXIT_FAILURE);
    456         }
    457 
    458         fits = psFitsOpen(TMP_FILENAME, "w");
    459         if (!fits) {
    460             exit(EXIT_FAILURE);
    461         }
    462 
    463         if (!p2DoneImfileSelectRowsFits(dbh, fits, NULL, 1)) {
     441        if (!p2ProcessedExpSelectRowsFits(dbh, fits, NULL, 1)) {
     442            exit(EXIT_FAILURE);
     443        }
     444
     445        psFree(fits);
     446        psDBCleanup(dbh);
     447    }
     448
     449    {
     450        psDB            *dbh;
     451        psFits          *fits;
     452
     453        dbh = psDBInit("localhost", "test", NULL, "test");
     454        if (!dbh) {
     455            exit(EXIT_FAILURE);
     456        }
     457
     458        fits = psFitsOpen(TMP_FILENAME, "w");
     459        if (!fits) {
     460            exit(EXIT_FAILURE);
     461        }
     462
     463        if (!p2ProcessedImfileSelectRowsFits(dbh, fits, NULL, 1)) {
    464464            exit(EXIT_FAILURE);
    465465        }
Note: See TracChangeset for help on using the changeset viewer.