IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 28, 2008, 3:04:07 PM (18 years ago)
Author:
jhoblitt
Message:

VERSION 1.1.31

File:
1 edited

Legend:

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

    r16616 r16731  
    4848#define CAMMASK_TABLE_NAME "camMask"
    4949#define WARPRUN_TABLE_NAME "warpRun"
    50 #define WARPINPUTEXP_TABLE_NAME "warpInputExp"
    5150#define WARPSKYCELLMAP_TABLE_NAME "warpSkyCellMap"
    5251#define WARPSKYFILE_TABLE_NAME "warpSkyfile"
     
    95049503static void warpRunRowFree(warpRunRow *object);
    95059504
    9506 warpRunRow *warpRunRowAlloc(psS64 warp_id, const char *mode, const char *state, const char *workdir, const char *workdir_state, const char *dvodb, const char *tess_id, const char *end_stage, psTime* registered)
     9505warpRunRow *warpRunRowAlloc(psS64 warp_id, psS64 cam_id, const char *mode, const char *state, const char *workdir, const char *workdir_state, const char *dvodb, const char *tess_id, const char *end_stage, psTime* registered, bool magiced)
    95079506{
    95089507    warpRunRow      *_object;
     
    95129511
    95139512    _object->warp_id = warp_id;
     9513    _object->cam_id = cam_id;
    95149514    _object->mode = psStringCopy(mode);
    95159515    _object->state = psStringCopy(state);
     
    95209520    _object->end_stage = psStringCopy(end_stage);
    95219521    _object->registered = psTimeCopy(registered);
     9522    _object->magiced = magiced;
    95229523
    95239524    return _object;
     
    95449545        return false;
    95459546    }
     9547    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_id", PS_DATA_S64, "Key INDEX(warp_id, cam_id) fkey(cam_id) ref camProcessedExp(cam_id)", 0)) {
     9548        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
     9549        psFree(md);
     9550        return false;
     9551    }
    95469552    if (!psMetadataAdd(md, PS_LIST_TAIL, "mode", PS_DATA_STRING, "Key", "64")) {
    95479553        psError(PS_ERR_UNKNOWN, false, "failed to add item mode");
     
    95849590        return false;
    95859591    }
     9592    if (!psMetadataAdd(md, PS_LIST_TAIL, "magiced", PS_DATA_BOOL, "Key", 0)) {
     9593        psError(PS_ERR_UNKNOWN, false, "failed to add item magiced");
     9594        psFree(md);
     9595        return false;
     9596    }
    95869597
    95879598    bool status = psDBCreateTable(dbh, WARPRUN_TABLE_NAME, md);
     
    95979608}
    95989609
    9599 bool warpRunInsert(psDB * dbh, psS64 warp_id, const char *mode, const char *state, const char *workdir, const char *workdir_state, const char *dvodb, const char *tess_id, const char *end_stage, psTime* registered)
     9610bool warpRunInsert(psDB * dbh, psS64 warp_id, psS64 cam_id, const char *mode, const char *state, const char *workdir, const char *workdir_state, const char *dvodb, const char *tess_id, const char *end_stage, psTime* registered, bool magiced)
    96009611{
    96019612    psMetadata *md = psMetadataAlloc();
     
    96059616        return false;
    96069617    }
     9618    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_id", PS_DATA_S64, NULL, cam_id)) {
     9619        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
     9620        psFree(md);
     9621        return false;
     9622    }
    96079623    if (!psMetadataAdd(md, PS_LIST_TAIL, "mode", PS_DATA_STRING, NULL, mode)) {
    96089624        psError(PS_ERR_UNKNOWN, false, "failed to add item mode");
     
    96429658    if (!psMetadataAdd(md, PS_LIST_TAIL, "registered", PS_DATA_TIME, NULL, registered)) {
    96439659        psError(PS_ERR_UNKNOWN, false, "failed to add item registered");
     9660        psFree(md);
     9661        return false;
     9662    }
     9663    if (!psMetadataAdd(md, PS_LIST_TAIL, "magiced", PS_DATA_BOOL, NULL, magiced)) {
     9664        psError(PS_ERR_UNKNOWN, false, "failed to add item magiced");
    96449665        psFree(md);
    96459666        return false;
     
    96689689bool warpRunInsertObject(psDB *dbh, warpRunRow *object)
    96699690{
    9670     return warpRunInsert(dbh, object->warp_id, object->mode, object->state, object->workdir, object->workdir_state, object->dvodb, object->tess_id, object->end_stage, object->registered);
     9691    return warpRunInsert(dbh, object->warp_id, object->cam_id, object->mode, object->state, object->workdir, object->workdir_state, object->dvodb, object->tess_id, object->end_stage, object->registered, object->magiced);
    96719692}
    96729693
     
    97469767        return false;
    97479768    }
     9769    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_id", PS_DATA_S64, NULL, object->cam_id)) {
     9770        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
     9771        psFree(md);
     9772        return false;
     9773    }
    97489774    if (!psMetadataAdd(md, PS_LIST_TAIL, "mode", PS_DATA_STRING, NULL, object->mode)) {
    97499775        psError(PS_ERR_UNKNOWN, false, "failed to add item mode");
     
    97869812        return false;
    97879813    }
     9814    if (!psMetadataAdd(md, PS_LIST_TAIL, "magiced", PS_DATA_BOOL, NULL, object->magiced)) {
     9815        psError(PS_ERR_UNKNOWN, false, "failed to add item magiced");
     9816        psFree(md);
     9817        return false;
     9818    }
    97889819
    97899820
     
    98009831        return false;
    98019832    }
     9833    psS64 cam_id = psMetadataLookupS64(&status, md, "cam_id");
     9834    if (!status) {
     9835        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item cam_id");
     9836        return false;
     9837    }
    98029838    char* mode = psMetadataLookupPtr(&status, md, "mode");
    98039839    if (!status) {
     
    98409876        return false;
    98419877    }
    9842 
    9843     return warpRunRowAlloc(warp_id, mode, state, workdir, workdir_state, dvodb, tess_id, end_stage, registered);
     9878    bool magiced = psMetadataLookupBool(&status, md, "magiced");
     9879    if (!status) {
     9880        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item magiced");
     9881        return false;
     9882    }
     9883
     9884    return warpRunRowAlloc(warp_id, cam_id, mode, state, workdir, workdir_state, dvodb, tess_id, end_stage, registered, magiced);
    98449885}
    98459886psArray *warpRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    99579998    return true;
    99589999}
    9959 static void warpInputExpRowFree(warpInputExpRow *object);
    9960 
    9961 warpInputExpRow *warpInputExpRowAlloc(psS64 warp_id, psS64 cam_id, bool magiced)
    9962 {
    9963     warpInputExpRow *_object;
    9964 
    9965     _object = psAlloc(sizeof(warpInputExpRow));
    9966     psMemSetDeallocator(_object, (psFreeFunc)warpInputExpRowFree);
    9967 
    9968     _object->warp_id = warp_id;
    9969     _object->cam_id = cam_id;
    9970     _object->magiced = magiced;
    9971 
    9972     return _object;
    9973 }
    9974 
    9975 static void warpInputExpRowFree(warpInputExpRow *object)
    9976 {
    9977 }
    9978 
    9979 bool warpInputExpCreateTable(psDB *dbh)
    9980 {
    9981     psMetadata *md = psMetadataAlloc();
    9982     if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S64, "Primary Key fkey(warp_id) ref warpRun(warp_id)", 0)) {
    9983         psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
    9984         psFree(md);
    9985         return false;
    9986     }
    9987     if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_id", PS_DATA_S64, "Primary Key fkey(cam_id) ref camProcessedExp(cam_id)", 0)) {
    9988         psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
    9989         psFree(md);
    9990         return false;
    9991     }
    9992     if (!psMetadataAdd(md, PS_LIST_TAIL, "magiced", PS_DATA_BOOL, "Key", 0)) {
    9993         psError(PS_ERR_UNKNOWN, false, "failed to add item magiced");
    9994         psFree(md);
    9995         return false;
    9996     }
    9997 
    9998     bool status = psDBCreateTable(dbh, WARPINPUTEXP_TABLE_NAME, md);
    9999 
    10000     psFree(md);
    10001 
    10002     return status;
    10003 }
    10004 
    10005 bool warpInputExpDropTable(psDB *dbh)
    10006 {
    10007     return psDBDropTable(dbh, WARPINPUTEXP_TABLE_NAME);
    10008 }
    10009 
    10010 bool warpInputExpInsert(psDB * dbh, psS64 warp_id, psS64 cam_id, bool magiced)
    10011 {
    10012     psMetadata *md = psMetadataAlloc();
    10013     if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S64, NULL, warp_id)) {
    10014         psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
    10015         psFree(md);
    10016         return false;
    10017     }
    10018     if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_id", PS_DATA_S64, NULL, cam_id)) {
    10019         psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
    10020         psFree(md);
    10021         return false;
    10022     }
    10023     if (!psMetadataAdd(md, PS_LIST_TAIL, "magiced", PS_DATA_BOOL, NULL, magiced)) {
    10024         psError(PS_ERR_UNKNOWN, false, "failed to add item magiced");
    10025         psFree(md);
    10026         return false;
    10027     }
    10028 
    10029     bool status = psDBInsertOneRow(dbh, WARPINPUTEXP_TABLE_NAME, md);
    10030     psFree(md);
    10031 
    10032     return status;
    10033 }
    10034 
    10035 long long warpInputExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
    10036 {
    10037     long long       deleted = 0;
    10038 
    10039     long long count = psDBDeleteRows(dbh, WARPINPUTEXP_TABLE_NAME, where, limit);
    10040     if (count < 0) {
    10041         psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpInputExp");
    10042         return count;
    10043 
    10044         deleted += count;
    10045     }
    10046 
    10047     return deleted;
    10048 }
    10049 bool warpInputExpInsertObject(psDB *dbh, warpInputExpRow *object)
    10050 {
    10051     return warpInputExpInsert(dbh, object->warp_id, object->cam_id, object->magiced);
    10052 }
    10053 
    10054 bool warpInputExpInsertObjects(psDB *dbh, psArray *objects)
    10055 {
    10056     for (long i = 0; i < psArrayLength(objects); i++) {
    10057         if (!warpInputExpInsertObject(dbh, objects->data[i])) {
    10058             return false;
    10059         }
    10060     }
    10061 
    10062     return true;
    10063 }
    10064 
    10065 bool warpInputExpInsertFits(psDB *dbh, const psFits *fits)
    10066 {
    10067     psArray         *rowSet;
    10068 
    10069     // move to (the first?) extension named  WARPINPUTEXP_TABLE_NAME
    10070     if (!psFitsMoveExtName(fits, WARPINPUTEXP_TABLE_NAME)) {
    10071         psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", WARPINPUTEXP_TABLE_NAME);
    10072         return false;
    10073     }
    10074 
    10075     // check HDU type
    10076     if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE)  {
    10077         psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");
    10078         return false;
    10079     }
    10080 
    10081     // read fits table
    10082     rowSet = psFitsReadTable(fits);
    10083     if (!rowSet) {
    10084         psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");
    10085         psFree(rowSet);
    10086         return false;
    10087     }
    10088 
    10089     if (!psDBInsertRows(dbh, WARPINPUTEXP_TABLE_NAME, rowSet)) {
    10090         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
    10091         psFree(rowSet);
    10092         return false;
    10093     }
    10094 
    10095     psFree(rowSet);
    10096 
    10097     return true;
    10098 }
    10099 
    10100 bool warpInputExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
    10101 {
    10102     psArray         *rowSet;
    10103 
    10104     rowSet = psDBSelectRows(dbh, WARPINPUTEXP_TABLE_NAME, where, limit);
    10105     if (!rowSet) {
    10106         return false;
    10107     }
    10108 
    10109     // output to fits
    10110     if (!psFitsWriteTable(fits, NULL, rowSet, WARPINPUTEXP_TABLE_NAME)) {
    10111         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
    10112         psFree(rowSet);
    10113         return false;
    10114     }
    10115 
    10116     psFree(rowSet);
    10117 
    10118     return true;
    10119 }
    10120 
    10121 psMetadata *warpInputExpMetadataFromObject(const warpInputExpRow *object)
    10122 {
    10123     psMetadata *md = psMetadataAlloc();
    10124     if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S64, NULL, object->warp_id)) {
    10125         psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
    10126         psFree(md);
    10127         return false;
    10128     }
    10129     if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_id", PS_DATA_S64, NULL, object->cam_id)) {
    10130         psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id");
    10131         psFree(md);
    10132         return false;
    10133     }
    10134     if (!psMetadataAdd(md, PS_LIST_TAIL, "magiced", PS_DATA_BOOL, NULL, object->magiced)) {
    10135         psError(PS_ERR_UNKNOWN, false, "failed to add item magiced");
    10136         psFree(md);
    10137         return false;
    10138     }
    10139 
    10140 
    10141     return md;
    10142 }
    10143 
    10144 warpInputExpRow *warpInputExpObjectFromMetadata(psMetadata *md)
    10145 {
    10146 
    10147 bool status = false;
    10148     psS64 warp_id = psMetadataLookupS64(&status, md, "warp_id");
    10149     if (!status) {
    10150         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item warp_id");
    10151         return false;
    10152     }
    10153     psS64 cam_id = psMetadataLookupS64(&status, md, "cam_id");
    10154     if (!status) {
    10155         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item cam_id");
    10156         return false;
    10157     }
    10158     bool magiced = psMetadataLookupBool(&status, md, "magiced");
    10159     if (!status) {
    10160         psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item magiced");
    10161         return false;
    10162     }
    10163 
    10164     return warpInputExpRowAlloc(warp_id, cam_id, magiced);
    10165 }
    10166 psArray *warpInputExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
    10167 {
    10168     psArray         *rowSet;
    10169     psArray         *returnSet;
    10170     psU64           i;
    10171 
    10172     rowSet = psDBSelectRows(dbh, WARPINPUTEXP_TABLE_NAME, where, limit);
    10173     if (!rowSet) {
    10174         return NULL;
    10175     }
    10176 
    10177     // convert psMetadata rows to row objects
    10178 
    10179     returnSet = psArrayAllocEmpty(rowSet->n);
    10180 
    10181     for (i = 0; i < rowSet->n; i++) {
    10182         warpInputExpRow *object = warpInputExpObjectFromMetadata(rowSet->data[i]);
    10183         if (!object) {
    10184             psFree(object);
    10185             psFree(returnSet);
    10186             psError(PS_ERR_UNKNOWN, false, "database error");
    10187             return NULL;
    10188         }
    10189         psArrayAdd(returnSet, 0, object);
    10190         psFree(object);
    10191     }
    10192 
    10193     psFree(rowSet);
    10194 
    10195     return returnSet;
    10196 }
    10197 bool warpInputExpDeleteObject(psDB *dbh, const warpInputExpRow *object)
    10198 {
    10199     psMetadata *where = warpInputExpMetadataFromObject(object);
    10200     long long count = psDBDeleteRows(dbh, WARPINPUTEXP_TABLE_NAME, where, 0);
    10201     psFree(where);
    10202     if (count < 0) {
    10203         psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpInputExp");
    10204         return false;
    10205     }
    10206     if (count > 1) {
    10207         // XXX should this be a psAbort() instead?  It is possible that
    10208         // having an object match multiple rows was by design.
    10209         psError(PS_ERR_UNKNOWN, true, "warpInputExpRow object matched more then one row.  Check your database schema");
    10210         return false;
    10211     }
    10212 
    10213     return true;
    10214 }
    10215 long long warpInputExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
    10216 {
    10217     long long       deleted = 0;
    10218 
    10219     for (long long i = 0; i < objects->n; i++) {
    10220         warpInputExpRow *object = objects->data[i];
    10221         psMetadata *where = warpInputExpMetadataFromObject(object);
    10222         long long count = psDBDeleteRows(dbh, WARPINPUTEXP_TABLE_NAME, where, limit);
    10223         psFree(where);
    10224         if (count < 0) {
    10225             psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpInputExp");
    10226             return count;
    10227         }
    10228 
    10229         deleted += count;
    10230     }
    10231 
    10232     return deleted;
    10233 }
    10234 bool warpInputExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
    10235 {
    10236     PS_ASSERT_PTR_NON_NULL(objects, false);
    10237 
    10238     psMetadata *output = psMetadataAlloc();
    10239     for (long i = 0; i < psArrayLength(objects); i++) {
    10240         psMetadata *md = warpInputExpMetadataFromObject(objects->data[i]);
    10241         if (!psMetadataAddMetadata(
    10242             output,
    10243             PS_LIST_TAIL,
    10244             WARPINPUTEXP_TABLE_NAME,
    10245             PS_META_DUPLICATE_OK,
    10246             NULL,
    10247             md
    10248         )) {
    10249             psError(PS_ERR_UNKNOWN, false, "failed to add metadata");
    10250             psFree(md);
    10251             psFree(output);
    10252             return false;
    10253         }
    10254         psFree(md);
    10255     }
    10256 
    10257     if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {
    10258         psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
    10259         psFree(output);
    10260     }
    10261     psFree(output);
    10262 
    10263     return true;
    10264 }
    10265 bool warpInputExpPrintObject(FILE *stream, warpInputExpRow *object, bool mdcf)
    10266 {
    10267     PS_ASSERT_PTR_NON_NULL(object, false);
    10268 
    10269     psMetadata *md = warpInputExpMetadataFromObject(object);
    10270 
    10271     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
    10272         psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
    10273         psFree(md);
    10274     }
    10275 
    10276     psFree(md);
    10277 
    10278     return true;
    10279 }
    1028010000static void warpSkyCellMapRowFree(warpSkyCellMapRow *object);
    1028110001
     
    1030710027{
    1030810028    psMetadata *md = psMetadataAlloc();
    10309     if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S64, "Primary Key fkey(warp_id, cam_id) ref warpInputExp(warp_id, cam_id)", 0)) {
     10029    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S64, "Primary Key fkey(warp_id, cam_id) ref warpRun(warp_id, cam_id)", 0)) {
    1031010030        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
    1031110031        psFree(md);
     
    2407823798static void flatcorrRunRowFree(flatcorrRunRow *object);
    2407923799
    24080 flatcorrRunRow *flatcorrRunRowAlloc(psS64 corr_id, const char *dvodb, const char *filter, const char *state, const char *workdir, const char *label, const char *stats)
     23800flatcorrRunRow *flatcorrRunRowAlloc(psS64 corr_id, const char *dvodb, const char *filter, const char *state, const char *workdir, const char *label, const char *stats, const char *region)
    2408123801{
    2408223802    flatcorrRunRow  *_object;
     
    2409223812    _object->label = psStringCopy(label);
    2409323813    _object->stats = psStringCopy(stats);
     23814    _object->region = psStringCopy(region);
    2409423815
    2409523816    return _object;
     
    2410423825    psFree(object->label);
    2410523826    psFree(object->stats);
     23827    psFree(object->region);
    2410623828}
    2410723829
     
    2414423866        return false;
    2414523867    }
     23868    if (!psMetadataAdd(md, PS_LIST_TAIL, "region", PS_DATA_STRING, NULL, "255")) {
     23869        psError(PS_ERR_UNKNOWN, false, "failed to add item region");
     23870        psFree(md);
     23871        return false;
     23872    }
    2414623873
    2414723874    bool status = psDBCreateTable(dbh, FLATCORRRUN_TABLE_NAME, md);
     
    2415723884}
    2415823885
    24159 bool flatcorrRunInsert(psDB * dbh, psS64 corr_id, const char *dvodb, const char *filter, const char *state, const char *workdir, const char *label, const char *stats)
     23886bool flatcorrRunInsert(psDB * dbh, psS64 corr_id, const char *dvodb, const char *filter, const char *state, const char *workdir, const char *label, const char *stats, const char *region)
    2416023887{
    2416123888    psMetadata *md = psMetadataAlloc();
     
    2419223919    if (!psMetadataAdd(md, PS_LIST_TAIL, "stats", PS_DATA_STRING, NULL, stats)) {
    2419323920        psError(PS_ERR_UNKNOWN, false, "failed to add item stats");
     23921        psFree(md);
     23922        return false;
     23923    }
     23924    if (!psMetadataAdd(md, PS_LIST_TAIL, "region", PS_DATA_STRING, NULL, region)) {
     23925        psError(PS_ERR_UNKNOWN, false, "failed to add item region");
    2419423926        psFree(md);
    2419523927        return false;
     
    2421823950bool flatcorrRunInsertObject(psDB *dbh, flatcorrRunRow *object)
    2421923951{
    24220     return flatcorrRunInsert(dbh, object->corr_id, object->dvodb, object->filter, object->state, object->workdir, object->label, object->stats);
     23952    return flatcorrRunInsert(dbh, object->corr_id, object->dvodb, object->filter, object->state, object->workdir, object->label, object->stats, object->region);
    2422123953}
    2422223954
     
    2432624058        return false;
    2432724059    }
     24060    if (!psMetadataAdd(md, PS_LIST_TAIL, "region", PS_DATA_STRING, NULL, object->region)) {
     24061        psError(PS_ERR_UNKNOWN, false, "failed to add item region");
     24062        psFree(md);
     24063        return false;
     24064    }
    2432824065
    2432924066
     
    2437024107        return false;
    2437124108    }
    24372 
    24373     return flatcorrRunRowAlloc(corr_id, dvodb, filter, state, workdir, label, stats);
     24109    char* region = psMetadataLookupPtr(&status, md, "region");
     24110    if (!status) {
     24111        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item region");
     24112        return false;
     24113    }
     24114
     24115    return flatcorrRunRowAlloc(corr_id, dvodb, filter, state, workdir, label, stats, region);
    2437424116}
    2437524117psArray *flatcorrRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
Note: See TracChangeset for help on using the changeset viewer.