Changeset 10238
- Timestamp:
- Nov 28, 2006, 12:23:25 PM (20 years ago)
- Location:
- trunk/ippdb
- Files:
-
- 15 edited
-
Makefile.am (modified) (2 diffs)
-
configure.ac (modified) (2 diffs)
-
src/ippdb.c (modified) (9 diffs)
-
src/ippdb.h (modified) (2 diffs)
-
tests/alloc.c (modified) (1 diff)
-
tests/createtable.c (modified) (1 diff)
-
tests/dbcleanup.c (modified) (1 diff)
-
tests/dbsetup.c (modified) (1 diff)
-
tests/droptable.c (modified) (1 diff)
-
tests/insert.c (modified) (1 diff)
-
tests/insertfits.c (modified) (1 diff)
-
tests/insertobject.c (modified) (1 diff)
-
tests/metadatafromobject.c (modified) (1 diff)
-
tests/objectfrommetadata.c (modified) (1 diff)
-
tests/selectrowsfits.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippdb/Makefile.am
r10110 r10238 39 39 $(top_builddir)/docs/man/man3/detNormalizedImfileRow.3 \ 40 40 $(top_builddir)/docs/man/man3/detNormalizedExpRow.3 \ 41 $(top_builddir)/docs/man/man3/detMasterFrameRow.3 \42 $(top_builddir)/docs/man/man3/detMasterImfileRow.3 \43 41 $(top_builddir)/docs/man/man3/detResidImfileRow.3 \ 44 42 $(top_builddir)/docs/man/man3/detResidExpRow.3 \ … … 46 44 47 45 48 docs/man/man3/ippdb.3 docs/man/man3/expTagCounterRow.3 docs/man/man3/summitExpRow.3 docs/man/man3/summitImfileRow.3 docs/man/man3/pzPendingExpRow.3 docs/man/man3/pzPendingImfileRow.3 docs/man/man3/pzDoneExpRow.3 docs/man/man3/pzDoneImfileRow.3 docs/man/man3/newExpRow.3 docs/man/man3/newImfileRow.3 docs/man/man3/rawDetrendExpRow.3 docs/man/man3/rawScienceExpRow.3 docs/man/man3/rawImfileRow.3 docs/man/man3/p1PendingExpRow.3 docs/man/man3/p2PendingExpRow.3 docs/man/man3/p2PendingImfileRow.3 docs/man/man3/p2ProcessedExpRow.3 docs/man/man3/p2MaskRow.3 docs/man/man3/p2ProcessedImfileRow.3 docs/man/man3/p3PendingExpRow.3 docs/man/man3/p3ProcessedExpRow.3 docs/man/man3/p3MaskRow.3 docs/man/man3/detRunRow.3 docs/man/man3/detInputExpRow.3 docs/man/man3/detProcessedImfileRow.3 docs/man/man3/detProcessedExpRow.3 docs/man/man3/detStackedImfileRow.3 docs/man/man3/detNormalizedStatImfileRow.3 docs/man/man3/detNormalizedImfileRow.3 docs/man/man3/detNormalizedExpRow.3 docs/man/man3/det MasterFrameRow.3 docs/man/man3/detMasterImfileRow.3 docs/man/man3/detResidImfileRow.3 docs/man/man3/detResidExpRow.3 docs/man/man3/detRunSummaryRow.3:46 docs/man/man3/ippdb.3 docs/man/man3/expTagCounterRow.3 docs/man/man3/summitExpRow.3 docs/man/man3/summitImfileRow.3 docs/man/man3/pzPendingExpRow.3 docs/man/man3/pzPendingImfileRow.3 docs/man/man3/pzDoneExpRow.3 docs/man/man3/pzDoneImfileRow.3 docs/man/man3/newExpRow.3 docs/man/man3/newImfileRow.3 docs/man/man3/rawDetrendExpRow.3 docs/man/man3/rawScienceExpRow.3 docs/man/man3/rawImfileRow.3 docs/man/man3/p1PendingExpRow.3 docs/man/man3/p2PendingExpRow.3 docs/man/man3/p2PendingImfileRow.3 docs/man/man3/p2ProcessedExpRow.3 docs/man/man3/p2MaskRow.3 docs/man/man3/p2ProcessedImfileRow.3 docs/man/man3/p3PendingExpRow.3 docs/man/man3/p3ProcessedExpRow.3 docs/man/man3/p3MaskRow.3 docs/man/man3/detRunRow.3 docs/man/man3/detInputExpRow.3 docs/man/man3/detProcessedImfileRow.3 docs/man/man3/detProcessedExpRow.3 docs/man/man3/detStackedImfileRow.3 docs/man/man3/detNormalizedStatImfileRow.3 docs/man/man3/detNormalizedImfileRow.3 docs/man/man3/detNormalizedExpRow.3 docs/man/man3/detResidImfileRow.3 docs/man/man3/detResidExpRow.3 docs/man/man3/detRunSummaryRow.3: 49 47 $(DOXYGEN) 50 48 -
trunk/ippdb/configure.ac
r10155 r10238 1 1 dnl 2 dnl This file was generated by glueforge 0.3 12 dnl This file was generated by glueforge 0.32 3 3 dnl 4 4 dnl Do NOT directly edit this file. … … 7 7 AC_PREREQ(2.59) 8 8 9 AC_INIT([ippdb], [0.0. 59], [pan-starrs.ifa.hawaii.edu])9 AC_INIT([ippdb], [0.0.60], [pan-starrs.ifa.hawaii.edu]) 10 10 AC_CONFIG_SRCDIR([ippdb.pc.in]) 11 11 -
trunk/ippdb/src/ippdb.c
r10155 r10238 20 20 /* 21 21 * 22 * This file was generated by glueforge 0.3 122 * This file was generated by glueforge 0.32 23 23 * 24 24 * Do NOT directly edit this file. … … 60 60 #define DETNORMALIZEDIMFILE_TABLE_NAME "detNormalizedImfile" 61 61 #define DETNORMALIZEDEXP_TABLE_NAME "detNormalizedExp" 62 #define DETMASTERFRAME_TABLE_NAME "detMasterFrame"63 #define DETMASTERIMFILE_TABLE_NAME "detMasterImfile"64 62 #define DETRESIDIMFILE_TABLE_NAME "detResidImfile" 65 63 #define DETRESIDEXP_TABLE_NAME "detResidExp" … … 542 540 return false; 543 541 } 544 psTime* dateobs = psTimeFromISO("", PS_TIME_UTC); 545 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, dateobs)) { 546 psFree(dateobs); 542 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, NULL)) { 547 543 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs"); 548 544 psFree(md); 549 545 return false; 550 546 } 551 psFree(dateobs);552 547 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, "64")) { 553 548 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type"); … … 2718 2713 return false; 2719 2714 } 2720 psTime* dateobs = psTimeFromISO("", PS_TIME_UTC); 2721 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, dateobs)) { 2722 psFree(dateobs); 2715 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, NULL)) { 2723 2716 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs"); 2724 2717 psFree(md); 2725 2718 return false; 2726 2719 } 2727 psFree(dateobs);2728 2720 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, "64")) { 2729 2721 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type"); … … 3519 3511 return false; 3520 3512 } 3521 psTime* dateobs = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_UTC); 3522 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, dateobs)) { 3523 psFree(dateobs); 3513 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, NULL)) { 3524 3514 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs"); 3525 3515 psFree(md); 3526 3516 return false; 3527 3517 } 3528 psFree(dateobs);3529 3518 3530 3519 bool status = psDBCreateTable(dbh, RAWDETRENDEXP_TABLE_NAME, md); … … 4165 4154 return false; 4166 4155 } 4167 psTime* dateobs = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_UTC); 4168 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, dateobs)) { 4169 psFree(dateobs); 4156 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, NULL)) { 4170 4157 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs"); 4171 4158 psFree(md); 4172 4159 return false; 4173 4160 } 4174 psFree(dateobs);4175 4161 4176 4162 bool status = psDBCreateTable(dbh, RAWSCIENCEEXP_TABLE_NAME, md); … … 4812 4798 return false; 4813 4799 } 4814 psTime* dateobs = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_UTC); 4815 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, dateobs)) { 4816 psFree(dateobs); 4800 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, NULL)) { 4817 4801 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs"); 4818 4802 psFree(md); 4819 4803 return false; 4820 4804 } 4821 psFree(dateobs);4822 4805 4823 4806 bool status = psDBCreateTable(dbh, RAWIMFILE_TABLE_NAME, md); … … 8657 8640 return false; 8658 8641 } 8659 psTime* registered = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_TAI); 8660 if (!psMetadataAdd(md, PS_LIST_TAIL, "registered", PS_DATA_TIME, NULL, registered)) { 8661 psFree(registered); 8642 if (!psMetadataAdd(md, PS_LIST_TAIL, "registered", PS_DATA_TIME, NULL, NULL)) { 8662 8643 psError(PS_ERR_UNKNOWN, false, "failed to add item registered"); 8663 8644 psFree(md); 8664 8645 return false; 8665 8646 } 8666 psFree(registered); 8667 psTime* use_begin = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_TAI); 8668 if (!psMetadataAdd(md, PS_LIST_TAIL, "use_begin", PS_DATA_TIME, NULL, use_begin)) { 8669 psFree(use_begin); 8647 if (!psMetadataAdd(md, PS_LIST_TAIL, "use_begin", PS_DATA_TIME, NULL, NULL)) { 8670 8648 psError(PS_ERR_UNKNOWN, false, "failed to add item use_begin"); 8671 8649 psFree(md); 8672 8650 return false; 8673 8651 } 8674 psFree(use_begin); 8675 psTime* use_end = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_TAI); 8676 if (!psMetadataAdd(md, PS_LIST_TAIL, "use_end", PS_DATA_TIME, NULL, use_end)) { 8677 psFree(use_end); 8652 if (!psMetadataAdd(md, PS_LIST_TAIL, "use_end", PS_DATA_TIME, NULL, NULL)) { 8678 8653 psError(PS_ERR_UNKNOWN, false, "failed to add item use_end"); 8679 8654 psFree(md); 8680 8655 return false; 8681 8656 } 8682 psFree(use_end);8683 8657 8684 8658 bool status = psDBCreateTable(dbh, DETRUN_TABLE_NAME, md); … … 11875 11849 return true; 11876 11850 } 11877 static void detMasterFrameRowFree(detMasterFrameRow *object);11878 11879 detMasterFrameRow *detMasterFrameRowAlloc(psS32 det_id, psS32 iteration, const char *comment)11880 {11881 detMasterFrameRow *_object;11882 11883 _object = psAlloc(sizeof(detMasterFrameRow));11884 psMemSetDeallocator(_object, (psFreeFunc)detMasterFrameRowFree);11885 11886 _object->det_id = det_id;11887 _object->iteration = iteration;11888 _object->comment = psStringCopy(comment);11889 11890 return _object;11891 }11892 11893 static void detMasterFrameRowFree(detMasterFrameRow *object)11894 {11895 psFree(object->comment);11896 }11897 11898 bool detMasterFrameCreateTable(psDB *dbh)11899 {11900 psMetadata *md = psMetadataAlloc();11901 if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S32, "Primary Key", 0)) {11902 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");11903 psFree(md);11904 return false;11905 }11906 if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, "Primary Key", 0)) {11907 psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");11908 psFree(md);11909 return false;11910 }11911 if (!psMetadataAdd(md, PS_LIST_TAIL, "comment", PS_DATA_STRING, NULL, "255")) {11912 psError(PS_ERR_UNKNOWN, false, "failed to add item comment");11913 psFree(md);11914 return false;11915 }11916 11917 bool status = psDBCreateTable(dbh, DETMASTERFRAME_TABLE_NAME, md);11918 11919 psFree(md);11920 11921 return status;11922 }11923 11924 bool detMasterFrameDropTable(psDB *dbh)11925 {11926 return psDBDropTable(dbh, DETMASTERFRAME_TABLE_NAME);11927 }11928 11929 bool detMasterFrameInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *comment)11930 {11931 psMetadata *md = psMetadataAlloc();11932 if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S32, NULL, det_id)) {11933 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");11934 psFree(md);11935 return false;11936 }11937 if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, NULL, iteration)) {11938 psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");11939 psFree(md);11940 return false;11941 }11942 if (!psMetadataAdd(md, PS_LIST_TAIL, "comment", PS_DATA_STRING, NULL, comment)) {11943 psError(PS_ERR_UNKNOWN, false, "failed to add item comment");11944 psFree(md);11945 return false;11946 }11947 11948 bool status = psDBInsertOneRow(dbh, DETMASTERFRAME_TABLE_NAME, md);11949 psFree(md);11950 11951 return status;11952 }11953 11954 long long detMasterFrameDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)11955 {11956 long long deleted = 0;11957 11958 long long count = psDBDeleteRows(dbh, DETMASTERFRAME_TABLE_NAME, where, limit);11959 if (count < 0) {11960 psError(PS_ERR_UNKNOWN, true, "failed to delete row from detMasterFrame");11961 return count;11962 11963 deleted += count;11964 }11965 11966 return deleted;11967 }11968 bool detMasterFrameInsertObject(psDB *dbh, detMasterFrameRow *object)11969 {11970 return detMasterFrameInsert(dbh, object->det_id, object->iteration, object->comment);11971 }11972 11973 bool detMasterFrameInsertObjects(psDB *dbh, psArray *objects)11974 {11975 for (long i = 0; i < psArrayLength(objects); i++) {11976 if (!detMasterFrameInsertObject(dbh, objects->data[i])) {11977 return false;11978 }11979 }11980 11981 return true;11982 }11983 11984 bool detMasterFrameInsertFits(psDB *dbh, const psFits *fits)11985 {11986 psArray *rowSet;11987 11988 // move to (the first?) extension named DETMASTERFRAME_TABLE_NAME11989 if (!psFitsMoveExtName(fits, DETMASTERFRAME_TABLE_NAME)) {11990 psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DETMASTERFRAME_TABLE_NAME);11991 return false;11992 }11993 11994 // check HDU type11995 if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE) {11996 psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");11997 return false;11998 }11999 12000 // read fits table12001 rowSet = psFitsReadTable(fits);12002 if (!rowSet) {12003 psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");12004 psFree(rowSet);12005 return false;12006 }12007 12008 if (!psDBInsertRows(dbh, DETMASTERFRAME_TABLE_NAME, rowSet)) {12009 psError(PS_ERR_UNKNOWN, false, "databse insert failed");12010 psFree(rowSet);12011 return false;12012 }12013 12014 psFree(rowSet);12015 12016 return true;12017 }12018 12019 bool detMasterFrameSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)12020 {12021 psArray *rowSet;12022 12023 rowSet = psDBSelectRows(dbh, DETMASTERFRAME_TABLE_NAME, where, limit);12024 if (!rowSet) {12025 return false;12026 }12027 12028 // output to fits12029 if (!psFitsWriteTable(fits, NULL, rowSet, DETMASTERFRAME_TABLE_NAME)) {12030 psError(PS_ERR_UNKNOWN, false, "FITS table write failed");12031 psFree(rowSet);12032 return false;12033 }12034 12035 psFree(rowSet);12036 12037 return true;12038 }12039 12040 psMetadata *detMasterFrameMetadataFromObject(const detMasterFrameRow *object)12041 {12042 psMetadata *md = psMetadataAlloc();12043 if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S32, NULL, object->det_id)) {12044 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");12045 psFree(md);12046 return false;12047 }12048 if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, NULL, object->iteration)) {12049 psError(PS_ERR_UNKNOWN, false, "failed to add item iteration");12050 psFree(md);12051 return false;12052 }12053 if (!psMetadataAdd(md, PS_LIST_TAIL, "comment", PS_DATA_STRING, NULL, object->comment)) {12054 psError(PS_ERR_UNKNOWN, false, "failed to add item comment");12055 psFree(md);12056 return false;12057 }12058 12059 12060 return md;12061 }12062 12063 detMasterFrameRow *detMasterFrameObjectFromMetadata(psMetadata *md)12064 {12065 12066 bool status = false;12067 psS32 det_id = psMetadataLookupS32(&status, md, "det_id");12068 if (!status) {12069 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item det_id");12070 return false;12071 }12072 psS32 iteration = psMetadataLookupS32(&status, md, "iteration");12073 if (!status) {12074 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iteration");12075 return false;12076 }12077 char* comment = psMetadataLookupPtr(&status, md, "comment");12078 if (!status) {12079 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item comment");12080 return false;12081 }12082 12083 return detMasterFrameRowAlloc(det_id, iteration, comment);12084 }12085 psArray *detMasterFrameSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)12086 {12087 psArray *rowSet;12088 psArray *returnSet;12089 psU64 i;12090 12091 rowSet = psDBSelectRows(dbh, DETMASTERFRAME_TABLE_NAME, where, limit);12092 if (!rowSet) {12093 return NULL;12094 }12095 12096 // convert psMetadata rows to row objects12097 12098 returnSet = psArrayAllocEmpty(rowSet->n);12099 12100 for (i = 0; i < rowSet->n; i++) {12101 detMasterFrameRow *object = detMasterFrameObjectFromMetadata(rowSet->data[i]);12102 psArrayAdd(returnSet, 0, object);12103 psFree(object);12104 }12105 12106 psFree(rowSet);12107 12108 return returnSet;12109 }12110 bool detMasterFrameDeleteObject(psDB *dbh, const detMasterFrameRow *object)12111 {12112 psMetadata *where = detMasterFrameMetadataFromObject(object);12113 long long count = psDBDeleteRows(dbh, DETMASTERFRAME_TABLE_NAME, where, 0);12114 psFree(where)12115 if (count < 0) {12116 psError(PS_ERR_UNKNOWN, true, "failed to delete row from detMasterFrame");12117 return false;12118 }12119 if (count > 1) {12120 // XXX should this be a psAbort() instead? It is possible that12121 // having an object match multiple rows was by design.12122 psError(PS_ERR_UNKNOWN, true, "detMasterFrameRow object matched more then one row. Check your database schema");12123 return false;12124 }12125 12126 return true;12127 }12128 long long detMasterFrameDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)12129 {12130 long long deleted = 0;12131 12132 for (long long i = 0; i < objects->n; i++) {12133 detMasterFrameRow *object = objects->data[i];12134 psMetadata *where = detMasterFrameMetadataFromObject(object);12135 long long count = psDBDeleteRows(dbh, DETMASTERFRAME_TABLE_NAME, where, limit);12136 psFree(where)12137 if (count < 0) {12138 psError(PS_ERR_UNKNOWN, true, "failed to delete row from detMasterFrame");12139 return count;12140 }12141 12142 deleted += count;12143 }12144 12145 return deleted;12146 }12147 bool detMasterFramePrintObjects(FILE *stream, psArray *objects, bool mdcf)12148 {12149 PS_ASSERT_PTR_NON_NULL(objects, false);12150 12151 psMetadata *output = psMetadataAlloc();12152 for (long i = 0; i < psArrayLength(objects); i++) {12153 psMetadata *md = detMasterFrameMetadataFromObject(objects->data[i]);12154 if (!psMetadataAddMetadata(12155 output,12156 PS_LIST_TAIL,12157 DETMASTERFRAME_TABLE_NAME,12158 PS_META_DUPLICATE_OK,12159 NULL,12160 md12161 )) {12162 psError(PS_ERR_UNKNOWN, false, "failed to add metadata");12163 psFree(md);12164 psFree(output);12165 return false;12166 }12167 psFree(md);12168 }12169 12170 if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {12171 psError(PS_ERR_UNKNOWN, false, "failed to print metadata");12172 psFree(output);12173 }12174 psFree(output);12175 12176 return true;12177 }12178 static void detMasterImfileRowFree(detMasterImfileRow *object);12179 12180 detMasterImfileRow *detMasterImfileRowAlloc(psS32 det_id, const char *class_id, const char *uri, const char *recipe)12181 {12182 detMasterImfileRow *_object;12183 12184 _object = psAlloc(sizeof(detMasterImfileRow));12185 psMemSetDeallocator(_object, (psFreeFunc)detMasterImfileRowFree);12186 12187 _object->det_id = det_id;12188 _object->class_id = psStringCopy(class_id);12189 _object->uri = psStringCopy(uri);12190 _object->recipe = psStringCopy(recipe);12191 12192 return _object;12193 }12194 12195 static void detMasterImfileRowFree(detMasterImfileRow *object)12196 {12197 psFree(object->class_id);12198 psFree(object->uri);12199 psFree(object->recipe);12200 }12201 12202 bool detMasterImfileCreateTable(psDB *dbh)12203 {12204 psMetadata *md = psMetadataAlloc();12205 if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S32, "Primary Key", 0)) {12206 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");12207 psFree(md);12208 return false;12209 }12210 if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, "Primary Key", "64")) {12211 psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");12212 psFree(md);12213 return false;12214 }12215 if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, "255")) {12216 psError(PS_ERR_UNKNOWN, false, "failed to add item uri");12217 psFree(md);12218 return false;12219 }12220 if (!psMetadataAdd(md, PS_LIST_TAIL, "recipe", PS_DATA_STRING, NULL, "64")) {12221 psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");12222 psFree(md);12223 return false;12224 }12225 12226 bool status = psDBCreateTable(dbh, DETMASTERIMFILE_TABLE_NAME, md);12227 12228 psFree(md);12229 12230 return status;12231 }12232 12233 bool detMasterImfileDropTable(psDB *dbh)12234 {12235 return psDBDropTable(dbh, DETMASTERIMFILE_TABLE_NAME);12236 }12237 12238 bool detMasterImfileInsert(psDB * dbh, psS32 det_id, const char *class_id, const char *uri, const char *recipe)12239 {12240 psMetadata *md = psMetadataAlloc();12241 if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S32, NULL, det_id)) {12242 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");12243 psFree(md);12244 return false;12245 }12246 if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, NULL, class_id)) {12247 psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");12248 psFree(md);12249 return false;12250 }12251 if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {12252 psError(PS_ERR_UNKNOWN, false, "failed to add item uri");12253 psFree(md);12254 return false;12255 }12256 if (!psMetadataAdd(md, PS_LIST_TAIL, "recipe", PS_DATA_STRING, NULL, recipe)) {12257 psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");12258 psFree(md);12259 return false;12260 }12261 12262 bool status = psDBInsertOneRow(dbh, DETMASTERIMFILE_TABLE_NAME, md);12263 psFree(md);12264 12265 return status;12266 }12267 12268 long long detMasterImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)12269 {12270 long long deleted = 0;12271 12272 long long count = psDBDeleteRows(dbh, DETMASTERIMFILE_TABLE_NAME, where, limit);12273 if (count < 0) {12274 psError(PS_ERR_UNKNOWN, true, "failed to delete row from detMasterImfile");12275 return count;12276 12277 deleted += count;12278 }12279 12280 return deleted;12281 }12282 bool detMasterImfileInsertObject(psDB *dbh, detMasterImfileRow *object)12283 {12284 return detMasterImfileInsert(dbh, object->det_id, object->class_id, object->uri, object->recipe);12285 }12286 12287 bool detMasterImfileInsertObjects(psDB *dbh, psArray *objects)12288 {12289 for (long i = 0; i < psArrayLength(objects); i++) {12290 if (!detMasterImfileInsertObject(dbh, objects->data[i])) {12291 return false;12292 }12293 }12294 12295 return true;12296 }12297 12298 bool detMasterImfileInsertFits(psDB *dbh, const psFits *fits)12299 {12300 psArray *rowSet;12301 12302 // move to (the first?) extension named DETMASTERIMFILE_TABLE_NAME12303 if (!psFitsMoveExtName(fits, DETMASTERIMFILE_TABLE_NAME)) {12304 psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DETMASTERIMFILE_TABLE_NAME);12305 return false;12306 }12307 12308 // check HDU type12309 if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE) {12310 psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");12311 return false;12312 }12313 12314 // read fits table12315 rowSet = psFitsReadTable(fits);12316 if (!rowSet) {12317 psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");12318 psFree(rowSet);12319 return false;12320 }12321 12322 if (!psDBInsertRows(dbh, DETMASTERIMFILE_TABLE_NAME, rowSet)) {12323 psError(PS_ERR_UNKNOWN, false, "databse insert failed");12324 psFree(rowSet);12325 return false;12326 }12327 12328 psFree(rowSet);12329 12330 return true;12331 }12332 12333 bool detMasterImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)12334 {12335 psArray *rowSet;12336 12337 rowSet = psDBSelectRows(dbh, DETMASTERIMFILE_TABLE_NAME, where, limit);12338 if (!rowSet) {12339 return false;12340 }12341 12342 // output to fits12343 if (!psFitsWriteTable(fits, NULL, rowSet, DETMASTERIMFILE_TABLE_NAME)) {12344 psError(PS_ERR_UNKNOWN, false, "FITS table write failed");12345 psFree(rowSet);12346 return false;12347 }12348 12349 psFree(rowSet);12350 12351 return true;12352 }12353 12354 psMetadata *detMasterImfileMetadataFromObject(const detMasterImfileRow *object)12355 {12356 psMetadata *md = psMetadataAlloc();12357 if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S32, NULL, object->det_id)) {12358 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");12359 psFree(md);12360 return false;12361 }12362 if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, NULL, object->class_id)) {12363 psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");12364 psFree(md);12365 return false;12366 }12367 if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, object->uri)) {12368 psError(PS_ERR_UNKNOWN, false, "failed to add item uri");12369 psFree(md);12370 return false;12371 }12372 if (!psMetadataAdd(md, PS_LIST_TAIL, "recipe", PS_DATA_STRING, NULL, object->recipe)) {12373 psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");12374 psFree(md);12375 return false;12376 }12377 12378 12379 return md;12380 }12381 12382 detMasterImfileRow *detMasterImfileObjectFromMetadata(psMetadata *md)12383 {12384 12385 bool status = false;12386 psS32 det_id = psMetadataLookupS32(&status, md, "det_id");12387 if (!status) {12388 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item det_id");12389 return false;12390 }12391 char* class_id = psMetadataLookupPtr(&status, md, "class_id");12392 if (!status) {12393 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item class_id");12394 return false;12395 }12396 char* uri = psMetadataLookupPtr(&status, md, "uri");12397 if (!status) {12398 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");12399 return false;12400 }12401 char* recipe = psMetadataLookupPtr(&status, md, "recipe");12402 if (!status) {12403 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item recipe");12404 return false;12405 }12406 12407 return detMasterImfileRowAlloc(det_id, class_id, uri, recipe);12408 }12409 psArray *detMasterImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)12410 {12411 psArray *rowSet;12412 psArray *returnSet;12413 psU64 i;12414 12415 rowSet = psDBSelectRows(dbh, DETMASTERIMFILE_TABLE_NAME, where, limit);12416 if (!rowSet) {12417 return NULL;12418 }12419 12420 // convert psMetadata rows to row objects12421 12422 returnSet = psArrayAllocEmpty(rowSet->n);12423 12424 for (i = 0; i < rowSet->n; i++) {12425 detMasterImfileRow *object = detMasterImfileObjectFromMetadata(rowSet->data[i]);12426 psArrayAdd(returnSet, 0, object);12427 psFree(object);12428 }12429 12430 psFree(rowSet);12431 12432 return returnSet;12433 }12434 bool detMasterImfileDeleteObject(psDB *dbh, const detMasterImfileRow *object)12435 {12436 psMetadata *where = detMasterImfileMetadataFromObject(object);12437 long long count = psDBDeleteRows(dbh, DETMASTERIMFILE_TABLE_NAME, where, 0);12438 psFree(where)12439 if (count < 0) {12440 psError(PS_ERR_UNKNOWN, true, "failed to delete row from detMasterImfile");12441 return false;12442 }12443 if (count > 1) {12444 // XXX should this be a psAbort() instead? It is possible that12445 // having an object match multiple rows was by design.12446 psError(PS_ERR_UNKNOWN, true, "detMasterImfileRow object matched more then one row. Check your database schema");12447 return false;12448 }12449 12450 return true;12451 }12452 long long detMasterImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)12453 {12454 long long deleted = 0;12455 12456 for (long long i = 0; i < objects->n; i++) {12457 detMasterImfileRow *object = objects->data[i];12458 psMetadata *where = detMasterImfileMetadataFromObject(object);12459 long long count = psDBDeleteRows(dbh, DETMASTERIMFILE_TABLE_NAME, where, limit);12460 psFree(where)12461 if (count < 0) {12462 psError(PS_ERR_UNKNOWN, true, "failed to delete row from detMasterImfile");12463 return count;12464 }12465 12466 deleted += count;12467 }12468 12469 return deleted;12470 }12471 bool detMasterImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)12472 {12473 PS_ASSERT_PTR_NON_NULL(objects, false);12474 12475 psMetadata *output = psMetadataAlloc();12476 for (long i = 0; i < psArrayLength(objects); i++) {12477 psMetadata *md = detMasterImfileMetadataFromObject(objects->data[i]);12478 if (!psMetadataAddMetadata(12479 output,12480 PS_LIST_TAIL,12481 DETMASTERIMFILE_TABLE_NAME,12482 PS_META_DUPLICATE_OK,12483 NULL,12484 md12485 )) {12486 psError(PS_ERR_UNKNOWN, false, "failed to add metadata");12487 psFree(md);12488 psFree(output);12489 return false;12490 }12491 psFree(md);12492 }12493 12494 if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {12495 psError(PS_ERR_UNKNOWN, false, "failed to print metadata");12496 psFree(output);12497 }12498 psFree(output);12499 12500 return true;12501 }12502 11851 static void detResidImfileRowFree(detResidImfileRow *object); 12503 11852 -
trunk/ippdb/src/ippdb.h
r10155 r10238 20 20 /* 21 21 * 22 * This file was generated by glueforge 0.3 122 * This file was generated by glueforge 0.32 23 23 * 24 24 * Do NOT directly edit this file. … … 5976 5976 bool mdcf ///< format as mdconfig or simple 5977 5977 ); 5978 /** detMasterFrameRow data structure5979 *5980 * Structure for representing a single row of detMasterFrame table data.5981 */5982 5983 typedef struct {5984 psS32 det_id;5985 psS32 iteration;5986 char *comment;5987 } detMasterFrameRow;5988 5989 /** Creates a new detMasterFrameRow object5990 *5991 * @return A new detMasterFrameRow object or NULL on failure.5992 */5993 5994 detMasterFrameRow *detMasterFrameRowAlloc(5995 psS32 det_id,5996 psS32 iteration,5997 const char *comment5998 );5999 6000 /** Creates a new detMasterFrame table6001 *6002 * @return true on success6003 */6004 6005 bool detMasterFrameCreateTable(6006 psDB *dbh ///< Database handle6007 );6008 6009 /** Deletes a detMasterFrame table6010 *6011 * @return true on success6012 */6013 6014 bool detMasterFrameDropTable(6015 psDB *dbh ///< Database handle6016 );6017 6018 /** Insert a single row into a table6019 *6020 * This function constructs and inserts a single row based on it's parameters.6021 *6022 * @return true on success6023 */6024 6025 bool detMasterFrameInsert(6026 psDB *dbh, ///< Database handle6027 psS32 det_id,6028 psS32 iteration,6029 const char *comment6030 );6031 6032 /** Deletes up to limit rows from the database and returns the number of rows actually deleted.6033 *6034 * @return A The number of rows removed or a negative value on error6035 */6036 6037 long long detMasterFrameDelete(6038 psDB *dbh, ///< Database handle6039 const psMetadata *where, ///< Row match criteria6040 unsigned long long limit ///< Maximum number of elements to delete6041 );6042 6043 /** Insert a single detMasterFrameRow object into a table6044 *6045 * This function constructs and inserts a single row based on it's parameters.6046 *6047 * @return true on success6048 */6049 6050 bool detMasterFrameInsertObject(6051 psDB *dbh, ///< Database handle6052 detMasterFrameRow *object ///< detMasterFrameRow object6053 );6054 6055 /** Insert an array of detMasterFrameRow object into a table6056 *6057 * This function constructs and inserts multiple rows based on it's parameters.6058 *6059 * @return true on success6060 */6061 6062 bool detMasterFrameInsertObjects(6063 psDB *dbh, ///< Database handle6064 psArray *objects ///< array of detMasterFrameRow objects6065 );6066 6067 /** Insert data from a binary FITS table detMasterFrameRow into the database6068 *6069 * This function expects a psFits object with a FITS table as the first6070 * extension. The table must have at least one row of data in it, that is of6071 * the appropriate format (number of columns and their type). All other6072 * extensions are ignored.6073 *6074 * @return true on success6075 */6076 6077 bool detMasterFrameInsertFits(6078 psDB *dbh, ///< Database handle6079 const psFits *fits ///< psFits object6080 );6081 6082 /** Selects up to limit from the database and returns them in a binary FITS table6083 *6084 * This function assumes an empty psFits object and will create a FITS table6085 * as the first extension.6086 *6087 * See psDBSelectRows() for documentation on the format of where.6088 *6089 * @return true on success6090 */6091 6092 bool detMasterFrameSelectRowsFits(6093 psDB *dbh, ///< Database handle6094 psFits *fits, ///< psFits object6095 const psMetadata *where, ///< Row match criteria6096 unsigned long long limit ///< Maximum number of elements to return6097 );6098 6099 /** Convert a detMasterFrameRow into an equivalent psMetadata6100 *6101 * @return A psMetadata pointer or NULL on error6102 */6103 6104 psMetadata *detMasterFrameMetadataFromObject(6105 const detMasterFrameRow *object ///< fooRow to convert into a psMetadata6106 );6107 6108 /** Convert a psMetadata into an equivalent fooRow6109 *6110 * @return A detMasterFrameRow pointer or NULL on error6111 */6112 6113 detMasterFrameRow *detMasterFrameObjectFromMetadata(6114 psMetadata *md ///< psMetadata to convert into a fooRow6115 );6116 /** Selects up to limit rows from the database and returns as detMasterFrameRow objects in a psArray6117 *6118 * See psDBSelectRows() for documentation on the format of where.6119 *6120 * @return A psArray pointer or NULL on error6121 */6122 6123 psArray *detMasterFrameSelectRowObjects(6124 psDB *dbh, ///< Database handle6125 const psMetadata *where, ///< Row match criteria6126 unsigned long long limit ///< Maximum number of elements to return6127 );6128 /** Deletes a row from the database coresponding to an detMasterFrame6129 *6130 * Note that a 'where' search psMetadata is constructed from each object and6131 * used to find rows to delete.6132 *6133 * @return A The number of rows removed or a negative value on error6134 */6135 6136 bool detMasterFrameDeleteObject(6137 psDB *dbh, ///< Database handle6138 const detMasterFrameRow *object ///< Object to delete6139 );6140 /** Deletes up to limit rows from the database and returns the number of rows actually deleted.6141 *6142 * Note that a 'where' search psMetadata is constructed from each object and6143 * used to find rows to delete.6144 *6145 * @return A The number of rows removed or a negative value on error6146 */6147 6148 long long detMasterFrameDeleteRowObjects(6149 psDB *dbh, ///< Database handle6150 const psArray *objects, ///< Array of objects to delete6151 unsigned long long limit ///< Maximum number of elements to delete6152 );6153 /** Formats and prints an array of detMasterFrameRow objects6154 *6155 * When mdcf is set the formated output is in psMetadataConfig6156 * format, otherwise it is in a simple tabular format.6157 *6158 * @return true on success6159 */6160 6161 bool detMasterFramePrintObjects(6162 FILE *stream, ///< a stream6163 psArray *objects, ///< An array of detMasterFrameRow objects6164 bool mdcf ///< format as mdconfig or simple6165 );6166 /** detMasterImfileRow data structure6167 *6168 * Structure for representing a single row of detMasterImfile table data.6169 */6170 6171 typedef struct {6172 psS32 det_id;6173 char *class_id;6174 char *uri;6175 char *recipe;6176 } detMasterImfileRow;6177 6178 /** Creates a new detMasterImfileRow object6179 *6180 * @return A new detMasterImfileRow object or NULL on failure.6181 */6182 6183 detMasterImfileRow *detMasterImfileRowAlloc(6184 psS32 det_id,6185 const char *class_id,6186 const char *uri,6187 const char *recipe6188 );6189 6190 /** Creates a new detMasterImfile table6191 *6192 * @return true on success6193 */6194 6195 bool detMasterImfileCreateTable(6196 psDB *dbh ///< Database handle6197 );6198 6199 /** Deletes a detMasterImfile table6200 *6201 * @return true on success6202 */6203 6204 bool detMasterImfileDropTable(6205 psDB *dbh ///< Database handle6206 );6207 6208 /** Insert a single row into a table6209 *6210 * This function constructs and inserts a single row based on it's parameters.6211 *6212 * @return true on success6213 */6214 6215 bool detMasterImfileInsert(6216 psDB *dbh, ///< Database handle6217 psS32 det_id,6218 const char *class_id,6219 const char *uri,6220 const char *recipe6221 );6222 6223 /** Deletes up to limit rows from the database and returns the number of rows actually deleted.6224 *6225 * @return A The number of rows removed or a negative value on error6226 */6227 6228 long long detMasterImfileDelete(6229 psDB *dbh, ///< Database handle6230 const psMetadata *where, ///< Row match criteria6231 unsigned long long limit ///< Maximum number of elements to delete6232 );6233 6234 /** Insert a single detMasterImfileRow object into a table6235 *6236 * This function constructs and inserts a single row based on it's parameters.6237 *6238 * @return true on success6239 */6240 6241 bool detMasterImfileInsertObject(6242 psDB *dbh, ///< Database handle6243 detMasterImfileRow *object ///< detMasterImfileRow object6244 );6245 6246 /** Insert an array of detMasterImfileRow object into a table6247 *6248 * This function constructs and inserts multiple rows based on it's parameters.6249 *6250 * @return true on success6251 */6252 6253 bool detMasterImfileInsertObjects(6254 psDB *dbh, ///< Database handle6255 psArray *objects ///< array of detMasterImfileRow objects6256 );6257 6258 /** Insert data from a binary FITS table detMasterImfileRow into the database6259 *6260 * This function expects a psFits object with a FITS table as the first6261 * extension. The table must have at least one row of data in it, that is of6262 * the appropriate format (number of columns and their type). All other6263 * extensions are ignored.6264 *6265 * @return true on success6266 */6267 6268 bool detMasterImfileInsertFits(6269 psDB *dbh, ///< Database handle6270 const psFits *fits ///< psFits object6271 );6272 6273 /** Selects up to limit from the database and returns them in a binary FITS table6274 *6275 * This function assumes an empty psFits object and will create a FITS table6276 * as the first extension.6277 *6278 * See psDBSelectRows() for documentation on the format of where.6279 *6280 * @return true on success6281 */6282 6283 bool detMasterImfileSelectRowsFits(6284 psDB *dbh, ///< Database handle6285 psFits *fits, ///< psFits object6286 const psMetadata *where, ///< Row match criteria6287 unsigned long long limit ///< Maximum number of elements to return6288 );6289 6290 /** Convert a detMasterImfileRow into an equivalent psMetadata6291 *6292 * @return A psMetadata pointer or NULL on error6293 */6294 6295 psMetadata *detMasterImfileMetadataFromObject(6296 const detMasterImfileRow *object ///< fooRow to convert into a psMetadata6297 );6298 6299 /** Convert a psMetadata into an equivalent fooRow6300 *6301 * @return A detMasterImfileRow pointer or NULL on error6302 */6303 6304 detMasterImfileRow *detMasterImfileObjectFromMetadata(6305 psMetadata *md ///< psMetadata to convert into a fooRow6306 );6307 /** Selects up to limit rows from the database and returns as detMasterImfileRow objects in a psArray6308 *6309 * See psDBSelectRows() for documentation on the format of where.6310 *6311 * @return A psArray pointer or NULL on error6312 */6313 6314 psArray *detMasterImfileSelectRowObjects(6315 psDB *dbh, ///< Database handle6316 const psMetadata *where, ///< Row match criteria6317 unsigned long long limit ///< Maximum number of elements to return6318 );6319 /** Deletes a row from the database coresponding to an detMasterImfile6320 *6321 * Note that a 'where' search psMetadata is constructed from each object and6322 * used to find rows to delete.6323 *6324 * @return A The number of rows removed or a negative value on error6325 */6326 6327 bool detMasterImfileDeleteObject(6328 psDB *dbh, ///< Database handle6329 const detMasterImfileRow *object ///< Object to delete6330 );6331 /** Deletes up to limit rows from the database and returns the number of rows actually deleted.6332 *6333 * Note that a 'where' search psMetadata is constructed from each object and6334 * used to find rows to delete.6335 *6336 * @return A The number of rows removed or a negative value on error6337 */6338 6339 long long detMasterImfileDeleteRowObjects(6340 psDB *dbh, ///< Database handle6341 const psArray *objects, ///< Array of objects to delete6342 unsigned long long limit ///< Maximum number of elements to delete6343 );6344 /** Formats and prints an array of detMasterImfileRow objects6345 *6346 * When mdcf is set the formated output is in psMetadataConfig6347 * format, otherwise it is in a simple tabular format.6348 *6349 * @return true on success6350 */6351 6352 bool detMasterImfilePrintObjects(6353 FILE *stream, ///< a stream6354 psArray *objects, ///< An array of detMasterImfileRow objects6355 bool mdcf ///< format as mdconfig or simple6356 );6357 5978 /** detResidImfileRow data structure 6358 5979 * -
trunk/ippdb/tests/alloc.c
r10155 r10238 1257 1257 1258 1258 { 1259 detMasterFrameRow *object;1260 1261 object = detMasterFrameRowAlloc(-32, -32, "a string" );1262 1263 if (!object) {1264 exit(EXIT_FAILURE);1265 }1266 1267 if (!object->det_id == -32) {1268 psFree(object);1269 exit(EXIT_FAILURE);1270 }1271 if (!object->iteration == -32) {1272 psFree(object);1273 exit(EXIT_FAILURE);1274 }1275 if (strncmp(object->comment, "a string", MAX_STRING_LENGTH)) {1276 psFree(object);1277 exit(EXIT_FAILURE);1278 }1279 1280 psFree(object);1281 }1282 1283 {1284 detMasterImfileRow *object;1285 1286 object = detMasterImfileRowAlloc(-32, "a string", "a string", "a string" );1287 1288 if (!object) {1289 exit(EXIT_FAILURE);1290 }1291 1292 if (!object->det_id == -32) {1293 psFree(object);1294 exit(EXIT_FAILURE);1295 }1296 if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {1297 psFree(object);1298 exit(EXIT_FAILURE);1299 }1300 if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {1301 psFree(object);1302 exit(EXIT_FAILURE);1303 }1304 if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {1305 psFree(object);1306 exit(EXIT_FAILURE);1307 }1308 1309 psFree(object);1310 }1311 1312 {1313 1259 detResidImfileRow *object; 1314 1260 -
trunk/ippdb/tests/createtable.c
r10110 r10238 448 448 } 449 449 450 if(!detMasterFrameCreateTable(dbh)) {451 exit(EXIT_FAILURE);452 }453 454 psDBCleanup(dbh);455 }456 457 {458 psDB *dbh;459 460 dbh = psDBInit("localhost", "test", NULL, "test");461 if (!dbh) {462 exit(EXIT_FAILURE);463 }464 465 if(!detMasterImfileCreateTable(dbh)) {466 exit(EXIT_FAILURE);467 }468 469 psDBCleanup(dbh);470 }471 472 {473 psDB *dbh;474 475 dbh = psDBInit("localhost", "test", NULL, "test");476 if (!dbh) {477 exit(EXIT_FAILURE);478 }479 480 450 if(!detResidImfileCreateTable(dbh)) { 481 451 exit(EXIT_FAILURE); -
trunk/ippdb/tests/dbcleanup.c
r10110 r10238 40 40 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detNormalizedImfile"); 41 41 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detNormalizedExp"); 42 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detMasterFrame");43 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detMasterImfile");44 42 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detResidImfile"); 45 43 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detResidExp"); -
trunk/ippdb/tests/dbsetup.c
r10110 r10238 100 100 detNormalizedExpCreateTable(dbh); 101 101 102 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detMasterFrame");103 detMasterFrameCreateTable(dbh);104 105 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detMasterImfile");106 detMasterImfileCreateTable(dbh);107 108 102 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS detResidImfile"); 109 103 detResidImfileCreateTable(dbh); -
trunk/ippdb/tests/droptable.c
r10110 r10238 448 448 } 449 449 450 if (!detMasterFrameDropTable(dbh)) {451 exit(EXIT_FAILURE);452 }453 454 psDBCleanup(dbh);455 }456 457 {458 psDB *dbh;459 460 dbh = psDBInit("localhost", "test", NULL, "test");461 if (!dbh) {462 exit(EXIT_FAILURE);463 }464 465 if (!detMasterImfileDropTable(dbh)) {466 exit(EXIT_FAILURE);467 }468 469 psDBCleanup(dbh);470 }471 472 {473 psDB *dbh;474 475 dbh = psDBInit("localhost", "test", NULL, "test");476 if (!dbh) {477 exit(EXIT_FAILURE);478 }479 480 450 if (!detResidImfileDropTable(dbh)) { 481 451 exit(EXIT_FAILURE); -
trunk/ippdb/tests/insert.c
r10152 r10238 448 448 } 449 449 450 if (!detMasterFrameInsert(dbh, -32, -32, "a string")) {451 exit(EXIT_FAILURE);452 }453 454 psDBCleanup(dbh);455 }456 457 {458 psDB *dbh;459 460 dbh = psDBInit("localhost", "test", NULL, "test");461 if (!dbh) {462 exit(EXIT_FAILURE);463 }464 465 if (!detMasterImfileInsert(dbh, -32, "a string", "a string", "a string")) {466 exit(EXIT_FAILURE);467 }468 469 psDBCleanup(dbh);470 }471 472 {473 psDB *dbh;474 475 dbh = psDBInit("localhost", "test", NULL, "test");476 if (!dbh) {477 exit(EXIT_FAILURE);478 }479 480 450 if (!detResidImfileInsert(dbh, -32, -32, "a string", "a string", "a string", "a string", 64.64, 64.64, 64.64, "a string", "a string")) { 481 451 exit(EXIT_FAILURE); -
trunk/ippdb/tests/insertfits.c
r10110 r10238 778 778 } 779 779 780 if (!detMasterFrameInsertFits(dbh, fits)) {781 exit(EXIT_FAILURE);782 }783 784 if (!psFitsClose(fits)) {785 exit(EXIT_FAILURE);786 }787 788 psDBCleanup(dbh);789 }790 791 {792 psDB *dbh;793 psFits *fits;794 795 dbh = psDBInit("localhost", "test", NULL, "test");796 if (!dbh) {797 exit(EXIT_FAILURE);798 }799 800 // open a temp801 fits = psFitsOpen(TMP_FILENAME, "r");802 if (!fits) {803 exit(EXIT_FAILURE);804 }805 806 if (!detMasterImfileInsertFits(dbh, fits)) {807 exit(EXIT_FAILURE);808 }809 810 if (!psFitsClose(fits)) {811 exit(EXIT_FAILURE);812 }813 814 psDBCleanup(dbh);815 }816 817 {818 psDB *dbh;819 psFits *fits;820 821 dbh = psDBInit("localhost", "test", NULL, "test");822 if (!dbh) {823 exit(EXIT_FAILURE);824 }825 826 // open a temp827 fits = psFitsOpen(TMP_FILENAME, "r");828 if (!fits) {829 exit(EXIT_FAILURE);830 }831 832 780 if (!detResidImfileInsertFits(dbh, fits)) { 833 781 exit(EXIT_FAILURE); -
trunk/ippdb/tests/insertobject.c
r10152 r10238 645 645 { 646 646 psDB *dbh; 647 detMasterFrameRow *object;648 649 dbh = psDBInit("localhost", "test", NULL, "test");650 if (!dbh) {651 exit(EXIT_FAILURE);652 }653 654 object = detMasterFrameRowAlloc(-32, -32, "a string");655 if (!object) {656 exit(EXIT_FAILURE);657 }658 659 if (!detMasterFrameInsertObject(dbh, object)) {660 exit(EXIT_FAILURE);661 }662 663 psFree(object);664 psDBCleanup(dbh);665 }666 667 {668 psDB *dbh;669 detMasterImfileRow *object;670 671 dbh = psDBInit("localhost", "test", NULL, "test");672 if (!dbh) {673 exit(EXIT_FAILURE);674 }675 676 object = detMasterImfileRowAlloc(-32, "a string", "a string", "a string");677 if (!object) {678 exit(EXIT_FAILURE);679 }680 681 if (!detMasterImfileInsertObject(dbh, object)) {682 exit(EXIT_FAILURE);683 }684 685 psFree(object);686 psDBCleanup(dbh);687 }688 689 {690 psDB *dbh;691 647 detResidImfileRow *object; 692 648 -
trunk/ippdb/tests/metadatafromobject.c
r10155 r10238 1490 1490 { 1491 1491 psMetadata *md; 1492 detMasterFrameRow *object;1493 bool status;1494 1495 object = detMasterFrameRowAlloc(-32, -32, "a string");1496 if (!object) {1497 exit(EXIT_FAILURE);1498 }1499 1500 md = detMasterFrameMetadataFromObject(object);1501 if (!md) {1502 exit(EXIT_FAILURE);1503 }1504 1505 psFree(object);1506 1507 if (!psMetadataLookupS32(&status, md, "det_id") == -32) {1508 psFree(md);1509 exit(EXIT_FAILURE);1510 }1511 if (!psMetadataLookupS32(&status, md, "iteration") == -32) {1512 psFree(md);1513 exit(EXIT_FAILURE);1514 }1515 if (strncmp(psMetadataLookupPtr(&status, md, "comment"), "a string", MAX_STRING_LENGTH)) {1516 psFree(md);1517 exit(EXIT_FAILURE);1518 }1519 1520 psFree(md);1521 }1522 1523 {1524 psMetadata *md;1525 detMasterImfileRow *object;1526 bool status;1527 1528 object = detMasterImfileRowAlloc(-32, "a string", "a string", "a string");1529 if (!object) {1530 exit(EXIT_FAILURE);1531 }1532 1533 md = detMasterImfileMetadataFromObject(object);1534 if (!md) {1535 exit(EXIT_FAILURE);1536 }1537 1538 psFree(object);1539 1540 if (!psMetadataLookupS32(&status, md, "det_id") == -32) {1541 psFree(md);1542 exit(EXIT_FAILURE);1543 }1544 if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {1545 psFree(md);1546 exit(EXIT_FAILURE);1547 }1548 if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {1549 psFree(md);1550 exit(EXIT_FAILURE);1551 }1552 if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {1553 psFree(md);1554 exit(EXIT_FAILURE);1555 }1556 1557 psFree(md);1558 }1559 1560 {1561 psMetadata *md;1562 1492 detResidImfileRow *object; 1563 1493 bool status; -
trunk/ippdb/tests/objectfrommetadata.c
r10155 r10238 2274 2274 { 2275 2275 psMetadata *md; 2276 detMasterFrameRow *object;2277 2278 md = psMetadataAlloc();2279 if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {2280 psFree(md);2281 exit(EXIT_FAILURE);2282 }2283 if (!psMetadataAddS32(md, PS_LIST_TAIL, "iteration", 0, NULL, -32)) {2284 psFree(md);2285 exit(EXIT_FAILURE);2286 }2287 if (!psMetadataAddStr(md, PS_LIST_TAIL, "comment", 0, NULL, "a string")) {2288 psFree(md);2289 exit(EXIT_FAILURE);2290 }2291 2292 object = detMasterFrameObjectFromMetadata(md);2293 if (!object) {2294 psFree(md);2295 exit(EXIT_FAILURE);2296 }2297 2298 psFree(md);2299 2300 if (!object->det_id == -32) {2301 psFree(object);2302 exit(EXIT_FAILURE);2303 }2304 if (!object->iteration == -32) {2305 psFree(object);2306 exit(EXIT_FAILURE);2307 }2308 if (strncmp(object->comment, "a string", MAX_STRING_LENGTH)) {2309 psFree(object);2310 exit(EXIT_FAILURE);2311 }2312 2313 psFree(object);2314 }2315 2316 {2317 psMetadata *md;2318 detMasterImfileRow *object;2319 2320 md = psMetadataAlloc();2321 if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", 0, NULL, -32)) {2322 psFree(md);2323 exit(EXIT_FAILURE);2324 }2325 if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {2326 psFree(md);2327 exit(EXIT_FAILURE);2328 }2329 if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {2330 psFree(md);2331 exit(EXIT_FAILURE);2332 }2333 if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {2334 psFree(md);2335 exit(EXIT_FAILURE);2336 }2337 2338 object = detMasterImfileObjectFromMetadata(md);2339 if (!object) {2340 psFree(md);2341 exit(EXIT_FAILURE);2342 }2343 2344 psFree(md);2345 2346 if (!object->det_id == -32) {2347 psFree(object);2348 exit(EXIT_FAILURE);2349 }2350 if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {2351 psFree(object);2352 exit(EXIT_FAILURE);2353 }2354 if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {2355 psFree(object);2356 exit(EXIT_FAILURE);2357 }2358 if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {2359 psFree(object);2360 exit(EXIT_FAILURE);2361 }2362 2363 psFree(object);2364 }2365 2366 {2367 psMetadata *md;2368 2276 detResidImfileRow *object; 2369 2277 -
trunk/ippdb/tests/selectrowsfits.c
r10110 r10238 659 659 } 660 660 661 if (!detMasterFrameSelectRowsFits(dbh, fits, NULL, 1)) {662 exit(EXIT_FAILURE);663 }664 665 psFree(fits);666 psDBCleanup(dbh);667 }668 669 {670 psDB *dbh;671 psFits *fits;672 673 dbh = psDBInit("localhost", "test", NULL, "test");674 if (!dbh) {675 exit(EXIT_FAILURE);676 }677 678 fits = psFitsOpen(TMP_FILENAME, "w");679 if (!fits) {680 exit(EXIT_FAILURE);681 }682 683 if (!detMasterImfileSelectRowsFits(dbh, fits, NULL, 1)) {684 exit(EXIT_FAILURE);685 }686 687 psFree(fits);688 psDBCleanup(dbh);689 }690 691 {692 psDB *dbh;693 psFits *fits;694 695 dbh = psDBInit("localhost", "test", NULL, "test");696 if (!dbh) {697 exit(EXIT_FAILURE);698 }699 700 fits = psFitsOpen(TMP_FILENAME, "w");701 if (!fits) {702 exit(EXIT_FAILURE);703 }704 705 661 if (!detResidImfileSelectRowsFits(dbh, fits, NULL, 1)) { 706 662 exit(EXIT_FAILURE);
Note:
See TracChangeset
for help on using the changeset viewer.
