IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 14451 for trunk/ippdb/src


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

rebuilt with jbhuild 1.03

Location:
trunk/ippdb/src
Files:
2 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}
  • trunk/ippdb/src/ippdb.h

    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.
     
    78897889    psF64           bg_stdev;
    78907890    psF64           bg_mean_stdev;
     7891    psF64           bg_skewness;
     7892    psF64           bg_kurtosis;
    78917893    psF64           bin_stdev;
    78927894    psF64           fringe_0;
    78937895    psF64           fringe_1;
    78947896    psF64           fringe_2;
     7897    psF64           fringe_resid_0;
     7898    psF64           fringe_resid_1;
     7899    psF64           fringe_resid_2;
    78957900    psF64           user_1;
    78967901    psF64           user_2;
     
    79177922    psF64           bg_stdev,
    79187923    psF64           bg_mean_stdev,
     7924    psF64           bg_skewness,
     7925    psF64           bg_kurtosis,
    79197926    psF64           bin_stdev,
    79207927    psF64           fringe_0,
    79217928    psF64           fringe_1,
    79227929    psF64           fringe_2,
     7930    psF64           fringe_resid_0,
     7931    psF64           fringe_resid_1,
     7932    psF64           fringe_resid_2,
    79237933    psF64           user_1,
    79247934    psF64           user_2,
     
    79667976    psF64           bg_stdev,
    79677977    psF64           bg_mean_stdev,
     7978    psF64           bg_skewness,
     7979    psF64           bg_kurtosis,
    79687980    psF64           bin_stdev,
    79697981    psF64           fringe_0,
    79707982    psF64           fringe_1,
    79717983    psF64           fringe_2,
     7984    psF64           fringe_resid_0,
     7985    psF64           fringe_resid_1,
     7986    psF64           fringe_resid_2,
    79727987    psF64           user_1,
    79737988    psF64           user_2,
     
    81398154    psF64           bg_stdev;
    81408155    psF64           bg_mean_stdev;
     8156    psF64           bg_skewness;
     8157    psF64           bg_kurtosis;
    81418158    psF64           bin_stdev;
    81428159    psF64           fringe_0;
    81438160    psF64           fringe_1;
    81448161    psF64           fringe_2;
     8162    psF64           fringe_resid_0;
     8163    psF64           fringe_resid_1;
     8164    psF64           fringe_resid_2;
    81458165    psF64           user_1;
    81468166    psF64           user_2;
     
    81668186    psF64           bg_stdev,
    81678187    psF64           bg_mean_stdev,
     8188    psF64           bg_skewness,
     8189    psF64           bg_kurtosis,
    81688190    psF64           bin_stdev,
    81698191    psF64           fringe_0,
    81708192    psF64           fringe_1,
    81718193    psF64           fringe_2,
     8194    psF64           fringe_resid_0,
     8195    psF64           fringe_resid_1,
     8196    psF64           fringe_resid_2,
    81728197    psF64           user_1,
    81738198    psF64           user_2,
     
    82148239    psF64           bg_stdev,
    82158240    psF64           bg_mean_stdev,
     8241    psF64           bg_skewness,
     8242    psF64           bg_kurtosis,
    82168243    psF64           bin_stdev,
    82178244    psF64           fringe_0,
    82188245    psF64           fringe_1,
    82198246    psF64           fringe_2,
     8247    psF64           fringe_resid_0,
     8248    psF64           fringe_resid_1,
     8249    psF64           fringe_resid_2,
    82208250    psF64           user_1,
    82218251    psF64           user_2,
     
    85888618    bool            mdcf                ///< format as mdconfig or simple
    85898619);
     8620/** detRegisteredImfileRow data structure
     8621 *
     8622 * Structure for representing a single row of detRegisteredImfile table data.
     8623 */
     8624
     8625typedef struct {
     8626    psS64           det_id;
     8627    psS32           iteration;
     8628    char            *class_id;
     8629    char            *uri;
     8630    psF64           bg;
     8631    psF64           bg_stdev;
     8632    psF64           bg_mean_stdev;
     8633    psF64           user_1;
     8634    psF64           user_2;
     8635    psF64           user_3;
     8636    psF64           user_4;
     8637    psF64           user_5;
     8638    char            *path_base;
     8639    psS16           fault;
     8640} detRegisteredImfileRow;
     8641
     8642/** Creates a new detRegisteredImfileRow object
     8643 *
     8644 *  @return A new detRegisteredImfileRow object or NULL on failure.
     8645 */
     8646
     8647detRegisteredImfileRow *detRegisteredImfileRowAlloc(
     8648    psS64           det_id,
     8649    psS32           iteration,
     8650    const char      *class_id,
     8651    const char      *uri,
     8652    psF64           bg,
     8653    psF64           bg_stdev,
     8654    psF64           bg_mean_stdev,
     8655    psF64           user_1,
     8656    psF64           user_2,
     8657    psF64           user_3,
     8658    psF64           user_4,
     8659    psF64           user_5,
     8660    const char      *path_base,
     8661    psS16           fault
     8662);
     8663
     8664/** Creates a new detRegisteredImfile table
     8665 *
     8666 * @return true on success
     8667 */
     8668
     8669bool detRegisteredImfileCreateTable(
     8670    psDB            *dbh                ///< Database handle
     8671);
     8672
     8673/** Deletes a detRegisteredImfile table
     8674 *
     8675 * @return true on success
     8676 */
     8677
     8678bool detRegisteredImfileDropTable(
     8679    psDB            *dbh                ///< Database handle
     8680);
     8681
     8682/** Insert a single row into a table
     8683 *
     8684 * This function constructs and inserts a single row based on it's parameters.
     8685 *
     8686 * @return true on success
     8687 */
     8688
     8689bool detRegisteredImfileInsert(
     8690    psDB            *dbh,               ///< Database handle
     8691    psS64           det_id,
     8692    psS32           iteration,
     8693    const char      *class_id,
     8694    const char      *uri,
     8695    psF64           bg,
     8696    psF64           bg_stdev,
     8697    psF64           bg_mean_stdev,
     8698    psF64           user_1,
     8699    psF64           user_2,
     8700    psF64           user_3,
     8701    psF64           user_4,
     8702    psF64           user_5,
     8703    const char      *path_base,
     8704    psS16           fault
     8705);
     8706
     8707/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     8708 *
     8709 * @return A The number of rows removed or a negative value on error
     8710 */
     8711
     8712long long detRegisteredImfileDelete(
     8713    psDB            *dbh,               ///< Database handle
     8714    const psMetadata *where,            ///< Row match criteria
     8715    unsigned long long limit            ///< Maximum number of elements to delete
     8716);
     8717
     8718/** Insert a single detRegisteredImfileRow object into a table
     8719 *
     8720 * This function constructs and inserts a single row based on it's parameters.
     8721 *
     8722 * @return true on success
     8723 */
     8724
     8725bool detRegisteredImfileInsertObject(
     8726    psDB            *dbh,               ///< Database handle
     8727    detRegisteredImfileRow *object             ///< detRegisteredImfileRow object
     8728);
     8729
     8730/** Insert an array of detRegisteredImfileRow object into a table
     8731 *
     8732 * This function constructs and inserts multiple rows based on it's parameters.
     8733 *
     8734 * @return true on success
     8735 */
     8736
     8737bool detRegisteredImfileInsertObjects(
     8738    psDB            *dbh,               ///< Database handle
     8739    psArray         *objects            ///< array of detRegisteredImfileRow objects
     8740);
     8741
     8742/** Insert data from a binary FITS table detRegisteredImfileRow into the database
     8743 *
     8744 * This function expects a psFits object with a FITS table as the first
     8745 * extension.  The table must have at least one row of data in it, that is of
     8746 * the appropriate format (number of columns and their type).  All other
     8747 * extensions are ignored.
     8748 *
     8749 * @return true on success
     8750 */
     8751
     8752bool detRegisteredImfileInsertFits(
     8753    psDB            *dbh,               ///< Database handle
     8754    const psFits    *fits               ///< psFits object
     8755);
     8756
     8757/** Selects up to limit from the database and returns them in a binary FITS table
     8758 *
     8759 * This function assumes an empty psFits object and will create a FITS table
     8760 * as the first extension.
     8761 *
     8762 *  See psDBSelectRows() for documentation on the format of where.
     8763 *
     8764 * @return true on success
     8765 */
     8766
     8767bool detRegisteredImfileSelectRowsFits(
     8768    psDB            *dbh,               ///< Database handle
     8769    psFits          *fits,              ///< psFits object
     8770    const psMetadata *where,            ///< Row match criteria
     8771    unsigned long long limit            ///< Maximum number of elements to return
     8772);
     8773
     8774/** Convert a detRegisteredImfileRow into an equivalent psMetadata
     8775 *
     8776 * @return A psMetadata pointer or NULL on error
     8777 */
     8778
     8779psMetadata *detRegisteredImfileMetadataFromObject(
     8780    const detRegisteredImfileRow *object             ///< fooRow to convert into a psMetadata
     8781);
     8782
     8783/** Convert a psMetadata into an equivalent fooRow
     8784 *
     8785 * @return A detRegisteredImfileRow pointer or NULL on error
     8786 */
     8787
     8788detRegisteredImfileRow *detRegisteredImfileObjectFromMetadata(
     8789    psMetadata      *md                 ///< psMetadata to convert into a fooRow
     8790);
     8791/** Selects up to limit rows from the database and returns as detRegisteredImfileRow objects in a psArray
     8792 *
     8793 *  See psDBSelectRows() for documentation on the format of where.
     8794 *
     8795 * @return A psArray pointer or NULL on error
     8796 */
     8797
     8798psArray *detRegisteredImfileSelectRowObjects(
     8799    psDB            *dbh,               ///< Database handle
     8800    const psMetadata *where,            ///< Row match criteria
     8801    unsigned long long limit            ///< Maximum number of elements to return
     8802);
     8803/** Deletes a row from the database coresponding to an detRegisteredImfile
     8804 *
     8805 *  Note that a 'where' search psMetadata is constructed from each object and
     8806 *  used to find rows to delete.
     8807 *
     8808 * @return A The number of rows removed or a negative value on error
     8809 */
     8810
     8811bool detRegisteredImfileDeleteObject(
     8812    psDB            *dbh,               ///< Database handle
     8813    const detRegisteredImfileRow *object    ///< Object to delete
     8814);
     8815/** Deletes up to limit rows from the database and returns the number of rows actually deleted.
     8816 *
     8817 *  Note that a 'where' search psMetadata is constructed from each object and
     8818 *  used to find rows to delete.
     8819 *
     8820 * @return A The number of rows removed or a negative value on error
     8821 */
     8822
     8823long long detRegisteredImfileDeleteRowObjects(
     8824    psDB            *dbh,               ///< Database handle
     8825    const psArray   *objects,           ///< Array of objects to delete
     8826    unsigned long long limit            ///< Maximum number of elements to delete
     8827);
     8828/** Formats and prints an array of detRegisteredImfileRow objects
     8829 *
     8830 * When mdcf is set the formated output is in psMetadataConfig
     8831 * format, otherwise it is in a simple tabular format.
     8832 *
     8833 * @return true on success
     8834 */
     8835
     8836bool detRegisteredImfilePrintObjects(
     8837    FILE            *stream,            ///< a stream
     8838    psArray         *objects,           ///< An array of detRegisteredImfileRow objects
     8839    bool            mdcf                ///< format as mdconfig or simple
     8840);
     8841/** Formats and prints an detRegisteredImfileRow object
     8842 *
     8843 * When mdcf is set the formated output is in psMetadataConfig
     8844 * format, otherwise it is in a simple tabular format.
     8845 *
     8846 * @return true on success
     8847 */
     8848
     8849bool detRegisteredImfilePrintObject(
     8850    FILE            *stream,            ///< a stream
     8851    detRegisteredImfileRow *object,    ///< an detRegisteredImfileRow object
     8852    bool            mdcf                ///< format as mdconfig or simple
     8853);
    85908854
    85918855/// @}
     
    85958859#endif
    85968860
    8597 #endif // DETRUNSUMMARY_DB_H
     8861#endif // DETREGISTEREDIMFILE_DB_H
Note: See TracChangeset for help on using the changeset viewer.