IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

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

VERSION 0.0.34

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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    }
Note: See TracChangeset for help on using the changeset viewer.