IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 15, 2006, 6:14:10 PM (20 years ago)
Author:
jhoblitt
Message:

VERSION to 0.0.30

File:
1 edited

Legend:

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

    r8368 r8380  
    6464#define DETMASTERIMFILE_TABLE_NAME "detMasterImfile"
    6565#define DETMASTERIMFILE_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
    66 #define DETRESIDIMFILEANALYSIS_TABLE_NAME "detResidImfileAnalysis"
    67 #define DETRESIDIMFILEANALYSIS_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
    68 #define DETRESIDEXPANALYSIS_TABLE_NAME "detResidExpAnalysis"
    69 #define DETRESIDEXPANALYSIS_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
     66#define DETRESIDIMFILE_TABLE_NAME "detResidImfile"
     67#define DETRESIDIMFILE_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
     68#define DETRESIDEXP_TABLE_NAME "detResidExp"
     69#define DETRESIDEXP_INDEX_NAME IPPDB_DEFAULT_INDEX_NAME
    7070#define MAX_STRING_LENGTH 1024
    7171
     
    1505915059static void detNormalizedImfileRowFree(detNormalizedImfileRow *object);
    1506015060
    15061 detNormalizedImfileRow *detNormalizedImfileRowAlloc(psS32 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe)
     15061detNormalizedImfileRow *detNormalizedImfileRowAlloc(psS32 det_id, psS32 iteration, const char *class_id, const char *uri)
    1506215062{
    1506315063    detNormalizedImfileRow *object;
     
    1507015070    object->class_id = psStringCopy(class_id);
    1507115071    object->uri = psStringCopy(uri);
    15072     object->recipe = psStringCopy(recipe);
    1507315072
    1507415073    return object;
     
    1507915078    psFree(object->class_id);
    1508015079    psFree(object->uri);
    15081     psFree(object->recipe);
    1508215080}
    1508315081
     
    1511315111        return false;
    1511415112    }
    15115     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
    15116         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
    15117         psFree(md);
    15118         return false;
    15119     }
    1512015113
    1512115114    status = psDBCreateTable(dbh, DETNORMALIZEDIMFILE_TABLE_NAME, md);
     
    1513115124}
    1513215125
    15133 bool detNormalizedImfileInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe)
     15126bool detNormalizedImfileInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *class_id, const char *uri)
    1513415127{
    1513515128    psMetadata      *md;
     
    1515415147    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, uri)) {
    1515515148        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
    15156         psFree(md);
    15157         return false;
    15158     }
    15159     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, recipe)) {
    15160         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
    1516115149        psFree(md);
    1516215150        return false;
     
    1518315171    return deleted;
    1518415172}
    15185 bool detNormalizedImfilePop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **class_id, char **uri, char **recipe)
     15173bool detNormalizedImfilePop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **class_id, char **uri)
    1518615174{
    1518715175    psArray         *rowSet;
     
    1525115239        return false;
    1525215240    }
    15253     *recipe = psMetadataLookupPtr(&status, row, "recipe");
    15254     if (!status) {
    15255         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item recipe");
    15256         psFree(row);
    15257         return false;
    15258     }
    1525915241
    1526015242    psFree(row);
     
    1526515247bool detNormalizedImfileInsertObject(psDB *dbh, detNormalizedImfileRow *object)
    1526615248{
    15267     return detNormalizedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->recipe);
     15249    return detNormalizedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri);
    1526815250}
    1526915251
     
    1528515267    char            class_id[256];
    1528615268    char            uri[256];
    15287     char            recipe[256];
    15288 
    15289     if (!detNormalizedImfilePop(dbh, &det_id, &iteration, (char **)&class_id, (char **)&uri, (char **)&recipe)) {
     15269
     15270    if (!detNormalizedImfilePop(dbh, &det_id, &iteration, (char **)&class_id, (char **)&uri)) {
    1529015271        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1529115272        return NULL;
    1529215273    }
    1529315274
    15294     return detNormalizedImfileRowAlloc(det_id, iteration, class_id, uri, recipe);
     15275    return detNormalizedImfileRowAlloc(det_id, iteration, class_id, uri);
    1529515276}
    1529615277
     
    1541115392        return NULL;
    1541215393    }
    15413     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
    15414         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
    15415         psFree(md);
    15416         return NULL;
    15417     }
    1541815394
    1541915395    return md;
     
    1542715403    char            *class_id;
    1542815404    char            *uri;
    15429     char            *recipe;
    1543015405
    1543115406    det_id = psMetadataLookupS32(&status, md, "det_id");
     
    1544915424        return false;
    1545015425    }
    15451     recipe = psMetadataLookupPtr(&status, md, "recipe");
    15452     if (!status) {
    15453         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item recipe");
    15454         return false;
    15455     }
    15456 
    15457     return detNormalizedImfileRowAlloc(det_id, iteration, class_id, uri, recipe);
     15426
     15427    return detNormalizedImfileRowAlloc(det_id, iteration, class_id, uri);
    1545815428}
    1545915429psArray *detNormalizedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1647716447    return true;
    1647816448}
    16479 static void detResidImfileAnalysisRowFree(detResidImfileAnalysisRow *object);
    16480 
    16481 detResidImfileAnalysisRow *detResidImfileAnalysisRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, const char *class_id, const char *recipe, const char *uri, const char *b1_uri, const char *b2_uri)
    16482 {
    16483     detResidImfileAnalysisRow *object;
    16484 
    16485     object = psAlloc(sizeof(detResidImfileAnalysisRow));
    16486     psMemSetDeallocator(object, (psFreeFunc)detResidImfileAnalysisRowFree);
     16449static void detResidImfileRowFree(detResidImfileRow *object);
     16450
     16451detResidImfileRow *detResidImfileRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, const char *class_id, const char *recipe, const char *uri, const char *b1_uri, const char *b2_uri)
     16452{
     16453    detResidImfileRow *object;
     16454
     16455    object = psAlloc(sizeof(detResidImfileRow));
     16456    psMemSetDeallocator(object, (psFreeFunc)detResidImfileRowFree);
    1648716457
    1648816458    object->det_id = det_id;
     
    1649816468}
    1649916469
    16500 static void detResidImfileAnalysisRowFree(detResidImfileAnalysisRow *object)
     16470static void detResidImfileRowFree(detResidImfileRow *object)
    1650116471{
    1650216472    psFree(object->exp_id);
     
    1650816478}
    1650916479
    16510 bool detResidImfileAnalysisCreateTable(psDB *dbh)
     16480bool detResidImfileCreateTable(psDB *dbh)
    1651116481{
    1651216482    psMetadata      *md;
     
    1651416484
    1651516485    md = psMetadataAlloc();
    16516     if (!psMetadataAdd(md, PS_LIST_TAIL, DETRESIDIMFILEANALYSIS_INDEX_NAME, PS_DATA_S32, "AUTO_INCREMENT", 0.0)) {
    16517         psError(PS_ERR_UNKNOWN, false, "failed to add item %s", DETRESIDIMFILEANALYSIS_INDEX_NAME);
     16486    if (!psMetadataAdd(md, PS_LIST_TAIL, DETRESIDIMFILE_INDEX_NAME, PS_DATA_S32, "AUTO_INCREMENT", 0.0)) {
     16487        psError(PS_ERR_UNKNOWN, false, "failed to add item %s", DETRESIDIMFILE_INDEX_NAME);
    1651816488        psFree(md);
    1651916489        return false;
     
    1656016530    }
    1656116531
    16562     status = psDBCreateTable(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME, md);
     16532    status = psDBCreateTable(dbh, DETRESIDIMFILE_TABLE_NAME, md);
    1656316533
    1656416534    psFree(md);
     
    1656716537}
    1656816538
    16569 bool detResidImfileAnalysisDropTable(psDB *dbh)
    16570 {
    16571     return psDBDropTable(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME);
    16572 }
    16573 
    16574 bool detResidImfileAnalysisInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, const char *class_id, const char *recipe, const char *uri, const char *b1_uri, const char *b2_uri)
     16539bool detResidImfileDropTable(psDB *dbh)
     16540{
     16541    return psDBDropTable(dbh, DETRESIDIMFILE_TABLE_NAME);
     16542}
     16543
     16544bool detResidImfileInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, const char *class_id, const char *recipe, const char *uri, const char *b1_uri, const char *b2_uri)
    1657516545{
    1657616546    psMetadata      *md;
     
    1661916589    }
    1662016590
    16621     status = psDBInsertOneRow(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME, md);
     16591    status = psDBInsertOneRow(dbh, DETRESIDIMFILE_TABLE_NAME, md);
    1662216592    psFree(md);
    1662316593
     
    1662516595}
    1662616596
    16627 long long detResidImfileAnalysisDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     16597long long detResidImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
    1662816598{
    1662916599    long long       deleted = 0;
    1663016600
    16631     long long count = psDBDeleteRows(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME, where, limit);
     16601    long long count = psDBDeleteRows(dbh, DETRESIDIMFILE_TABLE_NAME, where, limit);
    1663216602    if (count < 0) {
    16633         psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidImfileAnalysis");
     16603        psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidImfile");
    1663416604        return count;
    1663516605
     
    1663916609    return deleted;
    1664016610}
    16641 bool detResidImfileAnalysisPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, char **class_id, char **recipe, char **uri, char **b1_uri, char **b2_uri)
     16611bool detResidImfilePop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, char **class_id, char **recipe, char **uri, char **b1_uri, char **b2_uri)
    1664216612{
    1664316613    psArray         *rowSet;
     
    1664816618    int             rowID;
    1664916619
    16650     rowSet = psDBSelectRows(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME, NULL, 1);
     16620    rowSet = psDBSelectRows(dbh, DETRESIDIMFILE_TABLE_NAME, NULL, 1);
    1665116621    if (!rowSet) {
    16652         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", DETRESIDIMFILEANALYSIS_INDEX_NAME);
     16622        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", DETRESIDIMFILE_INDEX_NAME);
    1665316623        psFree(rowSet);
    1665416624        return NULL;
     
    1666316633    psFree(rowSet);
    1666416634
    16665     rowID = psMetadataLookupS32(&status, row, DETRESIDIMFILEANALYSIS_INDEX_NAME);
    16666     if (!status) {
    16667         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", DETRESIDIMFILEANALYSIS_INDEX_NAME);
     16635    rowID = psMetadataLookupS32(&status, row, DETRESIDIMFILE_INDEX_NAME);
     16636    if (!status) {
     16637        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", DETRESIDIMFILE_INDEX_NAME);
    1666816638        psFree(row);
    1666916639        return NULL;
     
    1667116641
    1667216642    popped = psMetadataAlloc();
    16673     psMetadataAddS32(popped, PS_LIST_TAIL, DETRESIDIMFILEANALYSIS_INDEX_NAME, 0, NULL, rowID);
    16674 
    16675     deleted = psDBDeleteRows(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME, popped, 0);
     16643    psMetadataAddS32(popped, PS_LIST_TAIL, DETRESIDIMFILE_INDEX_NAME, 0, NULL, rowID);
     16644
     16645    deleted = psDBDeleteRows(dbh, DETRESIDIMFILE_TABLE_NAME, popped, 0);
    1667616646    if (deleted != 1) {
    1667716647        psError(PS_ERR_UNKNOWN, false, "database failed to delete row");
     
    1673716707}
    1673816708
    16739 bool detResidImfileAnalysisInsertObject(psDB *dbh, detResidImfileAnalysisRow *object)
    16740 {
    16741     return detResidImfileAnalysisInsert(dbh, object->det_id, object->iteration, object->exp_id, object->class_id, object->recipe, object->uri, object->b1_uri, object->b2_uri);
    16742 }
    16743 
    16744 bool detResidImfileAnalysisInsertObjects(psDB *dbh, psArray *objects)
     16709bool detResidImfileInsertObject(psDB *dbh, detResidImfileRow *object)
     16710{
     16711    return detResidImfileInsert(dbh, object->det_id, object->iteration, object->exp_id, object->class_id, object->recipe, object->uri, object->b1_uri, object->b2_uri);
     16712}
     16713
     16714bool detResidImfileInsertObjects(psDB *dbh, psArray *objects)
    1674516715{
    1674616716    for (long i = 0; i < psArrayLength(objects); i++) {
    16747         if (!detResidImfileAnalysisInsertObject(dbh, objects->data[i])) {
     16717        if (!detResidImfileInsertObject(dbh, objects->data[i])) {
    1674816718            return false;
    1674916719        }
     
    1675316723}
    1675416724
    16755 detResidImfileAnalysisRow *detResidImfileAnalysisPopObject(psDB *dbh)
     16725detResidImfileRow *detResidImfilePopObject(psDB *dbh)
    1675616726{
    1675716727    psS32           det_id;
     
    1676416734    char            b2_uri[256];
    1676516735
    16766     if (!detResidImfileAnalysisPop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&class_id, (char **)&recipe, (char **)&uri, (char **)&b1_uri, (char **)&b2_uri)) {
     16736    if (!detResidImfilePop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&class_id, (char **)&recipe, (char **)&uri, (char **)&b1_uri, (char **)&b2_uri)) {
    1676716737        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1676816738        return NULL;
    1676916739    }
    1677016740
    16771     return detResidImfileAnalysisRowAlloc(det_id, iteration, exp_id, class_id, recipe, uri, b1_uri, b2_uri);
    16772 }
    16773 
    16774 bool detResidImfileAnalysisInsertFits(psDB *dbh, const psFits *fits)
     16741    return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, recipe, uri, b1_uri, b2_uri);
     16742}
     16743
     16744bool detResidImfileInsertFits(psDB *dbh, const psFits *fits)
    1677516745{
    1677616746    psArray         *rowSet;
    1677716747
    16778     // move to (the first?) extension named  DETRESIDIMFILEANALYSIS_TABLE_NAME
    16779     if (!psFitsMoveExtName(fits, DETRESIDIMFILEANALYSIS_TABLE_NAME)) {
    16780         psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DETRESIDIMFILEANALYSIS_TABLE_NAME);
     16748    // move to (the first?) extension named  DETRESIDIMFILE_TABLE_NAME
     16749    if (!psFitsMoveExtName(fits, DETRESIDIMFILE_TABLE_NAME)) {
     16750        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DETRESIDIMFILE_TABLE_NAME);
    1678116751        return false;
    1678216752    }
     
    1679616766    }
    1679716767
    16798     if (!psDBInsertRows(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME, rowSet)) {
     16768    if (!psDBInsertRows(dbh, DETRESIDIMFILE_TABLE_NAME, rowSet)) {
    1679916769        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
    1680016770        psFree(rowSet);
     
    1680716777}
    1680816778
    16809 bool detResidImfileAnalysisPopFits(psDB *dbh, psFits *fits, unsigned long long limit)
     16779bool detResidImfilePopFits(psDB *dbh, psFits *fits, unsigned long long limit)
    1681016780{
    1681116781    char            query[MAX_STRING_LENGTH];
    1681216782
    16813     if (!detResidImfileAnalysisSelectRowsFits(dbh, fits, NULL, limit)) {
     16783    if (!detResidImfileSelectRowsFits(dbh, fits, NULL, limit)) {
    1681416784        psError(PS_ERR_UNKNOWN, true, "database error or table is empty");
    1681516785        return false;
     
    1681916789    if (snprintf(query, MAX_STRING_LENGTH,
    1682016790                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    16821                 DETRESIDIMFILEANALYSIS_TABLE_NAME, DETRESIDIMFILEANALYSIS_INDEX_NAME, limit) < 0) {
     16791                DETRESIDIMFILE_TABLE_NAME, DETRESIDIMFILE_INDEX_NAME, limit) < 0) {
    1682216792        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
    1682316793        return false;
     
    1683216802}
    1683316803
    16834 bool detResidImfileAnalysisSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     16804bool detResidImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
    1683516805{
    1683616806    psArray         *rowSet;
    1683716807    psU64           i;
    1683816808
    16839     rowSet = psDBSelectRows(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME, where, limit);
     16809    rowSet = psDBSelectRows(dbh, DETRESIDIMFILE_TABLE_NAME, where, limit);
    1684016810    if (!rowSet) {
    1684116811        return false;
     
    1684416814    // strip index column
    1684516815    for (i = 0; i < rowSet->n; i++) {
    16846         if (!psMetadataRemove((psMetadata *)rowSet->data[i], 0, DETRESIDIMFILEANALYSIS_INDEX_NAME)) {
    16847             psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", DETRESIDIMFILEANALYSIS_INDEX_NAME);
     16816        if (!psMetadataRemove((psMetadata *)rowSet->data[i], 0, DETRESIDIMFILE_INDEX_NAME)) {
     16817            psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", DETRESIDIMFILE_INDEX_NAME);
    1684816818            psFree(rowSet);
    1684916819            return false;
     
    1685216822
    1685316823    // output to fits
    16854     if (!psFitsWriteTable(fits, NULL, rowSet, DETRESIDIMFILEANALYSIS_TABLE_NAME)) {
     16824    if (!psFitsWriteTable(fits, NULL, rowSet, DETRESIDIMFILE_TABLE_NAME)) {
    1685516825        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
    1685616826        psFree(rowSet);
     
    1686316833}
    1686416834
    16865 psMetadata *detResidImfileAnalysisMetadataFromObject(const detResidImfileAnalysisRow *object)
     16835psMetadata *detResidImfileMetadataFromObject(const detResidImfileRow *object)
    1686616836{
    1686716837    psMetadata      *md;
     
    1691216882}
    1691316883
    16914 detResidImfileAnalysisRow *detResidImfileAnalysisObjectFromMetadata(psMetadata *md)
     16884detResidImfileRow *detResidImfileObjectFromMetadata(psMetadata *md)
    1691516885{
    1691616886    bool            status;
     
    1696516935    }
    1696616936
    16967     return detResidImfileAnalysisRowAlloc(det_id, iteration, exp_id, class_id, recipe, uri, b1_uri, b2_uri);
    16968 }
    16969 psArray *detResidImfileAnalysisSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     16937    return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, recipe, uri, b1_uri, b2_uri);
     16938}
     16939psArray *detResidImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
    1697016940{
    1697116941    psArray         *rowSet;
     
    1697316943    psU64           i;
    1697416944
    16975     rowSet = psDBSelectRows(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME, where, limit);
     16945    rowSet = psDBSelectRows(dbh, DETRESIDIMFILE_TABLE_NAME, where, limit);
    1697616946    if (!rowSet) {
    1697716947        return NULL;
     
    1698016950    // strip index column
    1698116951    for (i = 0; i < rowSet->n; i++) {
    16982         if (!psMetadataRemove((psMetadata *)(rowSet->data[i]), 0, DETRESIDIMFILEANALYSIS_INDEX_NAME)) {
    16983             psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", DETRESIDIMFILEANALYSIS_INDEX_NAME);
     16952        if (!psMetadataRemove((psMetadata *)(rowSet->data[i]), 0, DETRESIDIMFILE_INDEX_NAME)) {
     16953            psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", DETRESIDIMFILE_INDEX_NAME);
    1698416954            psFree(rowSet);
    1698516955            return false;
     
    1699316963
    1699416964    for (i = 0; i < rowSet->n; i++) {
    16995         detResidImfileAnalysisRow *object = detResidImfileAnalysisObjectFromMetadata(rowSet->data[i]);
     16965        detResidImfileRow *object = detResidImfileObjectFromMetadata(rowSet->data[i]);
    1699616966        psArrayAdd(returnSet, 0, object);
    1699716967        psFree(object);
     
    1700216972    return returnSet;
    1700316973}
    17004 bool detResidImfileAnalysisDeleteObject(psDB *dbh, const detResidImfileAnalysisRow *object)
    17005 {
    17006     psMetadata *where = detResidImfileAnalysisMetadataFromObject(object);
    17007     long long count = psDBDeleteRows(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME, where, 0);
     16974bool detResidImfileDeleteObject(psDB *dbh, const detResidImfileRow *object)
     16975{
     16976    psMetadata *where = detResidImfileMetadataFromObject(object);
     16977    long long count = psDBDeleteRows(dbh, DETRESIDIMFILE_TABLE_NAME, where, 0);
    1700816978    psFree(where)
    1700916979    if (count < 0) {
    17010         psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidImfileAnalysis");
     16980        psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidImfile");
    1701116981        return false;
    1701216982    }
     
    1701416984        // XXX should this be a psAbort() instead?  It is possible that
    1701516985        // having an object match multiple rows was by design.
    17016         psError(PS_ERR_UNKNOWN, true, "detResidImfileAnalysisRow object matched more then one row.  Check your database schema");
    17017         return false;
    17018     }
    17019 
    17020     return true;
    17021 }
    17022 long long detResidImfileAnalysisDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     16986        psError(PS_ERR_UNKNOWN, true, "detResidImfileRow object matched more then one row.  Check your database schema");
     16987        return false;
     16988    }
     16989
     16990    return true;
     16991}
     16992long long detResidImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
    1702316993{
    1702416994    long long       deleted = 0;
    1702516995
    1702616996    for (long long i = 0; i < objects->n; i++) {
    17027         detResidImfileAnalysisRow *object = objects->data[i];
    17028         psMetadata *where = detResidImfileAnalysisMetadataFromObject(object);
    17029         long long count = psDBDeleteRows(dbh, DETRESIDIMFILEANALYSIS_TABLE_NAME, where, limit);
     16997        detResidImfileRow *object = objects->data[i];
     16998        psMetadata *where = detResidImfileMetadataFromObject(object);
     16999        long long count = psDBDeleteRows(dbh, DETRESIDIMFILE_TABLE_NAME, where, limit);
    1703017000        psFree(where)
    1703117001        if (count < 0) {
    17032             psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidImfileAnalysis");
     17002            psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidImfile");
    1703317003            return count;
    1703417004        }
     
    1703917009    return deleted;
    1704017010}
    17041 bool detResidImfileAnalysisPrintObjects(FILE *stream, psArray *objects, bool mdcf)
     17011bool detResidImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
    1704217012{
    1704317013    PS_ASSERT_PTR_NON_NULL(objects, false);
     
    1704517015    psMetadata *output = psMetadataAlloc();
    1704617016    for (long i = 0; i < psArrayLength(objects); i++) {
    17047         psMetadata *md = detResidImfileAnalysisMetadataFromObject(objects->data[i]);
     17017        psMetadata *md = detResidImfileMetadataFromObject(objects->data[i]);
    1704817018        if (!psMetadataAddMetadata(
    1704917019            output,
    1705017020            PS_LIST_TAIL,
    17051             DETRESIDIMFILEANALYSIS_TABLE_NAME,
     17021            DETRESIDIMFILE_TABLE_NAME,
    1705217022            PS_META_DUPLICATE_OK,
    1705317023            NULL,
     
    1707017040    return true;
    1707117041}
    17072 static void detResidExpAnalysisRowFree(detResidExpAnalysisRow *object);
    17073 
    17074 detResidExpAnalysisRow *detResidExpAnalysisRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, const char *recipe, bool keep, bool accept)
    17075 {
    17076     detResidExpAnalysisRow *object;
    17077 
    17078     object = psAlloc(sizeof(detResidExpAnalysisRow));
    17079     psMemSetDeallocator(object, (psFreeFunc)detResidExpAnalysisRowFree);
     17042static void detResidExpRowFree(detResidExpRow *object);
     17043
     17044detResidExpRow *detResidExpRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, const char *recipe, bool keep, bool accept)
     17045{
     17046    detResidExpRow *object;
     17047
     17048    object = psAlloc(sizeof(detResidExpRow));
     17049    psMemSetDeallocator(object, (psFreeFunc)detResidExpRowFree);
    1708017050
    1708117051    object->det_id = det_id;
     
    1708917059}
    1709017060
    17091 static void detResidExpAnalysisRowFree(detResidExpAnalysisRow *object)
     17061static void detResidExpRowFree(detResidExpRow *object)
    1709217062{
    1709317063    psFree(object->exp_id);
     
    1709517065}
    1709617066
    17097 bool detResidExpAnalysisCreateTable(psDB *dbh)
     17067bool detResidExpCreateTable(psDB *dbh)
    1709817068{
    1709917069    psMetadata      *md;
     
    1710117071
    1710217072    md = psMetadataAlloc();
    17103     if (!psMetadataAdd(md, PS_LIST_TAIL, DETRESIDEXPANALYSIS_INDEX_NAME, PS_DATA_S32, "AUTO_INCREMENT", 0.0)) {
    17104         psError(PS_ERR_UNKNOWN, false, "failed to add item %s", DETRESIDEXPANALYSIS_INDEX_NAME);
     17073    if (!psMetadataAdd(md, PS_LIST_TAIL, DETRESIDEXP_INDEX_NAME, PS_DATA_S32, "AUTO_INCREMENT", 0.0)) {
     17074        psError(PS_ERR_UNKNOWN, false, "failed to add item %s", DETRESIDEXP_INDEX_NAME);
    1710517075        psFree(md);
    1710617076        return false;
     
    1713717107    }
    1713817108
    17139     status = psDBCreateTable(dbh, DETRESIDEXPANALYSIS_TABLE_NAME, md);
     17109    status = psDBCreateTable(dbh, DETRESIDEXP_TABLE_NAME, md);
    1714017110
    1714117111    psFree(md);
     
    1714417114}
    1714517115
    17146 bool detResidExpAnalysisDropTable(psDB *dbh)
    17147 {
    17148     return psDBDropTable(dbh, DETRESIDEXPANALYSIS_TABLE_NAME);
    17149 }
    17150 
    17151 bool detResidExpAnalysisInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, const char *recipe, bool keep, bool accept)
     17116bool detResidExpDropTable(psDB *dbh)
     17117{
     17118    return psDBDropTable(dbh, DETRESIDEXP_TABLE_NAME);
     17119}
     17120
     17121bool detResidExpInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, const char *recipe, bool keep, bool accept)
    1715217122{
    1715317123    psMetadata      *md;
     
    1718617156    }
    1718717157
    17188     status = psDBInsertOneRow(dbh, DETRESIDEXPANALYSIS_TABLE_NAME, md);
     17158    status = psDBInsertOneRow(dbh, DETRESIDEXP_TABLE_NAME, md);
    1718917159    psFree(md);
    1719017160
     
    1719217162}
    1719317163
    17194 long long detResidExpAnalysisDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     17164long long detResidExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
    1719517165{
    1719617166    long long       deleted = 0;
    1719717167
    17198     long long count = psDBDeleteRows(dbh, DETRESIDEXPANALYSIS_TABLE_NAME, where, limit);
     17168    long long count = psDBDeleteRows(dbh, DETRESIDEXP_TABLE_NAME, where, limit);
    1719917169    if (count < 0) {
    17200         psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidExpAnalysis");
     17170        psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidExp");
    1720117171        return count;
    1720217172
     
    1720617176    return deleted;
    1720717177}
    17208 bool detResidExpAnalysisPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, char **recipe, bool *keep, bool *accept)
     17178bool detResidExpPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, char **recipe, bool *keep, bool *accept)
    1720917179{
    1721017180    psArray         *rowSet;
     
    1721517185    int             rowID;
    1721617186
    17217     rowSet = psDBSelectRows(dbh, DETRESIDEXPANALYSIS_TABLE_NAME, NULL, 1);
     17187    rowSet = psDBSelectRows(dbh, DETRESIDEXP_TABLE_NAME, NULL, 1);
    1721817188    if (!rowSet) {
    17219         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", DETRESIDEXPANALYSIS_INDEX_NAME);
     17189        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", DETRESIDEXP_INDEX_NAME);
    1722017190        psFree(rowSet);
    1722117191        return NULL;
     
    1723017200    psFree(rowSet);
    1723117201
    17232     rowID = psMetadataLookupS32(&status, row, DETRESIDEXPANALYSIS_INDEX_NAME);
    17233     if (!status) {
    17234         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", DETRESIDEXPANALYSIS_INDEX_NAME);
     17202    rowID = psMetadataLookupS32(&status, row, DETRESIDEXP_INDEX_NAME);
     17203    if (!status) {
     17204        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item %s", DETRESIDEXP_INDEX_NAME);
    1723517205        psFree(row);
    1723617206        return NULL;
     
    1723817208
    1723917209    popped = psMetadataAlloc();
    17240     psMetadataAddS32(popped, PS_LIST_TAIL, DETRESIDEXPANALYSIS_INDEX_NAME, 0, NULL, rowID);
    17241 
    17242     deleted = psDBDeleteRows(dbh, DETRESIDEXPANALYSIS_TABLE_NAME, popped, 0);
     17210    psMetadataAddS32(popped, PS_LIST_TAIL, DETRESIDEXP_INDEX_NAME, 0, NULL, rowID);
     17211
     17212    deleted = psDBDeleteRows(dbh, DETRESIDEXP_TABLE_NAME, popped, 0);
    1724317213    if (deleted != 1) {
    1724417214        psError(PS_ERR_UNKNOWN, false, "database failed to delete row");
     
    1729217262}
    1729317263
    17294 bool detResidExpAnalysisInsertObject(psDB *dbh, detResidExpAnalysisRow *object)
    17295 {
    17296     return detResidExpAnalysisInsert(dbh, object->det_id, object->iteration, object->exp_id, object->recipe, object->keep, object->accept);
    17297 }
    17298 
    17299 bool detResidExpAnalysisInsertObjects(psDB *dbh, psArray *objects)
     17264bool detResidExpInsertObject(psDB *dbh, detResidExpRow *object)
     17265{
     17266    return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->recipe, object->keep, object->accept);
     17267}
     17268
     17269bool detResidExpInsertObjects(psDB *dbh, psArray *objects)
    1730017270{
    1730117271    for (long i = 0; i < psArrayLength(objects); i++) {
    17302         if (!detResidExpAnalysisInsertObject(dbh, objects->data[i])) {
     17272        if (!detResidExpInsertObject(dbh, objects->data[i])) {
    1730317273            return false;
    1730417274        }
     
    1730817278}
    1730917279
    17310 detResidExpAnalysisRow *detResidExpAnalysisPopObject(psDB *dbh)
     17280detResidExpRow *detResidExpPopObject(psDB *dbh)
    1731117281{
    1731217282    psS32           det_id;
     
    1731717287    bool            accept;
    1731817288
    17319     if (!detResidExpAnalysisPop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&recipe, &keep, &accept)) {
     17289    if (!detResidExpPop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&recipe, &keep, &accept)) {
    1732017290        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    1732117291        return NULL;
    1732217292    }
    1732317293
    17324     return detResidExpAnalysisRowAlloc(det_id, iteration, exp_id, recipe, keep, accept);
    17325 }
    17326 
    17327 bool detResidExpAnalysisInsertFits(psDB *dbh, const psFits *fits)
     17294    return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, keep, accept);
     17295}
     17296
     17297bool detResidExpInsertFits(psDB *dbh, const psFits *fits)
    1732817298{
    1732917299    psArray         *rowSet;
    1733017300
    17331     // move to (the first?) extension named  DETRESIDEXPANALYSIS_TABLE_NAME
    17332     if (!psFitsMoveExtName(fits, DETRESIDEXPANALYSIS_TABLE_NAME)) {
    17333         psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DETRESIDEXPANALYSIS_TABLE_NAME);
     17301    // move to (the first?) extension named  DETRESIDEXP_TABLE_NAME
     17302    if (!psFitsMoveExtName(fits, DETRESIDEXP_TABLE_NAME)) {
     17303        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DETRESIDEXP_TABLE_NAME);
    1733417304        return false;
    1733517305    }
     
    1734917319    }
    1735017320
    17351     if (!psDBInsertRows(dbh, DETRESIDEXPANALYSIS_TABLE_NAME, rowSet)) {
     17321    if (!psDBInsertRows(dbh, DETRESIDEXP_TABLE_NAME, rowSet)) {
    1735217322        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
    1735317323        psFree(rowSet);
     
    1736017330}
    1736117331
    17362 bool detResidExpAnalysisPopFits(psDB *dbh, psFits *fits, unsigned long long limit)
     17332bool detResidExpPopFits(psDB *dbh, psFits *fits, unsigned long long limit)
    1736317333{
    1736417334    char            query[MAX_STRING_LENGTH];
    1736517335
    17366     if (!detResidExpAnalysisSelectRowsFits(dbh, fits, NULL, limit)) {
     17336    if (!detResidExpSelectRowsFits(dbh, fits, NULL, limit)) {
    1736717337        psError(PS_ERR_UNKNOWN, true, "database error or table is empty");
    1736817338        return false;
     
    1737217342    if (snprintf(query, MAX_STRING_LENGTH,
    1737317343                "DELETE FROM %s ORDER BY %s DESC LIMIT %lld",
    17374                 DETRESIDEXPANALYSIS_TABLE_NAME, DETRESIDEXPANALYSIS_INDEX_NAME, limit) < 0) {
     17344                DETRESIDEXP_TABLE_NAME, DETRESIDEXP_INDEX_NAME, limit) < 0) {
    1737517345        psError(PS_ERR_UNKNOWN, true, "query value attempted to exceed %s bytes", MAX_STRING_LENGTH);
    1737617346        return false;
     
    1738517355}
    1738617356
    17387 bool detResidExpAnalysisSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     17357bool detResidExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
    1738817358{
    1738917359    psArray         *rowSet;
    1739017360    psU64           i;
    1739117361
    17392     rowSet = psDBSelectRows(dbh, DETRESIDEXPANALYSIS_TABLE_NAME, where, limit);
     17362    rowSet = psDBSelectRows(dbh, DETRESIDEXP_TABLE_NAME, where, limit);
    1739317363    if (!rowSet) {
    1739417364        return false;
     
    1739717367    // strip index column
    1739817368    for (i = 0; i < rowSet->n; i++) {
    17399         if (!psMetadataRemove((psMetadata *)rowSet->data[i], 0, DETRESIDEXPANALYSIS_INDEX_NAME)) {
    17400             psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", DETRESIDEXPANALYSIS_INDEX_NAME);
     17369        if (!psMetadataRemove((psMetadata *)rowSet->data[i], 0, DETRESIDEXP_INDEX_NAME)) {
     17370            psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", DETRESIDEXP_INDEX_NAME);
    1740117371            psFree(rowSet);
    1740217372            return false;
     
    1740517375
    1740617376    // output to fits
    17407     if (!psFitsWriteTable(fits, NULL, rowSet, DETRESIDEXPANALYSIS_TABLE_NAME)) {
     17377    if (!psFitsWriteTable(fits, NULL, rowSet, DETRESIDEXP_TABLE_NAME)) {
    1740817378        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
    1740917379        psFree(rowSet);
     
    1741617386}
    1741717387
    17418 psMetadata *detResidExpAnalysisMetadataFromObject(const detResidExpAnalysisRow *object)
     17388psMetadata *detResidExpMetadataFromObject(const detResidExpRow *object)
    1741917389{
    1742017390    psMetadata      *md;
     
    1745517425}
    1745617426
    17457 detResidExpAnalysisRow *detResidExpAnalysisObjectFromMetadata(psMetadata *md)
     17427detResidExpRow *detResidExpObjectFromMetadata(psMetadata *md)
    1745817428{
    1745917429    bool            status;
     
    1749617466    }
    1749717467
    17498     return detResidExpAnalysisRowAlloc(det_id, iteration, exp_id, recipe, keep, accept);
    17499 }
    17500 psArray *detResidExpAnalysisSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     17468    return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, keep, accept);
     17469}
     17470psArray *detResidExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
    1750117471{
    1750217472    psArray         *rowSet;
     
    1750417474    psU64           i;
    1750517475
    17506     rowSet = psDBSelectRows(dbh, DETRESIDEXPANALYSIS_TABLE_NAME, where, limit);
     17476    rowSet = psDBSelectRows(dbh, DETRESIDEXP_TABLE_NAME, where, limit);
    1750717477    if (!rowSet) {
    1750817478        return NULL;
     
    1751117481    // strip index column
    1751217482    for (i = 0; i < rowSet->n; i++) {
    17513         if (!psMetadataRemove((psMetadata *)(rowSet->data[i]), 0, DETRESIDEXPANALYSIS_INDEX_NAME)) {
    17514             psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", DETRESIDEXPANALYSIS_INDEX_NAME);
     17483        if (!psMetadataRemove((psMetadata *)(rowSet->data[i]), 0, DETRESIDEXP_INDEX_NAME)) {
     17484            psError(PS_ERR_UNKNOWN, true, "failed to remove item %s", DETRESIDEXP_INDEX_NAME);
    1751517485            psFree(rowSet);
    1751617486            return false;
     
    1752417494
    1752517495    for (i = 0; i < rowSet->n; i++) {
    17526         detResidExpAnalysisRow *object = detResidExpAnalysisObjectFromMetadata(rowSet->data[i]);
     17496        detResidExpRow *object = detResidExpObjectFromMetadata(rowSet->data[i]);
    1752717497        psArrayAdd(returnSet, 0, object);
    1752817498        psFree(object);
     
    1753317503    return returnSet;
    1753417504}
    17535 bool detResidExpAnalysisDeleteObject(psDB *dbh, const detResidExpAnalysisRow *object)
    17536 {
    17537     psMetadata *where = detResidExpAnalysisMetadataFromObject(object);
    17538     long long count = psDBDeleteRows(dbh, DETRESIDEXPANALYSIS_TABLE_NAME, where, 0);
     17505bool detResidExpDeleteObject(psDB *dbh, const detResidExpRow *object)
     17506{
     17507    psMetadata *where = detResidExpMetadataFromObject(object);
     17508    long long count = psDBDeleteRows(dbh, DETRESIDEXP_TABLE_NAME, where, 0);
    1753917509    psFree(where)
    1754017510    if (count < 0) {
    17541         psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidExpAnalysis");
     17511        psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidExp");
    1754217512        return false;
    1754317513    }
     
    1754517515        // XXX should this be a psAbort() instead?  It is possible that
    1754617516        // having an object match multiple rows was by design.
    17547         psError(PS_ERR_UNKNOWN, true, "detResidExpAnalysisRow object matched more then one row.  Check your database schema");
    17548         return false;
    17549     }
    17550 
    17551     return true;
    17552 }
    17553 long long detResidExpAnalysisDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     17517        psError(PS_ERR_UNKNOWN, true, "detResidExpRow object matched more then one row.  Check your database schema");
     17518        return false;
     17519    }
     17520
     17521    return true;
     17522}
     17523long long detResidExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
    1755417524{
    1755517525    long long       deleted = 0;
    1755617526
    1755717527    for (long long i = 0; i < objects->n; i++) {
    17558         detResidExpAnalysisRow *object = objects->data[i];
    17559         psMetadata *where = detResidExpAnalysisMetadataFromObject(object);
    17560         long long count = psDBDeleteRows(dbh, DETRESIDEXPANALYSIS_TABLE_NAME, where, limit);
     17528        detResidExpRow *object = objects->data[i];
     17529        psMetadata *where = detResidExpMetadataFromObject(object);
     17530        long long count = psDBDeleteRows(dbh, DETRESIDEXP_TABLE_NAME, where, limit);
    1756117531        psFree(where)
    1756217532        if (count < 0) {
    17563             psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidExpAnalysis");
     17533            psError(PS_ERR_UNKNOWN, true, "failed to delete row from detResidExp");
    1756417534            return count;
    1756517535        }
     
    1757017540    return deleted;
    1757117541}
    17572 bool detResidExpAnalysisPrintObjects(FILE *stream, psArray *objects, bool mdcf)
     17542bool detResidExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
    1757317543{
    1757417544    PS_ASSERT_PTR_NON_NULL(objects, false);
     
    1757617546    psMetadata *output = psMetadataAlloc();
    1757717547    for (long i = 0; i < psArrayLength(objects); i++) {
    17578         psMetadata *md = detResidExpAnalysisMetadataFromObject(objects->data[i]);
     17548        psMetadata *md = detResidExpMetadataFromObject(objects->data[i]);
    1757917549        if (!psMetadataAddMetadata(
    1758017550            output,
    1758117551            PS_LIST_TAIL,
    17582             DETRESIDEXPANALYSIS_TABLE_NAME,
     17552            DETRESIDEXP_TABLE_NAME,
    1758317553            PS_META_DUPLICATE_OK,
    1758417554            NULL,
Note: See TracChangeset for help on using the changeset viewer.