IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 8, 2007, 12:28:29 PM (19 years ago)
Author:
jhoblitt
Message:

rebuilt with jbhuild 1.03

File:
1 edited

Legend:

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

    r14252 r14451  
    2020/*
    2121 *
    22  * This file was generated by glueforge 1.01
     22 * This file was generated by glueforge 1.03
    2323 *
    2424 * Do NOT directly edit this file.
     
    6969#define DETRESIDEXP_TABLE_NAME "detResidExp"
    7070#define DETRUNSUMMARY_TABLE_NAME "detRunSummary"
     71#define DETREGISTEREDIMFILE_TABLE_NAME "detRegisteredImfile"
    7172#define MAX_STRING_LENGTH 1024
    7273
     
    59655966        return false;
    59665967    }
    5967     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm", PS_DATA_F32, NULL, 0.0)) {
     5968    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm", PS_DATA_F32, "# replace this with fwhm_major", 0.0)) {
    59685969        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm");
    59695970        psFree(md);
    59705971        return false;
    59715972    }
    5972     if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_range", PS_DATA_F32, NULL, 0.0)) {
     5973    if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_range", PS_DATA_F32, "# replace this with fwhm_minor", 0.0)) {
    59735974        psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_range");
    59745975        psFree(md);
     
    1206412065        return false;
    1206512066    }
    12066     if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, "Key", 0)) {
     12067    if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, "Key INDEX(det_id, iteration)", 0)) {
    1206712068        psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");
    1206812069        psFree(md);
     
    1641616417static void detResidImfileRowFree(detResidImfileRow *object);
    1641716418
    16418 detResidImfileRow *detResidImfileRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     16419detResidImfileRow *detResidImfileRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1641916420{
    1642016421    detResidImfileRow *_object;
     
    1643216433    _object->bg_stdev = bg_stdev;
    1643316434    _object->bg_mean_stdev = bg_mean_stdev;
     16435    _object->bg_skewness = bg_skewness;
     16436    _object->bg_kurtosis = bg_kurtosis;
    1643416437    _object->bin_stdev = bin_stdev;
    1643516438    _object->fringe_0 = fringe_0;
    1643616439    _object->fringe_1 = fringe_1;
    1643716440    _object->fringe_2 = fringe_2;
     16441    _object->fringe_resid_0 = fringe_resid_0;
     16442    _object->fringe_resid_1 = fringe_resid_1;
     16443    _object->fringe_resid_2 = fringe_resid_2;
    1643816444    _object->user_1 = user_1;
    1643916445    _object->user_2 = user_2;
     
    1650316509        return false;
    1650416510    }
     16511    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, 0.0)) {
     16512        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness");
     16513        psFree(md);
     16514        return false;
     16515    }
     16516    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, 0.0)) {
     16517        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis");
     16518        psFree(md);
     16519        return false;
     16520    }
    1650516521    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, 0.0)) {
    1650616522        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     
    1652316539        return false;
    1652416540    }
     16541    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, 0.0)) {
     16542        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0");
     16543        psFree(md);
     16544        return false;
     16545    }
     16546    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, 0.0)) {
     16547        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1");
     16548        psFree(md);
     16549        return false;
     16550    }
     16551    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, 0.0)) {
     16552        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2");
     16553        psFree(md);
     16554        return false;
     16555    }
    1652516556    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
    1652616557        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     
    1657116602}
    1657216603
    16573 bool detResidImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     16604bool detResidImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1657416605{
    1657516606    psMetadata *md = psMetadataAlloc();
     
    1661916650        return false;
    1662016651    }
     16652    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, bg_skewness)) {
     16653        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness");
     16654        psFree(md);
     16655        return false;
     16656    }
     16657    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, bg_kurtosis)) {
     16658        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis");
     16659        psFree(md);
     16660        return false;
     16661    }
    1662116662    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, bin_stdev)) {
    1662216663        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     
    1663616677    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, fringe_2)) {
    1663716678        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     16679        psFree(md);
     16680        return false;
     16681    }
     16682    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, fringe_resid_0)) {
     16683        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0");
     16684        psFree(md);
     16685        return false;
     16686    }
     16687    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, fringe_resid_1)) {
     16688        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1");
     16689        psFree(md);
     16690        return false;
     16691    }
     16692    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, fringe_resid_2)) {
     16693        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2");
    1663816694        psFree(md);
    1663916695        return false;
     
    1669716753bool detResidImfileInsertObject(psDB *dbh, detResidImfileRow *object)
    1669816754{
    16699     return detResidImfileInsert(dbh, object->det_id, object->iteration, object->exp_id, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
     16755    return detResidImfileInsert(dbh, object->det_id, object->iteration, object->exp_id, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bg_skewness, object->bg_kurtosis, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->fringe_resid_0, object->fringe_resid_1, object->fringe_resid_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
    1670016756}
    1670116757
     
    1681516871        return false;
    1681616872    }
     16873    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, object->bg_skewness)) {
     16874        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness");
     16875        psFree(md);
     16876        return false;
     16877    }
     16878    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, object->bg_kurtosis)) {
     16879        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis");
     16880        psFree(md);
     16881        return false;
     16882    }
    1681716883    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, object->bin_stdev)) {
    1681816884        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     
    1683516901        return false;
    1683616902    }
     16903    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, object->fringe_resid_0)) {
     16904        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0");
     16905        psFree(md);
     16906        return false;
     16907    }
     16908    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, object->fringe_resid_1)) {
     16909        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1");
     16910        psFree(md);
     16911        return false;
     16912    }
     16913    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, object->fringe_resid_2)) {
     16914        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2");
     16915        psFree(md);
     16916        return false;
     16917    }
    1683716918    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
    1683816919        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     
    1692417005        return false;
    1692517006    }
     17007    psF64 bg_skewness = psMetadataLookupF64(&status, md, "bg_skewness");
     17008    if (!status) {
     17009        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_skewness");
     17010        return false;
     17011    }
     17012    psF64 bg_kurtosis = psMetadataLookupF64(&status, md, "bg_kurtosis");
     17013    if (!status) {
     17014        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_kurtosis");
     17015        return false;
     17016    }
    1692617017    psF64 bin_stdev = psMetadataLookupF64(&status, md, "bin_stdev");
    1692717018    if (!status) {
     
    1694417035        return false;
    1694517036    }
     17037    psF64 fringe_resid_0 = psMetadataLookupF64(&status, md, "fringe_resid_0");
     17038    if (!status) {
     17039        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_0");
     17040        return false;
     17041    }
     17042    psF64 fringe_resid_1 = psMetadataLookupF64(&status, md, "fringe_resid_1");
     17043    if (!status) {
     17044        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_1");
     17045        return false;
     17046    }
     17047    psF64 fringe_resid_2 = psMetadataLookupF64(&status, md, "fringe_resid_2");
     17048    if (!status) {
     17049        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_2");
     17050        return false;
     17051    }
    1694617052    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
    1694717053    if (!status) {
     
    1698017086    }
    1698117087
    16982     return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, bin_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, fault);
     17088    return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, bg_skewness, bg_kurtosis, bin_stdev, fringe_0, fringe_1, fringe_2, fringe_resid_0, fringe_resid_1, fringe_resid_2, user_1, user_2, user_3, user_4, user_5, path_base, fault);
    1698317089}
    1698417090psArray *detResidImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1709217198static void detResidExpRowFree(detResidExpRow *object);
    1709317199
    17094 detResidExpRow *detResidExpRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault)
     17200detResidExpRow *detResidExpRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault)
    1709517201{
    1709617202    detResidExpRow  *_object;
     
    1710617212    _object->bg_stdev = bg_stdev;
    1710717213    _object->bg_mean_stdev = bg_mean_stdev;
     17214    _object->bg_skewness = bg_skewness;
     17215    _object->bg_kurtosis = bg_kurtosis;
    1710817216    _object->bin_stdev = bin_stdev;
    1710917217    _object->fringe_0 = fringe_0;
    1711017218    _object->fringe_1 = fringe_1;
    1711117219    _object->fringe_2 = fringe_2;
     17220    _object->fringe_resid_0 = fringe_resid_0;
     17221    _object->fringe_resid_1 = fringe_resid_1;
     17222    _object->fringe_resid_2 = fringe_resid_2;
    1711217223    _object->user_1 = user_1;
    1711317224    _object->user_2 = user_2;
     
    1716617277        return false;
    1716717278    }
     17279    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, 0.0)) {
     17280        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness");
     17281        psFree(md);
     17282        return false;
     17283    }
     17284    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, 0.0)) {
     17285        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis");
     17286        psFree(md);
     17287        return false;
     17288    }
    1716817289    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, 0.0)) {
    1716917290        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     
    1718617307        return false;
    1718717308    }
     17309    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, 0.0)) {
     17310        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0");
     17311        psFree(md);
     17312        return false;
     17313    }
     17314    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, 0.0)) {
     17315        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1");
     17316        psFree(md);
     17317        return false;
     17318    }
     17319    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, 0.0)) {
     17320        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2");
     17321        psFree(md);
     17322        return false;
     17323    }
    1718817324    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
    1718917325        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     
    1723917375}
    1724017376
    17241 bool detResidExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault)
     17377bool detResidExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault)
    1724217378{
    1724317379    psMetadata *md = psMetadataAlloc();
     
    1727717413        return false;
    1727817414    }
     17415    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, bg_skewness)) {
     17416        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness");
     17417        psFree(md);
     17418        return false;
     17419    }
     17420    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, bg_kurtosis)) {
     17421        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis");
     17422        psFree(md);
     17423        return false;
     17424    }
    1727917425    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, bin_stdev)) {
    1728017426        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     
    1729417440    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, fringe_2)) {
    1729517441        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     17442        psFree(md);
     17443        return false;
     17444    }
     17445    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, fringe_resid_0)) {
     17446        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0");
     17447        psFree(md);
     17448        return false;
     17449    }
     17450    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, fringe_resid_1)) {
     17451        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1");
     17452        psFree(md);
     17453        return false;
     17454    }
     17455    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, fringe_resid_2)) {
     17456        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2");
    1729617457        psFree(md);
    1729717458        return false;
     
    1736017521bool detResidExpInsertObject(psDB *dbh, detResidExpRow *object)
    1736117522{
    17362     return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->accept, object->fault);
     17523    return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bg_skewness, object->bg_kurtosis, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->fringe_resid_0, object->fringe_resid_1, object->fringe_resid_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->accept, object->fault);
    1736317524}
    1736417525
     
    1746817629        return false;
    1746917630    }
     17631    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, object->bg_skewness)) {
     17632        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness");
     17633        psFree(md);
     17634        return false;
     17635    }
     17636    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, object->bg_kurtosis)) {
     17637        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis");
     17638        psFree(md);
     17639        return false;
     17640    }
    1747017641    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, object->bin_stdev)) {
    1747117642        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     
    1748817659        return false;
    1748917660    }
     17661    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, object->fringe_resid_0)) {
     17662        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0");
     17663        psFree(md);
     17664        return false;
     17665    }
     17666    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, object->fringe_resid_1)) {
     17667        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1");
     17668        psFree(md);
     17669        return false;
     17670    }
     17671    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, object->fringe_resid_2)) {
     17672        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2");
     17673        psFree(md);
     17674        return false;
     17675    }
    1749017676    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
    1749117677        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     
    1757217758        return false;
    1757317759    }
     17760    psF64 bg_skewness = psMetadataLookupF64(&status, md, "bg_skewness");
     17761    if (!status) {
     17762        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_skewness");
     17763        return false;
     17764    }
     17765    psF64 bg_kurtosis = psMetadataLookupF64(&status, md, "bg_kurtosis");
     17766    if (!status) {
     17767        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_kurtosis");
     17768        return false;
     17769    }
    1757417770    psF64 bin_stdev = psMetadataLookupF64(&status, md, "bin_stdev");
    1757517771    if (!status) {
     
    1759217788        return false;
    1759317789    }
     17790    psF64 fringe_resid_0 = psMetadataLookupF64(&status, md, "fringe_resid_0");
     17791    if (!status) {
     17792        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_0");
     17793        return false;
     17794    }
     17795    psF64 fringe_resid_1 = psMetadataLookupF64(&status, md, "fringe_resid_1");
     17796    if (!status) {
     17797        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_1");
     17798        return false;
     17799    }
     17800    psF64 fringe_resid_2 = psMetadataLookupF64(&status, md, "fringe_resid_2");
     17801    if (!status) {
     17802        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_2");
     17803        return false;
     17804    }
    1759417805    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
    1759517806    if (!status) {
     
    1763317844    }
    1763417845
    17635     return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, bg, bg_stdev, bg_mean_stdev, bin_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, accept, fault);
     17846    return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, bg, bg_stdev, bg_mean_stdev, bg_skewness, bg_kurtosis, bin_stdev, fringe_0, fringe_1, fringe_2, fringe_resid_0, fringe_resid_1, fringe_resid_2, user_1, user_2, user_3, user_4, user_5, path_base, accept, fault);
    1763617847}
    1763717848psArray *detResidExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1814218353    return true;
    1814318354}
     18355static void detRegisteredImfileRowFree(detRegisteredImfileRow *object);
     18356
     18357detRegisteredImfileRow *detRegisteredImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     18358{
     18359    detRegisteredImfileRow *_object;
     18360
     18361    _object = psAlloc(sizeof(detRegisteredImfileRow));
     18362    psMemSetDeallocator(_object, (psFreeFunc)detRegisteredImfileRowFree);
     18363
     18364    _object->det_id = det_id;
     18365    _object->iteration = iteration;
     18366    _object->class_id = psStringCopy(class_id);
     18367    _object->uri = psStringCopy(uri);
     18368    _object->bg = bg;
     18369    _object->bg_stdev = bg_stdev;
     18370    _object->bg_mean_stdev = bg_mean_stdev;
     18371    _object->user_1 = user_1;
     18372    _object->user_2 = user_2;
     18373    _object->user_3 = user_3;
     18374    _object->user_4 = user_4;
     18375    _object->user_5 = user_5;
     18376    _object->path_base = psStringCopy(path_base);
     18377    _object->fault = fault;
     18378
     18379    return _object;
     18380}
     18381
     18382static void detRegisteredImfileRowFree(detRegisteredImfileRow *object)
     18383{
     18384    psFree(object->class_id);
     18385    psFree(object->uri);
     18386    psFree(object->path_base);
     18387}
     18388
     18389bool detRegisteredImfileCreateTable(psDB *dbh)
     18390{
     18391    psMetadata *md = psMetadataAlloc();
     18392    if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S64, "Primary Key fkey(det_id, iteration) ref detRun(det_id, iteration)", 0)) {
     18393        psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");
     18394        psFree(md);
     18395        return false;
     18396    }
     18397    if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, "Primary Key", 0)) {
     18398        psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");
     18399        psFree(md);
     18400        return false;
     18401    }
     18402    if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, "Primary Key", "64")) {
     18403        psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
     18404        psFree(md);
     18405        return false;
     18406    }
     18407    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, "255")) {
     18408        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     18409        psFree(md);
     18410        return false;
     18411    }
     18412    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, 0.0)) {
     18413        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     18414        psFree(md);
     18415        return false;
     18416    }
     18417    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_stdev", PS_DATA_F64, NULL, 0.0)) {
     18418        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     18419        psFree(md);
     18420        return false;
     18421    }
     18422    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, 0.0)) {
     18423        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     18424        psFree(md);
     18425        return false;
     18426    }
     18427    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
     18428        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     18429        psFree(md);
     18430        return false;
     18431    }
     18432    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) {
     18433        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     18434        psFree(md);
     18435        return false;
     18436    }
     18437    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) {
     18438        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     18439        psFree(md);
     18440        return false;
     18441    }
     18442    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) {
     18443        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     18444        psFree(md);
     18445        return false;
     18446    }
     18447    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) {
     18448        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     18449        psFree(md);
     18450        return false;
     18451    }
     18452    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
     18453        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     18454        psFree(md);
     18455        return false;
     18456    }
     18457    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
     18458        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     18459        psFree(md);
     18460        return false;
     18461    }
     18462
     18463    bool status = psDBCreateTable(dbh, DETREGISTEREDIMFILE_TABLE_NAME, md);
     18464
     18465    psFree(md);
     18466
     18467    return status;
     18468}
     18469
     18470bool detRegisteredImfileDropTable(psDB *dbh)
     18471{
     18472    return psDBDropTable(dbh, DETREGISTEREDIMFILE_TABLE_NAME);
     18473}
     18474
     18475bool detRegisteredImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
     18476{
     18477    psMetadata *md = psMetadataAlloc();
     18478    if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S64, NULL, det_id)) {
     18479        psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");
     18480        psFree(md);
     18481        return false;
     18482    }
     18483    if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, NULL, iteration)) {
     18484        psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");
     18485        psFree(md);
     18486        return false;
     18487    }
     18488    if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, NULL, class_id)) {
     18489        psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
     18490        psFree(md);
     18491        return false;
     18492    }
     18493    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
     18494        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     18495        psFree(md);
     18496        return false;
     18497    }
     18498    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, bg)) {
     18499        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     18500        psFree(md);
     18501        return false;
     18502    }
     18503    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_stdev", PS_DATA_F64, NULL, bg_stdev)) {
     18504        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     18505        psFree(md);
     18506        return false;
     18507    }
     18508    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, bg_mean_stdev)) {
     18509        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     18510        psFree(md);
     18511        return false;
     18512    }
     18513    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) {
     18514        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     18515        psFree(md);
     18516        return false;
     18517    }
     18518    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) {
     18519        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     18520        psFree(md);
     18521        return false;
     18522    }
     18523    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) {
     18524        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     18525        psFree(md);
     18526        return false;
     18527    }
     18528    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) {
     18529        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     18530        psFree(md);
     18531        return false;
     18532    }
     18533    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
     18534        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     18535        psFree(md);
     18536        return false;
     18537    }
     18538    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
     18539        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     18540        psFree(md);
     18541        return false;
     18542    }
     18543    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) {
     18544        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     18545        psFree(md);
     18546        return false;
     18547    }
     18548
     18549    bool status = psDBInsertOneRow(dbh, DETREGISTEREDIMFILE_TABLE_NAME, md);
     18550    psFree(md);
     18551
     18552    return status;
     18553}
     18554
     18555long long detRegisteredImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
     18556{
     18557    long long       deleted = 0;
     18558
     18559    long long count = psDBDeleteRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, where, limit);
     18560    if (count < 0) {
     18561        psError(PS_ERR_UNKNOWN, true, "failed to delete row from detRegisteredImfile");
     18562        return count;
     18563
     18564        deleted += count;
     18565    }
     18566
     18567    return deleted;
     18568}
     18569bool detRegisteredImfileInsertObject(psDB *dbh, detRegisteredImfileRow *object)
     18570{
     18571    return detRegisteredImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
     18572}
     18573
     18574bool detRegisteredImfileInsertObjects(psDB *dbh, psArray *objects)
     18575{
     18576    for (long i = 0; i < psArrayLength(objects); i++) {
     18577        if (!detRegisteredImfileInsertObject(dbh, objects->data[i])) {
     18578            return false;
     18579        }
     18580    }
     18581
     18582    return true;
     18583}
     18584
     18585bool detRegisteredImfileInsertFits(psDB *dbh, const psFits *fits)
     18586{
     18587    psArray         *rowSet;
     18588
     18589    // move to (the first?) extension named  DETREGISTEREDIMFILE_TABLE_NAME
     18590    if (!psFitsMoveExtName(fits, DETREGISTEREDIMFILE_TABLE_NAME)) {
     18591        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DETREGISTEREDIMFILE_TABLE_NAME);
     18592        return false;
     18593    }
     18594
     18595    // check HDU type
     18596    if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE)  {
     18597        psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");
     18598        return false;
     18599    }
     18600
     18601    // read fits table
     18602    rowSet = psFitsReadTable(fits);
     18603    if (!rowSet) {
     18604        psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");
     18605        psFree(rowSet);
     18606        return false;
     18607    }
     18608
     18609    if (!psDBInsertRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, rowSet)) {
     18610        psError(PS_ERR_UNKNOWN, false, "databse insert failed");
     18611        psFree(rowSet);
     18612        return false;
     18613    }
     18614
     18615    psFree(rowSet);
     18616
     18617    return true;
     18618}
     18619
     18620bool detRegisteredImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
     18621{
     18622    psArray         *rowSet;
     18623
     18624    rowSet = psDBSelectRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, where, limit);
     18625    if (!rowSet) {
     18626        return false;
     18627    }
     18628
     18629    // output to fits
     18630    if (!psFitsWriteTable(fits, NULL, rowSet, DETREGISTEREDIMFILE_TABLE_NAME)) {
     18631        psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
     18632        psFree(rowSet);
     18633        return false;
     18634    }
     18635
     18636    psFree(rowSet);
     18637
     18638    return true;
     18639}
     18640
     18641psMetadata *detRegisteredImfileMetadataFromObject(const detRegisteredImfileRow *object)
     18642{
     18643    psMetadata *md = psMetadataAlloc();
     18644    if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S64, NULL, object->det_id)) {
     18645        psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");
     18646        psFree(md);
     18647        return false;
     18648    }
     18649    if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, NULL, object->iteration)) {
     18650        psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");
     18651        psFree(md);
     18652        return false;
     18653    }
     18654    if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, NULL, object->class_id)) {
     18655        psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
     18656        psFree(md);
     18657        return false;
     18658    }
     18659    if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, object->uri)) {
     18660        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     18661        psFree(md);
     18662        return false;
     18663    }
     18664    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, object->bg)) {
     18665        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     18666        psFree(md);
     18667        return false;
     18668    }
     18669    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_stdev", PS_DATA_F64, NULL, object->bg_stdev)) {
     18670        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     18671        psFree(md);
     18672        return false;
     18673    }
     18674    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, object->bg_mean_stdev)) {
     18675        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     18676        psFree(md);
     18677        return false;
     18678    }
     18679    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
     18680        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     18681        psFree(md);
     18682        return false;
     18683    }
     18684    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) {
     18685        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     18686        psFree(md);
     18687        return false;
     18688    }
     18689    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) {
     18690        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     18691        psFree(md);
     18692        return false;
     18693    }
     18694    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) {
     18695        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     18696        psFree(md);
     18697        return false;
     18698    }
     18699    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) {
     18700        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     18701        psFree(md);
     18702        return false;
     18703    }
     18704    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
     18705        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     18706        psFree(md);
     18707        return false;
     18708    }
     18709    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
     18710        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     18711        psFree(md);
     18712        return false;
     18713    }
     18714
     18715
     18716    return md;
     18717}
     18718
     18719detRegisteredImfileRow *detRegisteredImfileObjectFromMetadata(psMetadata *md)
     18720{
     18721
     18722bool status = false;
     18723    psS64 det_id = psMetadataLookupS64(&status, md, "det_id");
     18724    if (!status) {
     18725        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item det_id");
     18726        return false;
     18727    }
     18728    psS32 iteration = psMetadataLookupS32(&status, md, "iteration");
     18729    if (!status) {
     18730        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iteration");
     18731        return false;
     18732    }
     18733    char* class_id = psMetadataLookupPtr(&status, md, "class_id");
     18734    if (!status) {
     18735        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item class_id");
     18736        return false;
     18737    }
     18738    char* uri = psMetadataLookupPtr(&status, md, "uri");
     18739    if (!status) {
     18740        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
     18741        return false;
     18742    }
     18743    psF64 bg = psMetadataLookupF64(&status, md, "bg");
     18744    if (!status) {
     18745        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     18746        return false;
     18747    }
     18748    psF64 bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
     18749    if (!status) {
     18750        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     18751        return false;
     18752    }
     18753    psF64 bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
     18754    if (!status) {
     18755        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     18756        return false;
     18757    }
     18758    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
     18759    if (!status) {
     18760        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1");
     18761        return false;
     18762    }
     18763    psF64 user_2 = psMetadataLookupF64(&status, md, "user_2");
     18764    if (!status) {
     18765        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2");
     18766        return false;
     18767    }
     18768    psF64 user_3 = psMetadataLookupF64(&status, md, "user_3");
     18769    if (!status) {
     18770        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3");
     18771        return false;
     18772    }
     18773    psF64 user_4 = psMetadataLookupF64(&status, md, "user_4");
     18774    if (!status) {
     18775        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4");
     18776        return false;
     18777    }
     18778    psF64 user_5 = psMetadataLookupF64(&status, md, "user_5");
     18779    if (!status) {
     18780        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5");
     18781        return false;
     18782    }
     18783    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
     18784    if (!status) {
     18785        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item path_base");
     18786        return false;
     18787    }
     18788    psS16 fault = psMetadataLookupS16(&status, md, "fault");
     18789    if (!status) {
     18790        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fault");
     18791        return false;
     18792    }
     18793
     18794    return detRegisteredImfileRowAlloc(det_id, iteration, class_id, uri, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, path_base, fault);
     18795}
     18796psArray *detRegisteredImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     18797{
     18798    psArray         *rowSet;
     18799    psArray         *returnSet;
     18800    psU64           i;
     18801
     18802    rowSet = psDBSelectRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, where, limit);
     18803    if (!rowSet) {
     18804        return NULL;
     18805    }
     18806
     18807    // convert psMetadata rows to row objects
     18808
     18809    returnSet = psArrayAllocEmpty(rowSet->n);
     18810
     18811    for (i = 0; i < rowSet->n; i++) {
     18812        detRegisteredImfileRow *object = detRegisteredImfileObjectFromMetadata(rowSet->data[i]);
     18813        psArrayAdd(returnSet, 0, object);
     18814        psFree(object);
     18815    }
     18816
     18817    psFree(rowSet);
     18818
     18819    return returnSet;
     18820}
     18821bool detRegisteredImfileDeleteObject(psDB *dbh, const detRegisteredImfileRow *object)
     18822{
     18823    psMetadata *where = detRegisteredImfileMetadataFromObject(object);
     18824    long long count = psDBDeleteRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, where, 0);
     18825    psFree(where);
     18826    if (count < 0) {
     18827        psError(PS_ERR_UNKNOWN, true, "failed to delete row from detRegisteredImfile");
     18828        return false;
     18829    }
     18830    if (count > 1) {
     18831        // XXX should this be a psAbort() instead?  It is possible that
     18832        // having an object match multiple rows was by design.
     18833        psError(PS_ERR_UNKNOWN, true, "detRegisteredImfileRow object matched more then one row.  Check your database schema");
     18834        return false;
     18835    }
     18836
     18837    return true;
     18838}
     18839long long detRegisteredImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
     18840{
     18841    long long       deleted = 0;
     18842
     18843    for (long long i = 0; i < objects->n; i++) {
     18844        detRegisteredImfileRow *object = objects->data[i];
     18845        psMetadata *where = detRegisteredImfileMetadataFromObject(object);
     18846        long long count = psDBDeleteRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, where, limit);
     18847        psFree(where);
     18848        if (count < 0) {
     18849            psError(PS_ERR_UNKNOWN, true, "failed to delete row from detRegisteredImfile");
     18850            return count;
     18851        }
     18852
     18853        deleted += count;
     18854    }
     18855
     18856    return deleted;
     18857}
     18858bool detRegisteredImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
     18859{
     18860    PS_ASSERT_PTR_NON_NULL(objects, false);
     18861
     18862    psMetadata *output = psMetadataAlloc();
     18863    for (long i = 0; i < psArrayLength(objects); i++) {
     18864        psMetadata *md = detRegisteredImfileMetadataFromObject(objects->data[i]);
     18865        if (!psMetadataAddMetadata(
     18866            output,
     18867            PS_LIST_TAIL,
     18868            DETREGISTEREDIMFILE_TABLE_NAME,
     18869            PS_META_DUPLICATE_OK,
     18870            NULL,
     18871            md
     18872        )) {
     18873            psError(PS_ERR_UNKNOWN, false, "failed to add metadata");
     18874            psFree(md);
     18875            psFree(output);
     18876            return false;
     18877        }
     18878        psFree(md);
     18879    }
     18880
     18881    if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {
     18882        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     18883        psFree(output);
     18884    }
     18885    psFree(output);
     18886
     18887    return true;
     18888}
     18889bool detRegisteredImfilePrintObject(FILE *stream, detRegisteredImfileRow *object, bool mdcf)
     18890{
     18891    PS_ASSERT_PTR_NON_NULL(object, false);
     18892
     18893    psMetadata *md = detRegisteredImfileMetadataFromObject(object);
     18894
     18895    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
     18896        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
     18897        psFree(md);
     18898    }
     18899
     18900    psFree(md);
     18901
     18902    return true;
     18903}
Note: See TracChangeset for help on using the changeset viewer.