Changeset 11045
- Timestamp:
- Jan 11, 2007, 3:35:04 PM (19 years ago)
- Location:
- trunk
- Files:
-
- 16 edited
-
dbconfig/config.md (modified) (1 diff)
-
ippdb/Makefile.am (modified) (2 diffs)
-
ippdb/configure.ac (modified) (1 diff)
-
ippdb/src/ippdb.c (modified) (48 diffs)
-
ippdb/src/ippdb.h (modified) (26 diffs)
-
ippdb/tests/alloc.c (modified) (7 diffs)
-
ippdb/tests/createtable.c (modified) (1 diff)
-
ippdb/tests/dbcleanup.c (modified) (1 diff)
-
ippdb/tests/dbsetup.c (modified) (1 diff)
-
ippdb/tests/droptable.c (modified) (1 diff)
-
ippdb/tests/insert.c (modified) (1 diff)
-
ippdb/tests/insertfits.c (modified) (1 diff)
-
ippdb/tests/insertobject.c (modified) (4 diffs)
-
ippdb/tests/metadatafromobject.c (modified) (7 diffs)
-
ippdb/tests/objectfrommetadata.c (modified) (12 diffs)
-
ippdb/tests/selectrowsfits.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/dbconfig/config.md
r11030 r11045 2 2 pkg_name STR ippdb 3 3 pkg_namespace STR ippdb 4 pkg_version STR 0.0.7 24 pkg_version STR 0.0.73 5 5 END -
trunk/ippdb/Makefile.am
r10753 r11045 19 19 $(top_builddir)/docs/man/man3/newExpRow.3 \ 20 20 $(top_builddir)/docs/man/man3/newImfileRow.3 \ 21 $(top_builddir)/docs/man/man3/rawDetrendExpRow.3 \ 22 $(top_builddir)/docs/man/man3/rawScienceExpRow.3 \ 21 $(top_builddir)/docs/man/man3/rawExpRow.3 \ 23 22 $(top_builddir)/docs/man/man3/rawImfileRow.3 \ 24 23 $(top_builddir)/docs/man/man3/p1PendingExpRow.3 \ … … 50 49 51 50 52 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/raw DetrendExpRow.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 docs/man/man3/p4RunRow.3 docs/man/man3/p4InputImfileRow.3 docs/man/man3/p4WarpedImfileRow.3 docs/man/man3/p4StackedImfileRow.3 docs/man/man3/p4DiffImfileRow.3 docs/man/man3/p4MagicMaskImfileRow.3:51 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/rawExpRow.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 docs/man/man3/p4RunRow.3 docs/man/man3/p4InputImfileRow.3 docs/man/man3/p4WarpedImfileRow.3 docs/man/man3/p4StackedImfileRow.3 docs/man/man3/p4DiffImfileRow.3 docs/man/man3/p4MagicMaskImfileRow.3: 53 52 $(DOXYGEN) 54 53 -
trunk/ippdb/configure.ac
r11030 r11045 7 7 AC_PREREQ(2.59) 8 8 9 AC_INIT([ippdb], [0.0.7 2], [pan-starrs.ifa.hawaii.edu])9 AC_INIT([ippdb], [0.0.73], [pan-starrs.ifa.hawaii.edu]) 10 10 AC_CONFIG_SRCDIR([ippdb.pc.in]) 11 11 -
trunk/ippdb/src/ippdb.c
r11030 r11045 40 40 #define NEWEXP_TABLE_NAME "newExp" 41 41 #define NEWIMFILE_TABLE_NAME "newImfile" 42 #define RAWDETRENDEXP_TABLE_NAME "rawDetrendExp" 43 #define RAWSCIENCEEXP_TABLE_NAME "rawScienceExp" 42 #define RAWEXP_TABLE_NAME "rawExp" 44 43 #define RAWIMFILE_TABLE_NAME "rawImfile" 45 44 #define P1PENDINGEXP_TABLE_NAME "p1PendingExp" … … 2800 2799 static void newExpRowFree(newExpRow *object); 2801 2800 2802 newExpRow *newExpRowAlloc(const char *exp_tag, const char *exp_id, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, psS32 imfiles , psS16 fault)2801 newExpRow *newExpRowAlloc(const char *exp_tag, const char *exp_id, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, psS32 imfiles) 2803 2802 { 2804 2803 newExpRow *_object; … … 2814 2813 _object->exp_type = psStringCopy(exp_type); 2815 2814 _object->imfiles = imfiles; 2816 _object->fault = fault;2817 2815 2818 2816 return _object; … … 2867 2865 return false; 2868 2866 } 2869 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "NOT NULL", 0)) {2870 psError(PS_ERR_UNKNOWN, false, "failed to add item fault");2871 psFree(md);2872 return false;2873 }2874 2867 2875 2868 bool status = psDBCreateTable(dbh, NEWEXP_TABLE_NAME, md); … … 2885 2878 } 2886 2879 2887 bool newExpInsert(psDB * dbh, const char *exp_tag, const char *exp_id, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, psS32 imfiles , psS16 fault)2880 bool newExpInsert(psDB * dbh, const char *exp_tag, const char *exp_id, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, psS32 imfiles) 2888 2881 { 2889 2882 psMetadata *md = psMetadataAlloc(); … … 2920 2913 if (!psMetadataAdd(md, PS_LIST_TAIL, "imfiles", PS_DATA_S32, NULL, imfiles)) { 2921 2914 psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles"); 2922 psFree(md);2923 return false;2924 }2925 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) {2926 psError(PS_ERR_UNKNOWN, false, "failed to add item fault");2927 2915 psFree(md); 2928 2916 return false; … … 2951 2939 bool newExpInsertObject(psDB *dbh, newExpRow *object) 2952 2940 { 2953 return newExpInsert(dbh, object->exp_tag, object->exp_id, object->camera, object->telescope, object->dateobs, object->exp_type, object->imfiles , object->fault);2941 return newExpInsert(dbh, object->exp_tag, object->exp_id, object->camera, object->telescope, object->dateobs, object->exp_type, object->imfiles); 2954 2942 } 2955 2943 … … 3059 3047 return false; 3060 3048 } 3061 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {3062 psError(PS_ERR_UNKNOWN, false, "failed to add item fault");3063 psFree(md);3064 return false;3065 }3066 3049 3067 3050 … … 3108 3091 return false; 3109 3092 } 3110 psS16 fault = psMetadataLookupS16(&status, md, "fault"); 3111 if (!status) { 3112 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fault"); 3113 return false; 3114 } 3115 3116 return newExpRowAlloc(exp_tag, exp_id, camera, telescope, dateobs, exp_type, imfiles, fault); 3093 3094 return newExpRowAlloc(exp_tag, exp_id, camera, telescope, dateobs, exp_type, imfiles); 3117 3095 } 3118 3096 psArray *newExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit) … … 3226 3204 static void newImfileRowFree(newImfileRow *object); 3227 3205 3228 newImfileRow *newImfileRowAlloc(const char *exp_tag, const char *class, const char *class_id, const char *uri , psS16 fault)3206 newImfileRow *newImfileRowAlloc(const char *exp_tag, const char *class, const char *class_id, const char *uri) 3229 3207 { 3230 3208 newImfileRow *_object; … … 3237 3215 _object->class_id = psStringCopy(class_id); 3238 3216 _object->uri = psStringCopy(uri); 3239 _object->fault = fault;3240 3217 3241 3218 return _object; … … 3273 3250 return false; 3274 3251 } 3275 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "NOT NULL", 0)) {3276 psError(PS_ERR_UNKNOWN, false, "failed to add item fault");3277 psFree(md);3278 return false;3279 }3280 3252 3281 3253 bool status = psDBCreateTable(dbh, NEWIMFILE_TABLE_NAME, md); … … 3291 3263 } 3292 3264 3293 bool newImfileInsert(psDB * dbh, const char *exp_tag, const char *class, const char *class_id, const char *uri , psS16 fault)3265 bool newImfileInsert(psDB * dbh, const char *exp_tag, const char *class, const char *class_id, const char *uri) 3294 3266 { 3295 3267 psMetadata *md = psMetadataAlloc(); … … 3311 3283 if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) { 3312 3284 psError(PS_ERR_UNKNOWN, false, "failed to add item uri"); 3313 psFree(md);3314 return false;3315 }3316 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) {3317 psError(PS_ERR_UNKNOWN, false, "failed to add item fault");3318 3285 psFree(md); 3319 3286 return false; … … 3342 3309 bool newImfileInsertObject(psDB *dbh, newImfileRow *object) 3343 3310 { 3344 return newImfileInsert(dbh, object->exp_tag, object->class, object->class_id, object->uri , object->fault);3311 return newImfileInsert(dbh, object->exp_tag, object->class, object->class_id, object->uri); 3345 3312 } 3346 3313 … … 3435 3402 return false; 3436 3403 } 3437 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {3438 psError(PS_ERR_UNKNOWN, false, "failed to add item fault");3439 psFree(md);3440 return false;3441 }3442 3404 3443 3405 … … 3469 3431 return false; 3470 3432 } 3471 psS16 fault = psMetadataLookupS16(&status, md, "fault"); 3472 if (!status) { 3473 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fault"); 3474 return false; 3475 } 3476 3477 return newImfileRowAlloc(exp_tag, class, class_id, uri, fault); 3433 3434 return newImfileRowAlloc(exp_tag, class, class_id, uri); 3478 3435 } 3479 3436 psArray *newImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit) … … 3585 3542 return true; 3586 3543 } 3587 static void raw DetrendExpRowFree(rawDetrendExpRow *object);3588 3589 raw DetrendExpRow *rawDetrendExpRowAlloc(const char *exp_tag, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs)3590 { 3591 raw DetrendExpRow*_object;3592 3593 _object = psAlloc(sizeof(raw DetrendExpRow));3594 psMemSetDeallocator(_object, (psFreeFunc)raw DetrendExpRowFree);3544 static void rawExpRowFree(rawExpRow *object); 3545 3546 rawExpRow *rawExpRowAlloc(const char *exp_tag, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs, psS16 fault) 3547 { 3548 rawExpRow *_object; 3549 3550 _object = psAlloc(sizeof(rawExpRow)); 3551 psMemSetDeallocator(_object, (psFreeFunc)rawExpRowFree); 3595 3552 3596 3553 _object->exp_tag = psStringCopy(exp_tag); … … 3613 3570 _object->object = psStringCopy(object); 3614 3571 _object->dateobs = psTimeCopy(dateobs); 3572 _object->fault = fault; 3615 3573 3616 3574 return _object; 3617 3575 } 3618 3576 3619 static void raw DetrendExpRowFree(rawDetrendExpRow *object)3577 static void rawExpRowFree(rawExpRow *object) 3620 3578 { 3621 3579 psFree(object->exp_tag); … … 3628 3586 } 3629 3587 3630 bool raw DetrendExpCreateTable(psDB *dbh)3588 bool rawExpCreateTable(psDB *dbh) 3631 3589 { 3632 3590 psMetadata *md = psMetadataAlloc(); … … 3726 3684 return false; 3727 3685 } 3728 3729 bool status = psDBCreateTable(dbh, RAWDETRENDEXP_TABLE_NAME, md); 3686 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "NOT NULL", 0)) { 3687 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 3688 psFree(md); 3689 return false; 3690 } 3691 3692 bool status = psDBCreateTable(dbh, RAWEXP_TABLE_NAME, md); 3730 3693 3731 3694 psFree(md); … … 3734 3697 } 3735 3698 3736 bool raw DetrendExpDropTable(psDB *dbh)3737 { 3738 return psDBDropTable(dbh, RAW DETRENDEXP_TABLE_NAME);3739 } 3740 3741 bool raw DetrendExpInsert(psDB * dbh, const char *exp_tag, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs)3699 bool rawExpDropTable(psDB *dbh) 3700 { 3701 return psDBDropTable(dbh, RAWEXP_TABLE_NAME); 3702 } 3703 3704 bool rawExpInsert(psDB * dbh, const char *exp_tag, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs, psS16 fault) 3742 3705 { 3743 3706 psMetadata *md = psMetadataAlloc(); … … 3837 3800 return false; 3838 3801 } 3839 3840 bool status = psDBInsertOneRow(dbh, RAWDETRENDEXP_TABLE_NAME, md); 3802 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) { 3803 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 3804 psFree(md); 3805 return false; 3806 } 3807 3808 bool status = psDBInsertOneRow(dbh, RAWEXP_TABLE_NAME, md); 3841 3809 psFree(md); 3842 3810 … … 3844 3812 } 3845 3813 3846 long long raw DetrendExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)3814 long long rawExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit) 3847 3815 { 3848 3816 long long deleted = 0; 3849 3817 3850 long long count = psDBDeleteRows(dbh, RAW DETRENDEXP_TABLE_NAME, where, limit);3818 long long count = psDBDeleteRows(dbh, RAWEXP_TABLE_NAME, where, limit); 3851 3819 if (count < 0) { 3852 psError(PS_ERR_UNKNOWN, true, "failed to delete row from raw DetrendExp");3820 psError(PS_ERR_UNKNOWN, true, "failed to delete row from rawExp"); 3853 3821 return count; 3854 3822 … … 3858 3826 return deleted; 3859 3827 } 3860 bool raw DetrendExpInsertObject(psDB *dbh, rawDetrendExpRow *object)3861 { 3862 return raw DetrendExpInsert(dbh, object->exp_tag, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->object, object->dateobs);3863 } 3864 3865 bool raw DetrendExpInsertObjects(psDB *dbh, psArray *objects)3828 bool rawExpInsertObject(psDB *dbh, rawExpRow *object) 3829 { 3830 return rawExpInsert(dbh, object->exp_tag, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->object, object->dateobs, object->fault); 3831 } 3832 3833 bool rawExpInsertObjects(psDB *dbh, psArray *objects) 3866 3834 { 3867 3835 for (long i = 0; i < psArrayLength(objects); i++) { 3868 if (!raw DetrendExpInsertObject(dbh, objects->data[i])) {3836 if (!rawExpInsertObject(dbh, objects->data[i])) { 3869 3837 return false; 3870 3838 } … … 3874 3842 } 3875 3843 3876 bool raw DetrendExpInsertFits(psDB *dbh, const psFits *fits)3844 bool rawExpInsertFits(psDB *dbh, const psFits *fits) 3877 3845 { 3878 3846 psArray *rowSet; 3879 3847 3880 // move to (the first?) extension named RAW DETRENDEXP_TABLE_NAME3881 if (!psFitsMoveExtName(fits, RAW DETRENDEXP_TABLE_NAME)) {3882 psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", RAW DETRENDEXP_TABLE_NAME);3848 // move to (the first?) extension named RAWEXP_TABLE_NAME 3849 if (!psFitsMoveExtName(fits, RAWEXP_TABLE_NAME)) { 3850 psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", RAWEXP_TABLE_NAME); 3883 3851 return false; 3884 3852 } … … 3898 3866 } 3899 3867 3900 if (!psDBInsertRows(dbh, RAW DETRENDEXP_TABLE_NAME, rowSet)) {3868 if (!psDBInsertRows(dbh, RAWEXP_TABLE_NAME, rowSet)) { 3901 3869 psError(PS_ERR_UNKNOWN, false, "databse insert failed"); 3902 3870 psFree(rowSet); … … 3909 3877 } 3910 3878 3911 bool raw DetrendExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)3879 bool rawExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit) 3912 3880 { 3913 3881 psArray *rowSet; 3914 3882 3915 rowSet = psDBSelectRows(dbh, RAW DETRENDEXP_TABLE_NAME, where, limit);3883 rowSet = psDBSelectRows(dbh, RAWEXP_TABLE_NAME, where, limit); 3916 3884 if (!rowSet) { 3917 3885 return false; … … 3919 3887 3920 3888 // output to fits 3921 if (!psFitsWriteTable(fits, NULL, rowSet, RAW DETRENDEXP_TABLE_NAME)) {3889 if (!psFitsWriteTable(fits, NULL, rowSet, RAWEXP_TABLE_NAME)) { 3922 3890 psError(PS_ERR_UNKNOWN, false, "FITS table write failed"); 3923 3891 psFree(rowSet); … … 3930 3898 } 3931 3899 3932 psMetadata *raw DetrendExpMetadataFromObject(const rawDetrendExpRow *object)3900 psMetadata *rawExpMetadataFromObject(const rawExpRow *object) 3933 3901 { 3934 3902 psMetadata *md = psMetadataAlloc(); … … 4028 3996 return false; 4029 3997 } 3998 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) { 3999 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 4000 psFree(md); 4001 return false; 4002 } 4030 4003 4031 4004 … … 4033 4006 } 4034 4007 4035 raw DetrendExpRow *rawDetrendExpObjectFromMetadata(psMetadata *md)4008 rawExpRow *rawExpObjectFromMetadata(psMetadata *md) 4036 4009 { 4037 4010 … … 4132 4105 return false; 4133 4106 } 4134 4135 return rawDetrendExpRowAlloc(exp_tag, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, object, dateobs); 4136 } 4137 psArray *rawDetrendExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit) 4107 psS16 fault = psMetadataLookupS16(&status, md, "fault"); 4108 if (!status) { 4109 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fault"); 4110 return false; 4111 } 4112 4113 return rawExpRowAlloc(exp_tag, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, object, dateobs, fault); 4114 } 4115 psArray *rawExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit) 4138 4116 { 4139 4117 psArray *rowSet; … … 4141 4119 psU64 i; 4142 4120 4143 rowSet = psDBSelectRows(dbh, RAW DETRENDEXP_TABLE_NAME, where, limit);4121 rowSet = psDBSelectRows(dbh, RAWEXP_TABLE_NAME, where, limit); 4144 4122 if (!rowSet) { 4145 4123 return NULL; … … 4151 4129 4152 4130 for (i = 0; i < rowSet->n; i++) { 4153 raw DetrendExpRow *object = rawDetrendExpObjectFromMetadata(rowSet->data[i]);4131 rawExpRow *object = rawExpObjectFromMetadata(rowSet->data[i]); 4154 4132 psArrayAdd(returnSet, 0, object); 4155 4133 psFree(object); … … 4160 4138 return returnSet; 4161 4139 } 4162 bool raw DetrendExpDeleteObject(psDB *dbh, const rawDetrendExpRow *object)4163 { 4164 psMetadata *where = raw DetrendExpMetadataFromObject(object);4165 long long count = psDBDeleteRows(dbh, RAW DETRENDEXP_TABLE_NAME, where, 0);4140 bool rawExpDeleteObject(psDB *dbh, const rawExpRow *object) 4141 { 4142 psMetadata *where = rawExpMetadataFromObject(object); 4143 long long count = psDBDeleteRows(dbh, RAWEXP_TABLE_NAME, where, 0); 4166 4144 psFree(where) 4167 4145 if (count < 0) { 4168 psError(PS_ERR_UNKNOWN, true, "failed to delete row from raw DetrendExp");4146 psError(PS_ERR_UNKNOWN, true, "failed to delete row from rawExp"); 4169 4147 return false; 4170 4148 } … … 4172 4150 // XXX should this be a psAbort() instead? It is possible that 4173 4151 // having an object match multiple rows was by design. 4174 psError(PS_ERR_UNKNOWN, true, "raw DetrendExpRow object matched more then one row. Check your database schema");4175 return false; 4176 } 4177 4178 return true; 4179 } 4180 long long raw DetrendExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)4152 psError(PS_ERR_UNKNOWN, true, "rawExpRow object matched more then one row. Check your database schema"); 4153 return false; 4154 } 4155 4156 return true; 4157 } 4158 long long rawExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit) 4181 4159 { 4182 4160 long long deleted = 0; 4183 4161 4184 4162 for (long long i = 0; i < objects->n; i++) { 4185 raw DetrendExpRow *object = objects->data[i];4186 psMetadata *where = raw DetrendExpMetadataFromObject(object);4187 long long count = psDBDeleteRows(dbh, RAW DETRENDEXP_TABLE_NAME, where, limit);4163 rawExpRow *object = objects->data[i]; 4164 psMetadata *where = rawExpMetadataFromObject(object); 4165 long long count = psDBDeleteRows(dbh, RAWEXP_TABLE_NAME, where, limit); 4188 4166 psFree(where) 4189 4167 if (count < 0) { 4190 psError(PS_ERR_UNKNOWN, true, "failed to delete row from raw DetrendExp");4168 psError(PS_ERR_UNKNOWN, true, "failed to delete row from rawExp"); 4191 4169 return count; 4192 4170 } … … 4197 4175 return deleted; 4198 4176 } 4199 bool raw DetrendExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)4177 bool rawExpPrintObjects(FILE *stream, psArray *objects, bool mdcf) 4200 4178 { 4201 4179 PS_ASSERT_PTR_NON_NULL(objects, false); … … 4203 4181 psMetadata *output = psMetadataAlloc(); 4204 4182 for (long i = 0; i < psArrayLength(objects); i++) { 4205 psMetadata *md = raw DetrendExpMetadataFromObject(objects->data[i]);4183 psMetadata *md = rawExpMetadataFromObject(objects->data[i]); 4206 4184 if (!psMetadataAddMetadata( 4207 4185 output, 4208 4186 PS_LIST_TAIL, 4209 RAW DETRENDEXP_TABLE_NAME,4187 RAWEXP_TABLE_NAME, 4210 4188 PS_META_DUPLICATE_OK, 4211 4189 NULL, … … 4228 4206 return true; 4229 4207 } 4230 bool raw DetrendExpPrintObject(FILE *stream, rawDetrendExpRow *object, bool mdcf)4208 bool rawExpPrintObject(FILE *stream, rawExpRow *object, bool mdcf) 4231 4209 { 4232 4210 PS_ASSERT_PTR_NON_NULL(object, false); 4233 4211 4234 psMetadata *md = raw DetrendExpMetadataFromObject(object);4212 psMetadata *md = rawExpMetadataFromObject(object); 4235 4213 4236 4214 if (!ippdbPrintMetadataRaw(stream, md, mdcf)) { … … 4243 4221 return true; 4244 4222 } 4245 static void rawScienceExpRowFree(rawScienceExpRow *object);4246 4247 rawScienceExpRow *rawScienceExpRowAlloc(const char *exp_tag, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs)4248 {4249 rawScienceExpRow *_object;4250 4251 _object = psAlloc(sizeof(rawScienceExpRow));4252 psMemSetDeallocator(_object, (psFreeFunc)rawScienceExpRowFree);4253 4254 _object->exp_tag = psStringCopy(exp_tag);4255 _object->camera = psStringCopy(camera);4256 _object->telescope = psStringCopy(telescope);4257 _object->exp_type = psStringCopy(exp_type);4258 _object->imfiles = imfiles;4259 _object->filter = psStringCopy(filter);4260 _object->airmass = airmass;4261 _object->ra = ra;4262 _object->decl = decl;4263 _object->exp_time = exp_time;4264 _object->bg = bg;4265 _object->bg_stdev = bg_stdev;4266 _object->bg_mean_stdev = bg_mean_stdev;4267 _object->alt = alt;4268 _object->az = az;4269 _object->ccd_temp = ccd_temp;4270 _object->posang = posang;4271 _object->object = psStringCopy(object);4272 _object->dateobs = psTimeCopy(dateobs);4273 4274 return _object;4275 }4276 4277 static void rawScienceExpRowFree(rawScienceExpRow *object)4278 {4279 psFree(object->exp_tag);4280 psFree(object->camera);4281 psFree(object->telescope);4282 psFree(object->exp_type);4283 psFree(object->filter);4284 psFree(object->object);4285 psFree(object->dateobs);4286 }4287 4288 bool rawScienceExpCreateTable(psDB *dbh)4289 {4290 psMetadata *md = psMetadataAlloc();4291 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_tag", PS_DATA_STRING, "Primary Key", "64")) {4292 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_tag");4293 psFree(md);4294 return false;4295 }4296 if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, NULL, "64")) {4297 psError(PS_ERR_UNKNOWN, false, "failed to add item camera");4298 psFree(md);4299 return false;4300 }4301 if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, NULL, "64")) {4302 psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");4303 psFree(md);4304 return false;4305 }4306 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, "64")) {4307 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");4308 psFree(md);4309 return false;4310 }4311 if (!psMetadataAdd(md, PS_LIST_TAIL, "imfiles", PS_DATA_S32, NULL, 0)) {4312 psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");4313 psFree(md);4314 return false;4315 }4316 if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, "64")) {4317 psError(PS_ERR_UNKNOWN, false, "failed to add item filter");4318 psFree(md);4319 return false;4320 }4321 if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, 0.0)) {4322 psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");4323 psFree(md);4324 return false;4325 }4326 if (!psMetadataAdd(md, PS_LIST_TAIL, "ra", PS_DATA_F64, NULL, 0.0)) {4327 psError(PS_ERR_UNKNOWN, false, "failed to add item ra");4328 psFree(md);4329 return false;4330 }4331 if (!psMetadataAdd(md, PS_LIST_TAIL, "decl", PS_DATA_F64, NULL, 0.0)) {4332 psError(PS_ERR_UNKNOWN, false, "failed to add item decl");4333 psFree(md);4334 return false;4335 }4336 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_time", PS_DATA_F32, NULL, 0.0)) {4337 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");4338 psFree(md);4339 return false;4340 }4341 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, 0.0)) {4342 psError(PS_ERR_UNKNOWN, false, "failed to add item bg");4343 psFree(md);4344 return false;4345 }4346 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_stdev", PS_DATA_F64, NULL, 0.0)) {4347 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");4348 psFree(md);4349 return false;4350 }4351 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, 0.0)) {4352 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");4353 psFree(md);4354 return false;4355 }4356 if (!psMetadataAdd(md, PS_LIST_TAIL, "alt", PS_DATA_F64, NULL, 0.0)) {4357 psError(PS_ERR_UNKNOWN, false, "failed to add item alt");4358 psFree(md);4359 return false;4360 }4361 if (!psMetadataAdd(md, PS_LIST_TAIL, "az", PS_DATA_F64, NULL, 0.0)) {4362 psError(PS_ERR_UNKNOWN, false, "failed to add item az");4363 psFree(md);4364 return false;4365 }4366 if (!psMetadataAdd(md, PS_LIST_TAIL, "ccd_temp", PS_DATA_F32, NULL, 0.0)) {4367 psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");4368 psFree(md);4369 return false;4370 }4371 if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, 0.0)) {4372 psError(PS_ERR_UNKNOWN, false, "failed to add item posang");4373 psFree(md);4374 return false;4375 }4376 if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, "64")) {4377 psError(PS_ERR_UNKNOWN, false, "failed to add item object");4378 psFree(md);4379 return false;4380 }4381 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, NULL)) {4382 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs");4383 psFree(md);4384 return false;4385 }4386 4387 bool status = psDBCreateTable(dbh, RAWSCIENCEEXP_TABLE_NAME, md);4388 4389 psFree(md);4390 4391 return status;4392 }4393 4394 bool rawScienceExpDropTable(psDB *dbh)4395 {4396 return psDBDropTable(dbh, RAWSCIENCEEXP_TABLE_NAME);4397 }4398 4399 bool rawScienceExpInsert(psDB * dbh, const char *exp_tag, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs)4400 {4401 psMetadata *md = psMetadataAlloc();4402 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_tag", PS_DATA_STRING, NULL, exp_tag)) {4403 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_tag");4404 psFree(md);4405 return false;4406 }4407 if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, NULL, camera)) {4408 psError(PS_ERR_UNKNOWN, false, "failed to add item camera");4409 psFree(md);4410 return false;4411 }4412 if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, NULL, telescope)) {4413 psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");4414 psFree(md);4415 return false;4416 }4417 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, exp_type)) {4418 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");4419 psFree(md);4420 return false;4421 }4422 if (!psMetadataAdd(md, PS_LIST_TAIL, "imfiles", PS_DATA_S32, NULL, imfiles)) {4423 psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");4424 psFree(md);4425 return false;4426 }4427 if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, filter)) {4428 psError(PS_ERR_UNKNOWN, false, "failed to add item filter");4429 psFree(md);4430 return false;4431 }4432 if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, airmass)) {4433 psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");4434 psFree(md);4435 return false;4436 }4437 if (!psMetadataAdd(md, PS_LIST_TAIL, "ra", PS_DATA_F64, NULL, ra)) {4438 psError(PS_ERR_UNKNOWN, false, "failed to add item ra");4439 psFree(md);4440 return false;4441 }4442 if (!psMetadataAdd(md, PS_LIST_TAIL, "decl", PS_DATA_F64, NULL, decl)) {4443 psError(PS_ERR_UNKNOWN, false, "failed to add item decl");4444 psFree(md);4445 return false;4446 }4447 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_time", PS_DATA_F32, NULL, exp_time)) {4448 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");4449 psFree(md);4450 return false;4451 }4452 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, bg)) {4453 psError(PS_ERR_UNKNOWN, false, "failed to add item bg");4454 psFree(md);4455 return false;4456 }4457 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_stdev", PS_DATA_F64, NULL, bg_stdev)) {4458 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");4459 psFree(md);4460 return false;4461 }4462 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, bg_mean_stdev)) {4463 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");4464 psFree(md);4465 return false;4466 }4467 if (!psMetadataAdd(md, PS_LIST_TAIL, "alt", PS_DATA_F64, NULL, alt)) {4468 psError(PS_ERR_UNKNOWN, false, "failed to add item alt");4469 psFree(md);4470 return false;4471 }4472 if (!psMetadataAdd(md, PS_LIST_TAIL, "az", PS_DATA_F64, NULL, az)) {4473 psError(PS_ERR_UNKNOWN, false, "failed to add item az");4474 psFree(md);4475 return false;4476 }4477 if (!psMetadataAdd(md, PS_LIST_TAIL, "ccd_temp", PS_DATA_F32, NULL, ccd_temp)) {4478 psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");4479 psFree(md);4480 return false;4481 }4482 if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, posang)) {4483 psError(PS_ERR_UNKNOWN, false, "failed to add item posang");4484 psFree(md);4485 return false;4486 }4487 if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, object)) {4488 psError(PS_ERR_UNKNOWN, false, "failed to add item object");4489 psFree(md);4490 return false;4491 }4492 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, dateobs)) {4493 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs");4494 psFree(md);4495 return false;4496 }4497 4498 bool status = psDBInsertOneRow(dbh, RAWSCIENCEEXP_TABLE_NAME, md);4499 psFree(md);4500 4501 return status;4502 }4503 4504 long long rawScienceExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)4505 {4506 long long deleted = 0;4507 4508 long long count = psDBDeleteRows(dbh, RAWSCIENCEEXP_TABLE_NAME, where, limit);4509 if (count < 0) {4510 psError(PS_ERR_UNKNOWN, true, "failed to delete row from rawScienceExp");4511 return count;4512 4513 deleted += count;4514 }4515 4516 return deleted;4517 }4518 bool rawScienceExpInsertObject(psDB *dbh, rawScienceExpRow *object)4519 {4520 return rawScienceExpInsert(dbh, object->exp_tag, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->object, object->dateobs);4521 }4522 4523 bool rawScienceExpInsertObjects(psDB *dbh, psArray *objects)4524 {4525 for (long i = 0; i < psArrayLength(objects); i++) {4526 if (!rawScienceExpInsertObject(dbh, objects->data[i])) {4527 return false;4528 }4529 }4530 4531 return true;4532 }4533 4534 bool rawScienceExpInsertFits(psDB *dbh, const psFits *fits)4535 {4536 psArray *rowSet;4537 4538 // move to (the first?) extension named RAWSCIENCEEXP_TABLE_NAME4539 if (!psFitsMoveExtName(fits, RAWSCIENCEEXP_TABLE_NAME)) {4540 psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", RAWSCIENCEEXP_TABLE_NAME);4541 return false;4542 }4543 4544 // check HDU type4545 if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE) {4546 psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE");4547 return false;4548 }4549 4550 // read fits table4551 rowSet = psFitsReadTable(fits);4552 if (!rowSet) {4553 psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty");4554 psFree(rowSet);4555 return false;4556 }4557 4558 if (!psDBInsertRows(dbh, RAWSCIENCEEXP_TABLE_NAME, rowSet)) {4559 psError(PS_ERR_UNKNOWN, false, "databse insert failed");4560 psFree(rowSet);4561 return false;4562 }4563 4564 psFree(rowSet);4565 4566 return true;4567 }4568 4569 bool rawScienceExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)4570 {4571 psArray *rowSet;4572 4573 rowSet = psDBSelectRows(dbh, RAWSCIENCEEXP_TABLE_NAME, where, limit);4574 if (!rowSet) {4575 return false;4576 }4577 4578 // output to fits4579 if (!psFitsWriteTable(fits, NULL, rowSet, RAWSCIENCEEXP_TABLE_NAME)) {4580 psError(PS_ERR_UNKNOWN, false, "FITS table write failed");4581 psFree(rowSet);4582 return false;4583 }4584 4585 psFree(rowSet);4586 4587 return true;4588 }4589 4590 psMetadata *rawScienceExpMetadataFromObject(const rawScienceExpRow *object)4591 {4592 psMetadata *md = psMetadataAlloc();4593 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_tag", PS_DATA_STRING, NULL, object->exp_tag)) {4594 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_tag");4595 psFree(md);4596 return false;4597 }4598 if (!psMetadataAdd(md, PS_LIST_TAIL, "camera", PS_DATA_STRING, NULL, object->camera)) {4599 psError(PS_ERR_UNKNOWN, false, "failed to add item camera");4600 psFree(md);4601 return false;4602 }4603 if (!psMetadataAdd(md, PS_LIST_TAIL, "telescope", PS_DATA_STRING, NULL, object->telescope)) {4604 psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");4605 psFree(md);4606 return false;4607 }4608 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, object->exp_type)) {4609 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");4610 psFree(md);4611 return false;4612 }4613 if (!psMetadataAdd(md, PS_LIST_TAIL, "imfiles", PS_DATA_S32, NULL, object->imfiles)) {4614 psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");4615 psFree(md);4616 return false;4617 }4618 if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, object->filter)) {4619 psError(PS_ERR_UNKNOWN, false, "failed to add item filter");4620 psFree(md);4621 return false;4622 }4623 if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, object->airmass)) {4624 psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");4625 psFree(md);4626 return false;4627 }4628 if (!psMetadataAdd(md, PS_LIST_TAIL, "ra", PS_DATA_F64, NULL, object->ra)) {4629 psError(PS_ERR_UNKNOWN, false, "failed to add item ra");4630 psFree(md);4631 return false;4632 }4633 if (!psMetadataAdd(md, PS_LIST_TAIL, "decl", PS_DATA_F64, NULL, object->decl)) {4634 psError(PS_ERR_UNKNOWN, false, "failed to add item decl");4635 psFree(md);4636 return false;4637 }4638 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_time", PS_DATA_F32, NULL, object->exp_time)) {4639 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");4640 psFree(md);4641 return false;4642 }4643 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, object->bg)) {4644 psError(PS_ERR_UNKNOWN, false, "failed to add item bg");4645 psFree(md);4646 return false;4647 }4648 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_stdev", PS_DATA_F64, NULL, object->bg_stdev)) {4649 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");4650 psFree(md);4651 return false;4652 }4653 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, object->bg_mean_stdev)) {4654 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");4655 psFree(md);4656 return false;4657 }4658 if (!psMetadataAdd(md, PS_LIST_TAIL, "alt", PS_DATA_F64, NULL, object->alt)) {4659 psError(PS_ERR_UNKNOWN, false, "failed to add item alt");4660 psFree(md);4661 return false;4662 }4663 if (!psMetadataAdd(md, PS_LIST_TAIL, "az", PS_DATA_F64, NULL, object->az)) {4664 psError(PS_ERR_UNKNOWN, false, "failed to add item az");4665 psFree(md);4666 return false;4667 }4668 if (!psMetadataAdd(md, PS_LIST_TAIL, "ccd_temp", PS_DATA_F32, NULL, object->ccd_temp)) {4669 psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");4670 psFree(md);4671 return false;4672 }4673 if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, object->posang)) {4674 psError(PS_ERR_UNKNOWN, false, "failed to add item posang");4675 psFree(md);4676 return false;4677 }4678 if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, object->object)) {4679 psError(PS_ERR_UNKNOWN, false, "failed to add item object");4680 psFree(md);4681 return false;4682 }4683 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, object->dateobs)) {4684 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs");4685 psFree(md);4686 return false;4687 }4688 4689 4690 return md;4691 }4692 4693 rawScienceExpRow *rawScienceExpObjectFromMetadata(psMetadata *md)4694 {4695 4696 bool status = false;4697 char* exp_tag = psMetadataLookupPtr(&status, md, "exp_tag");4698 if (!status) {4699 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_tag");4700 return false;4701 }4702 char* camera = psMetadataLookupPtr(&status, md, "camera");4703 if (!status) {4704 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");4705 return false;4706 }4707 char* telescope = psMetadataLookupPtr(&status, md, "telescope");4708 if (!status) {4709 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");4710 return false;4711 }4712 char* exp_type = psMetadataLookupPtr(&status, md, "exp_type");4713 if (!status) {4714 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");4715 return false;4716 }4717 psS32 imfiles = psMetadataLookupS32(&status, md, "imfiles");4718 if (!status) {4719 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");4720 return false;4721 }4722 char* filter = psMetadataLookupPtr(&status, md, "filter");4723 if (!status) {4724 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");4725 return false;4726 }4727 psF32 airmass = psMetadataLookupF32(&status, md, "airmass");4728 if (!status) {4729 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");4730 return false;4731 }4732 psF64 ra = psMetadataLookupF64(&status, md, "ra");4733 if (!status) {4734 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");4735 return false;4736 }4737 psF64 decl = psMetadataLookupF64(&status, md, "decl");4738 if (!status) {4739 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");4740 return false;4741 }4742 psF32 exp_time = psMetadataLookupF32(&status, md, "exp_time");4743 if (!status) {4744 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");4745 return false;4746 }4747 psF64 bg = psMetadataLookupF64(&status, md, "bg");4748 if (!status) {4749 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");4750 return false;4751 }4752 psF64 bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");4753 if (!status) {4754 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");4755 return false;4756 }4757 psF64 bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");4758 if (!status) {4759 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");4760 return false;4761 }4762 psF64 alt = psMetadataLookupF64(&status, md, "alt");4763 if (!status) {4764 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");4765 return false;4766 }4767 psF64 az = psMetadataLookupF64(&status, md, "az");4768 if (!status) {4769 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");4770 return false;4771 }4772 psF32 ccd_temp = psMetadataLookupF32(&status, md, "ccd_temp");4773 if (!status) {4774 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");4775 return false;4776 }4777 psF64 posang = psMetadataLookupF64(&status, md, "posang");4778 if (!status) {4779 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");4780 return false;4781 }4782 char* object = psMetadataLookupPtr(&status, md, "object");4783 if (!status) {4784 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item object");4785 return false;4786 }4787 psTime* dateobs = psMetadataLookupPtr(&status, md, "dateobs");4788 if (!status) {4789 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item dateobs");4790 return false;4791 }4792 4793 return rawScienceExpRowAlloc(exp_tag, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, object, dateobs);4794 }4795 psArray *rawScienceExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)4796 {4797 psArray *rowSet;4798 psArray *returnSet;4799 psU64 i;4800 4801 rowSet = psDBSelectRows(dbh, RAWSCIENCEEXP_TABLE_NAME, where, limit);4802 if (!rowSet) {4803 return NULL;4804 }4805 4806 // convert psMetadata rows to row objects4807 4808 returnSet = psArrayAllocEmpty(rowSet->n);4809 4810 for (i = 0; i < rowSet->n; i++) {4811 rawScienceExpRow *object = rawScienceExpObjectFromMetadata(rowSet->data[i]);4812 psArrayAdd(returnSet, 0, object);4813 psFree(object);4814 }4815 4816 psFree(rowSet);4817 4818 return returnSet;4819 }4820 bool rawScienceExpDeleteObject(psDB *dbh, const rawScienceExpRow *object)4821 {4822 psMetadata *where = rawScienceExpMetadataFromObject(object);4823 long long count = psDBDeleteRows(dbh, RAWSCIENCEEXP_TABLE_NAME, where, 0);4824 psFree(where)4825 if (count < 0) {4826 psError(PS_ERR_UNKNOWN, true, "failed to delete row from rawScienceExp");4827 return false;4828 }4829 if (count > 1) {4830 // XXX should this be a psAbort() instead? It is possible that4831 // having an object match multiple rows was by design.4832 psError(PS_ERR_UNKNOWN, true, "rawScienceExpRow object matched more then one row. Check your database schema");4833 return false;4834 }4835 4836 return true;4837 }4838 long long rawScienceExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)4839 {4840 long long deleted = 0;4841 4842 for (long long i = 0; i < objects->n; i++) {4843 rawScienceExpRow *object = objects->data[i];4844 psMetadata *where = rawScienceExpMetadataFromObject(object);4845 long long count = psDBDeleteRows(dbh, RAWSCIENCEEXP_TABLE_NAME, where, limit);4846 psFree(where)4847 if (count < 0) {4848 psError(PS_ERR_UNKNOWN, true, "failed to delete row from rawScienceExp");4849 return count;4850 }4851 4852 deleted += count;4853 }4854 4855 return deleted;4856 }4857 bool rawScienceExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)4858 {4859 PS_ASSERT_PTR_NON_NULL(objects, false);4860 4861 psMetadata *output = psMetadataAlloc();4862 for (long i = 0; i < psArrayLength(objects); i++) {4863 psMetadata *md = rawScienceExpMetadataFromObject(objects->data[i]);4864 if (!psMetadataAddMetadata(4865 output,4866 PS_LIST_TAIL,4867 RAWSCIENCEEXP_TABLE_NAME,4868 PS_META_DUPLICATE_OK,4869 NULL,4870 md4871 )) {4872 psError(PS_ERR_UNKNOWN, false, "failed to add metadata");4873 psFree(md);4874 psFree(output);4875 return false;4876 }4877 psFree(md);4878 }4879 4880 if (!ippdbPrintMetadataRaw(stream, output, mdcf)) {4881 psError(PS_ERR_UNKNOWN, false, "failed to print metadata");4882 psFree(output);4883 }4884 psFree(output);4885 4886 return true;4887 }4888 bool rawScienceExpPrintObject(FILE *stream, rawScienceExpRow *object, bool mdcf)4889 {4890 PS_ASSERT_PTR_NON_NULL(object, false);4891 4892 psMetadata *md = rawScienceExpMetadataFromObject(object);4893 4894 if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {4895 psError(PS_ERR_UNKNOWN, false, "failed to print metadata");4896 psFree(md);4897 }4898 4899 psFree(md);4900 4901 return true;4902 }4903 4223 static void rawImfileRowFree(rawImfileRow *object); 4904 4224 4905 rawImfileRow *rawImfileRowAlloc(const char *exp_tag, const char *class, const char *class_id, const char *uri, const char *exp_type, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs )4225 rawImfileRow *rawImfileRowAlloc(const char *exp_tag, const char *class, const char *class_id, const char *uri, const char *exp_type, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs, psS16 fault) 4906 4226 { 4907 4227 rawImfileRow *_object; … … 4929 4249 _object->object = psStringCopy(object); 4930 4250 _object->dateobs = psTimeCopy(dateobs); 4251 _object->fault = fault; 4931 4252 4932 4253 return _object; … … 5043 4364 return false; 5044 4365 } 4366 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "NOT NULL", 0)) { 4367 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 4368 psFree(md); 4369 return false; 4370 } 5045 4371 5046 4372 bool status = psDBCreateTable(dbh, RAWIMFILE_TABLE_NAME, md); … … 5056 4382 } 5057 4383 5058 bool rawImfileInsert(psDB * dbh, const char *exp_tag, const char *class, const char *class_id, const char *uri, const char *exp_type, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs )4384 bool rawImfileInsert(psDB * dbh, const char *exp_tag, const char *class, const char *class_id, const char *uri, const char *exp_type, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs, psS16 fault) 5059 4385 { 5060 4386 psMetadata *md = psMetadataAlloc(); … … 5151 4477 if (!psMetadataAdd(md, PS_LIST_TAIL, "dateobs", PS_DATA_TIME, NULL, dateobs)) { 5152 4478 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs"); 4479 psFree(md); 4480 return false; 4481 } 4482 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) { 4483 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 5153 4484 psFree(md); 5154 4485 return false; … … 5177 4508 bool rawImfileInsertObject(psDB *dbh, rawImfileRow *object) 5178 4509 { 5179 return rawImfileInsert(dbh, object->exp_tag, object->class, object->class_id, object->uri, object->exp_type, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->object, object->dateobs );4510 return rawImfileInsert(dbh, object->exp_tag, object->class, object->class_id, object->uri, object->exp_type, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->object, object->dateobs, object->fault); 5180 4511 } 5181 4512 … … 5345 4676 return false; 5346 4677 } 4678 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) { 4679 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 4680 psFree(md); 4681 return false; 4682 } 5347 4683 5348 4684 … … 5449 4785 return false; 5450 4786 } 5451 5452 return rawImfileRowAlloc(exp_tag, class, class_id, uri, exp_type, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, object, dateobs); 4787 psS16 fault = psMetadataLookupS16(&status, md, "fault"); 4788 if (!status) { 4789 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fault"); 4790 return false; 4791 } 4792 4793 return rawImfileRowAlloc(exp_tag, class, class_id, uri, exp_type, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, object, dateobs, fault); 5453 4794 } 5454 4795 psArray *rawImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit) -
trunk/ippdb/src/ippdb.h
r11030 r11045 1590 1590 char *exp_type; 1591 1591 psS32 imfiles; 1592 psS16 fault;1593 1592 } newExpRow; 1594 1593 … … 1605 1604 psTime* dateobs, 1606 1605 const char *exp_type, 1607 psS32 imfiles, 1608 psS16 fault 1606 psS32 imfiles 1609 1607 ); 1610 1608 … … 1642 1640 psTime* dateobs, 1643 1641 const char *exp_type, 1644 psS32 imfiles, 1645 psS16 fault 1642 psS32 imfiles 1646 1643 ); 1647 1644 … … 1803 1800 char *class_id; 1804 1801 char *uri; 1805 psS16 fault;1806 1802 } newImfileRow; 1807 1803 … … 1815 1811 const char *class, 1816 1812 const char *class_id, 1817 const char *uri, 1818 psS16 fault 1813 const char *uri 1819 1814 ); 1820 1815 … … 1849 1844 const char *class, 1850 1845 const char *class_id, 1851 const char *uri, 1852 psS16 fault 1846 const char *uri 1853 1847 ); 1854 1848 … … 2000 1994 bool mdcf ///< format as mdconfig or simple 2001 1995 ); 2002 /** raw DetrendExpRow data structure2003 * 2004 * Structure for representing a single row of raw DetrendExp table data.1996 /** rawExpRow data structure 1997 * 1998 * Structure for representing a single row of rawExp table data. 2005 1999 */ 2006 2000 … … 2025 2019 char *object; 2026 2020 psTime* dateobs; 2027 } rawDetrendExpRow; 2028 2029 /** Creates a new rawDetrendExpRow object 2030 * 2031 * @return A new rawDetrendExpRow object or NULL on failure. 2032 */ 2033 2034 rawDetrendExpRow *rawDetrendExpRowAlloc( 2021 psS16 fault; 2022 } rawExpRow; 2023 2024 /** Creates a new rawExpRow object 2025 * 2026 * @return A new rawExpRow object or NULL on failure. 2027 */ 2028 2029 rawExpRow *rawExpRowAlloc( 2035 2030 const char *exp_tag, 2036 2031 const char *camera, … … 2051 2046 psF64 posang, 2052 2047 const char *object, 2053 psTime* dateobs 2054 ); 2055 2056 /** Creates a new rawDetrendExp table 2057 * 2058 * @return true on success 2059 */ 2060 2061 bool rawDetrendExpCreateTable( 2048 psTime* dateobs, 2049 psS16 fault 2050 ); 2051 2052 /** Creates a new rawExp table 2053 * 2054 * @return true on success 2055 */ 2056 2057 bool rawExpCreateTable( 2062 2058 psDB *dbh ///< Database handle 2063 2059 ); 2064 2060 2065 /** Deletes a raw DetrendExp table2066 * 2067 * @return true on success 2068 */ 2069 2070 bool raw DetrendExpDropTable(2061 /** Deletes a rawExp table 2062 * 2063 * @return true on success 2064 */ 2065 2066 bool rawExpDropTable( 2071 2067 psDB *dbh ///< Database handle 2072 2068 ); … … 2079 2075 */ 2080 2076 2081 bool raw DetrendExpInsert(2077 bool rawExpInsert( 2082 2078 psDB *dbh, ///< Database handle 2083 2079 const char *exp_tag, … … 2099 2095 psF64 posang, 2100 2096 const char *object, 2101 psTime* dateobs 2097 psTime* dateobs, 2098 psS16 fault 2102 2099 ); 2103 2100 … … 2107 2104 */ 2108 2105 2109 long long raw DetrendExpDelete(2106 long long rawExpDelete( 2110 2107 psDB *dbh, ///< Database handle 2111 2108 const psMetadata *where, ///< Row match criteria … … 2113 2110 ); 2114 2111 2115 /** Insert a single raw DetrendExpRow object into a table2112 /** Insert a single rawExpRow object into a table 2116 2113 * 2117 2114 * This function constructs and inserts a single row based on it's parameters. … … 2120 2117 */ 2121 2118 2122 bool raw DetrendExpInsertObject(2123 psDB *dbh, ///< Database handle 2124 raw DetrendExpRow *object ///< rawDetrendExpRow object2125 ); 2126 2127 /** Insert an array of raw DetrendExpRow object into a table2119 bool rawExpInsertObject( 2120 psDB *dbh, ///< Database handle 2121 rawExpRow *object ///< rawExpRow object 2122 ); 2123 2124 /** Insert an array of rawExpRow object into a table 2128 2125 * 2129 2126 * This function constructs and inserts multiple rows based on it's parameters. … … 2132 2129 */ 2133 2130 2134 bool raw DetrendExpInsertObjects(2135 psDB *dbh, ///< Database handle 2136 psArray *objects ///< array of raw DetrendExpRow objects2137 ); 2138 2139 /** Insert data from a binary FITS table raw DetrendExpRow into the database2131 bool rawExpInsertObjects( 2132 psDB *dbh, ///< Database handle 2133 psArray *objects ///< array of rawExpRow objects 2134 ); 2135 2136 /** Insert data from a binary FITS table rawExpRow into the database 2140 2137 * 2141 2138 * This function expects a psFits object with a FITS table as the first … … 2147 2144 */ 2148 2145 2149 bool raw DetrendExpInsertFits(2146 bool rawExpInsertFits( 2150 2147 psDB *dbh, ///< Database handle 2151 2148 const psFits *fits ///< psFits object … … 2162 2159 */ 2163 2160 2164 bool raw DetrendExpSelectRowsFits(2161 bool rawExpSelectRowsFits( 2165 2162 psDB *dbh, ///< Database handle 2166 2163 psFits *fits, ///< psFits object … … 2169 2166 ); 2170 2167 2171 /** Convert a raw DetrendExpRow into an equivalent psMetadata2168 /** Convert a rawExpRow into an equivalent psMetadata 2172 2169 * 2173 2170 * @return A psMetadata pointer or NULL on error 2174 2171 */ 2175 2172 2176 psMetadata *raw DetrendExpMetadataFromObject(2177 const raw DetrendExpRow *object ///< fooRow to convert into a psMetadata2173 psMetadata *rawExpMetadataFromObject( 2174 const rawExpRow *object ///< fooRow to convert into a psMetadata 2178 2175 ); 2179 2176 2180 2177 /** Convert a psMetadata into an equivalent fooRow 2181 2178 * 2182 * @return A raw DetrendExpRow pointer or NULL on error2183 */ 2184 2185 raw DetrendExpRow *rawDetrendExpObjectFromMetadata(2179 * @return A rawExpRow pointer or NULL on error 2180 */ 2181 2182 rawExpRow *rawExpObjectFromMetadata( 2186 2183 psMetadata *md ///< psMetadata to convert into a fooRow 2187 2184 ); 2188 /** Selects up to limit rows from the database and returns as raw DetrendExpRow objects in a psArray2185 /** Selects up to limit rows from the database and returns as rawExpRow objects in a psArray 2189 2186 * 2190 2187 * See psDBSelectRows() for documentation on the format of where. … … 2193 2190 */ 2194 2191 2195 psArray *raw DetrendExpSelectRowObjects(2192 psArray *rawExpSelectRowObjects( 2196 2193 psDB *dbh, ///< Database handle 2197 2194 const psMetadata *where, ///< Row match criteria 2198 2195 unsigned long long limit ///< Maximum number of elements to return 2199 2196 ); 2200 /** Deletes a row from the database coresponding to an raw DetrendExp2197 /** Deletes a row from the database coresponding to an rawExp 2201 2198 * 2202 2199 * Note that a 'where' search psMetadata is constructed from each object and … … 2206 2203 */ 2207 2204 2208 bool raw DetrendExpDeleteObject(2209 psDB *dbh, ///< Database handle 2210 const raw DetrendExpRow *object ///< Object to delete2205 bool rawExpDeleteObject( 2206 psDB *dbh, ///< Database handle 2207 const rawExpRow *object ///< Object to delete 2211 2208 ); 2212 2209 /** Deletes up to limit rows from the database and returns the number of rows actually deleted. … … 2218 2215 */ 2219 2216 2220 long long raw DetrendExpDeleteRowObjects(2217 long long rawExpDeleteRowObjects( 2221 2218 psDB *dbh, ///< Database handle 2222 2219 const psArray *objects, ///< Array of objects to delete 2223 2220 unsigned long long limit ///< Maximum number of elements to delete 2224 2221 ); 2225 /** Formats and prints an array of raw DetrendExpRow objects2222 /** Formats and prints an array of rawExpRow objects 2226 2223 * 2227 2224 * When mdcf is set the formated output is in psMetadataConfig … … 2231 2228 */ 2232 2229 2233 bool raw DetrendExpPrintObjects(2230 bool rawExpPrintObjects( 2234 2231 FILE *stream, ///< a stream 2235 psArray *objects, ///< An array of raw DetrendExpRow objects2232 psArray *objects, ///< An array of rawExpRow objects 2236 2233 bool mdcf ///< format as mdconfig or simple 2237 2234 ); 2238 /** Formats and prints an raw DetrendExpRow object2235 /** Formats and prints an rawExpRow object 2239 2236 * 2240 2237 * When mdcf is set the formated output is in psMetadataConfig … … 2244 2241 */ 2245 2242 2246 bool raw DetrendExpPrintObject(2243 bool rawExpPrintObject( 2247 2244 FILE *stream, ///< a stream 2248 rawDetrendExpRow *object, ///< an rawDetrendExpRow object 2249 bool mdcf ///< format as mdconfig or simple 2250 ); 2251 /** rawScienceExpRow data structure 2252 * 2253 * Structure for representing a single row of rawScienceExp table data. 2254 */ 2255 2256 typedef struct { 2257 char *exp_tag; 2258 char *camera; 2259 char *telescope; 2260 char *exp_type; 2261 psS32 imfiles; 2262 char *filter; 2263 psF32 airmass; 2264 psF64 ra; 2265 psF64 decl; 2266 psF32 exp_time; 2267 psF64 bg; 2268 psF64 bg_stdev; 2269 psF64 bg_mean_stdev; 2270 psF64 alt; 2271 psF64 az; 2272 psF32 ccd_temp; 2273 psF64 posang; 2274 char *object; 2275 psTime* dateobs; 2276 } rawScienceExpRow; 2277 2278 /** Creates a new rawScienceExpRow object 2279 * 2280 * @return A new rawScienceExpRow object or NULL on failure. 2281 */ 2282 2283 rawScienceExpRow *rawScienceExpRowAlloc( 2284 const char *exp_tag, 2285 const char *camera, 2286 const char *telescope, 2287 const char *exp_type, 2288 psS32 imfiles, 2289 const char *filter, 2290 psF32 airmass, 2291 psF64 ra, 2292 psF64 decl, 2293 psF32 exp_time, 2294 psF64 bg, 2295 psF64 bg_stdev, 2296 psF64 bg_mean_stdev, 2297 psF64 alt, 2298 psF64 az, 2299 psF32 ccd_temp, 2300 psF64 posang, 2301 const char *object, 2302 psTime* dateobs 2303 ); 2304 2305 /** Creates a new rawScienceExp table 2306 * 2307 * @return true on success 2308 */ 2309 2310 bool rawScienceExpCreateTable( 2311 psDB *dbh ///< Database handle 2312 ); 2313 2314 /** Deletes a rawScienceExp table 2315 * 2316 * @return true on success 2317 */ 2318 2319 bool rawScienceExpDropTable( 2320 psDB *dbh ///< Database handle 2321 ); 2322 2323 /** Insert a single row into a table 2324 * 2325 * This function constructs and inserts a single row based on it's parameters. 2326 * 2327 * @return true on success 2328 */ 2329 2330 bool rawScienceExpInsert( 2331 psDB *dbh, ///< Database handle 2332 const char *exp_tag, 2333 const char *camera, 2334 const char *telescope, 2335 const char *exp_type, 2336 psS32 imfiles, 2337 const char *filter, 2338 psF32 airmass, 2339 psF64 ra, 2340 psF64 decl, 2341 psF32 exp_time, 2342 psF64 bg, 2343 psF64 bg_stdev, 2344 psF64 bg_mean_stdev, 2345 psF64 alt, 2346 psF64 az, 2347 psF32 ccd_temp, 2348 psF64 posang, 2349 const char *object, 2350 psTime* dateobs 2351 ); 2352 2353 /** Deletes up to limit rows from the database and returns the number of rows actually deleted. 2354 * 2355 * @return A The number of rows removed or a negative value on error 2356 */ 2357 2358 long long rawScienceExpDelete( 2359 psDB *dbh, ///< Database handle 2360 const psMetadata *where, ///< Row match criteria 2361 unsigned long long limit ///< Maximum number of elements to delete 2362 ); 2363 2364 /** Insert a single rawScienceExpRow object into a table 2365 * 2366 * This function constructs and inserts a single row based on it's parameters. 2367 * 2368 * @return true on success 2369 */ 2370 2371 bool rawScienceExpInsertObject( 2372 psDB *dbh, ///< Database handle 2373 rawScienceExpRow *object ///< rawScienceExpRow object 2374 ); 2375 2376 /** Insert an array of rawScienceExpRow object into a table 2377 * 2378 * This function constructs and inserts multiple rows based on it's parameters. 2379 * 2380 * @return true on success 2381 */ 2382 2383 bool rawScienceExpInsertObjects( 2384 psDB *dbh, ///< Database handle 2385 psArray *objects ///< array of rawScienceExpRow objects 2386 ); 2387 2388 /** Insert data from a binary FITS table rawScienceExpRow into the database 2389 * 2390 * This function expects a psFits object with a FITS table as the first 2391 * extension. The table must have at least one row of data in it, that is of 2392 * the appropriate format (number of columns and their type). All other 2393 * extensions are ignored. 2394 * 2395 * @return true on success 2396 */ 2397 2398 bool rawScienceExpInsertFits( 2399 psDB *dbh, ///< Database handle 2400 const psFits *fits ///< psFits object 2401 ); 2402 2403 /** Selects up to limit from the database and returns them in a binary FITS table 2404 * 2405 * This function assumes an empty psFits object and will create a FITS table 2406 * as the first extension. 2407 * 2408 * See psDBSelectRows() for documentation on the format of where. 2409 * 2410 * @return true on success 2411 */ 2412 2413 bool rawScienceExpSelectRowsFits( 2414 psDB *dbh, ///< Database handle 2415 psFits *fits, ///< psFits object 2416 const psMetadata *where, ///< Row match criteria 2417 unsigned long long limit ///< Maximum number of elements to return 2418 ); 2419 2420 /** Convert a rawScienceExpRow into an equivalent psMetadata 2421 * 2422 * @return A psMetadata pointer or NULL on error 2423 */ 2424 2425 psMetadata *rawScienceExpMetadataFromObject( 2426 const rawScienceExpRow *object ///< fooRow to convert into a psMetadata 2427 ); 2428 2429 /** Convert a psMetadata into an equivalent fooRow 2430 * 2431 * @return A rawScienceExpRow pointer or NULL on error 2432 */ 2433 2434 rawScienceExpRow *rawScienceExpObjectFromMetadata( 2435 psMetadata *md ///< psMetadata to convert into a fooRow 2436 ); 2437 /** Selects up to limit rows from the database and returns as rawScienceExpRow objects in a psArray 2438 * 2439 * See psDBSelectRows() for documentation on the format of where. 2440 * 2441 * @return A psArray pointer or NULL on error 2442 */ 2443 2444 psArray *rawScienceExpSelectRowObjects( 2445 psDB *dbh, ///< Database handle 2446 const psMetadata *where, ///< Row match criteria 2447 unsigned long long limit ///< Maximum number of elements to return 2448 ); 2449 /** Deletes a row from the database coresponding to an rawScienceExp 2450 * 2451 * Note that a 'where' search psMetadata is constructed from each object and 2452 * used to find rows to delete. 2453 * 2454 * @return A The number of rows removed or a negative value on error 2455 */ 2456 2457 bool rawScienceExpDeleteObject( 2458 psDB *dbh, ///< Database handle 2459 const rawScienceExpRow *object ///< Object to delete 2460 ); 2461 /** Deletes up to limit rows from the database and returns the number of rows actually deleted. 2462 * 2463 * Note that a 'where' search psMetadata is constructed from each object and 2464 * used to find rows to delete. 2465 * 2466 * @return A The number of rows removed or a negative value on error 2467 */ 2468 2469 long long rawScienceExpDeleteRowObjects( 2470 psDB *dbh, ///< Database handle 2471 const psArray *objects, ///< Array of objects to delete 2472 unsigned long long limit ///< Maximum number of elements to delete 2473 ); 2474 /** Formats and prints an array of rawScienceExpRow objects 2475 * 2476 * When mdcf is set the formated output is in psMetadataConfig 2477 * format, otherwise it is in a simple tabular format. 2478 * 2479 * @return true on success 2480 */ 2481 2482 bool rawScienceExpPrintObjects( 2483 FILE *stream, ///< a stream 2484 psArray *objects, ///< An array of rawScienceExpRow objects 2485 bool mdcf ///< format as mdconfig or simple 2486 ); 2487 /** Formats and prints an rawScienceExpRow object 2488 * 2489 * When mdcf is set the formated output is in psMetadataConfig 2490 * format, otherwise it is in a simple tabular format. 2491 * 2492 * @return true on success 2493 */ 2494 2495 bool rawScienceExpPrintObject( 2496 FILE *stream, ///< a stream 2497 rawScienceExpRow *object, ///< an rawScienceExpRow object 2245 rawExpRow *object, ///< an rawExpRow object 2498 2246 bool mdcf ///< format as mdconfig or simple 2499 2247 ); … … 2523 2271 char *object; 2524 2272 psTime* dateobs; 2273 psS16 fault; 2525 2274 } rawImfileRow; 2526 2275 … … 2549 2298 psF64 posang, 2550 2299 const char *object, 2551 psTime* dateobs 2300 psTime* dateobs, 2301 psS16 fault 2552 2302 ); 2553 2303 … … 2597 2347 psF64 posang, 2598 2348 const char *object, 2599 psTime* dateobs 2349 psTime* dateobs, 2350 psS16 fault 2600 2351 ); 2601 2352 -
trunk/ippdb/tests/alloc.c
r11030 r11045 244 244 newExpRow *object; 245 245 246 object = newExpRowAlloc("a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", -32 , -16);246 object = newExpRowAlloc("a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", -32 ); 247 247 248 248 if (!object) { … … 277 277 exit(EXIT_FAILURE); 278 278 } 279 psFree(object);280 exit(EXIT_FAILURE);281 }282 279 283 280 psFree(object); … … 287 284 newImfileRow *object; 288 285 289 object = newImfileRowAlloc("a string", "a string", "a string", "a string" , -16);286 object = newImfileRowAlloc("a string", "a string", "a string", "a string" ); 290 287 291 288 if (!object) { … … 309 306 exit(EXIT_FAILURE); 310 307 } 311 psFree(object); 312 exit(EXIT_FAILURE); 313 } 314 315 psFree(object); 316 } 317 318 { 319 rawDetrendExpRow *object; 320 321 object = rawDetrendExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z" ); 308 309 psFree(object); 310 } 311 312 { 313 rawExpRow *object; 314 315 object = rawExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z", -16 ); 322 316 323 317 if (!object) { … … 400 394 exit(EXIT_FAILURE); 401 395 } 402 403 psFree(object); 404 } 405 406 { 407 rawScienceExpRow *object; 408 409 object = rawScienceExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z" ); 410 411 if (!object) { 412 exit(EXIT_FAILURE); 413 } 414 415 if (strncmp(object->exp_tag, "a string", MAX_STRING_LENGTH)) { 416 psFree(object); 417 exit(EXIT_FAILURE); 418 } 419 if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) { 420 psFree(object); 421 exit(EXIT_FAILURE); 422 } 423 if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) { 396 psFree(object); 397 exit(EXIT_FAILURE); 398 } 399 400 psFree(object); 401 } 402 403 { 404 rawImfileRow *object; 405 406 object = rawImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z", -16 ); 407 408 if (!object) { 409 exit(EXIT_FAILURE); 410 } 411 412 if (strncmp(object->exp_tag, "a string", MAX_STRING_LENGTH)) { 413 psFree(object); 414 exit(EXIT_FAILURE); 415 } 416 if (strncmp(object->class, "a string", MAX_STRING_LENGTH)) { 417 psFree(object); 418 exit(EXIT_FAILURE); 419 } 420 if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) { 421 psFree(object); 422 exit(EXIT_FAILURE); 423 } 424 if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) { 424 425 psFree(object); 425 426 exit(EXIT_FAILURE); … … 429 430 exit(EXIT_FAILURE); 430 431 } 431 if (!object->imfiles == -32) {432 psFree(object);433 exit(EXIT_FAILURE);434 }435 432 if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) { 436 433 psFree(object); … … 485 482 exit(EXIT_FAILURE); 486 483 } 487 psFree(object);488 exit(EXIT_FAILURE);489 }490 491 psFree(object);492 }493 494 {495 rawImfileRow *object;496 497 object = rawImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z" );498 499 if (!object) {500 exit(EXIT_FAILURE);501 }502 503 if (strncmp(object->exp_tag, "a string", MAX_STRING_LENGTH)) {504 psFree(object);505 exit(EXIT_FAILURE);506 }507 if (strncmp(object->class, "a string", MAX_STRING_LENGTH)) {508 psFree(object);509 exit(EXIT_FAILURE);510 }511 if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {512 psFree(object);513 exit(EXIT_FAILURE);514 }515 if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {516 psFree(object);517 exit(EXIT_FAILURE);518 }519 if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {520 psFree(object);521 exit(EXIT_FAILURE);522 }523 if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {524 psFree(object);525 exit(EXIT_FAILURE);526 }527 if (!object->airmass == 32.32) {528 psFree(object);529 exit(EXIT_FAILURE);530 }531 if (!object->ra == 64.64) {532 psFree(object);533 exit(EXIT_FAILURE);534 }535 if (!object->decl == 64.64) {536 psFree(object);537 exit(EXIT_FAILURE);538 }539 if (!object->exp_time == 32.32) {540 psFree(object);541 exit(EXIT_FAILURE);542 }543 if (!object->bg == 64.64) {544 psFree(object);545 exit(EXIT_FAILURE);546 }547 if (!object->bg_stdev == 64.64) {548 psFree(object);549 exit(EXIT_FAILURE);550 }551 if (!object->bg_mean_stdev == 64.64) {552 psFree(object);553 exit(EXIT_FAILURE);554 }555 if (!object->alt == 64.64) {556 psFree(object);557 exit(EXIT_FAILURE);558 }559 if (!object->az == 64.64) {560 psFree(object);561 exit(EXIT_FAILURE);562 }563 if (!object->ccd_temp == 32.32) {564 psFree(object);565 exit(EXIT_FAILURE);566 }567 if (!object->posang == 64.64) {568 psFree(object);569 exit(EXIT_FAILURE);570 }571 if (strncmp(object->object, "a string", MAX_STRING_LENGTH)) {572 484 psFree(object); 573 485 exit(EXIT_FAILURE); -
trunk/ippdb/tests/createtable.c
r10753 r11045 148 148 } 149 149 150 if(!rawDetrendExpCreateTable(dbh)) { 151 exit(EXIT_FAILURE); 152 } 153 154 psDBCleanup(dbh); 155 } 156 157 { 158 psDB *dbh; 159 160 dbh = psDBInit("localhost", "test", NULL, "test"); 161 if (!dbh) { 162 exit(EXIT_FAILURE); 163 } 164 165 if(!rawScienceExpCreateTable(dbh)) { 150 if(!rawExpCreateTable(dbh)) { 166 151 exit(EXIT_FAILURE); 167 152 } -
trunk/ippdb/tests/dbcleanup.c
r10753 r11045 20 20 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS newExp"); 21 21 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS newImfile"); 22 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS rawDetrendExp"); 23 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS rawScienceExp"); 22 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS rawExp"); 24 23 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS rawImfile"); 25 24 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS p1PendingExp"); -
trunk/ippdb/tests/dbsetup.c
r10753 r11045 40 40 newImfileCreateTable(dbh); 41 41 42 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS rawDetrendExp"); 43 rawDetrendExpCreateTable(dbh); 44 45 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS rawScienceExp"); 46 rawScienceExpCreateTable(dbh); 42 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS rawExp"); 43 rawExpCreateTable(dbh); 47 44 48 45 p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS rawImfile"); -
trunk/ippdb/tests/droptable.c
r10753 r11045 148 148 } 149 149 150 if (!rawDetrendExpDropTable(dbh)) { 151 exit(EXIT_FAILURE); 152 } 153 154 psDBCleanup(dbh); 155 } 156 157 { 158 psDB *dbh; 159 160 dbh = psDBInit("localhost", "test", NULL, "test"); 161 if (!dbh) { 162 exit(EXIT_FAILURE); 163 } 164 165 if (!rawScienceExpDropTable(dbh)) { 150 if (!rawExpDropTable(dbh)) { 166 151 exit(EXIT_FAILURE); 167 152 } -
trunk/ippdb/tests/insert.c
r11030 r11045 118 118 } 119 119 120 if (!newExpInsert(dbh, "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", -32, -16)) { 121 exit(EXIT_FAILURE); 122 } 123 124 psDBCleanup(dbh); 125 } 126 127 { 128 psDB *dbh; 129 130 dbh = psDBInit("localhost", "test", NULL, "test"); 131 if (!dbh) { 132 exit(EXIT_FAILURE); 133 } 134 135 if (!newImfileInsert(dbh, "a string", "a string", "a string", "a string", -16)) { 136 exit(EXIT_FAILURE); 137 } 138 139 psDBCleanup(dbh); 140 } 141 142 { 143 psDB *dbh; 144 145 dbh = psDBInit("localhost", "test", NULL, "test"); 146 if (!dbh) { 147 exit(EXIT_FAILURE); 148 } 149 150 if (!rawDetrendExpInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z")) { 151 exit(EXIT_FAILURE); 152 } 153 154 psDBCleanup(dbh); 155 } 156 157 { 158 psDB *dbh; 159 160 dbh = psDBInit("localhost", "test", NULL, "test"); 161 if (!dbh) { 162 exit(EXIT_FAILURE); 163 } 164 165 if (!rawScienceExpInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z")) { 166 exit(EXIT_FAILURE); 167 } 168 169 psDBCleanup(dbh); 170 } 171 172 { 173 psDB *dbh; 174 175 dbh = psDBInit("localhost", "test", NULL, "test"); 176 if (!dbh) { 177 exit(EXIT_FAILURE); 178 } 179 180 if (!rawImfileInsert(dbh, "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z")) { 120 if (!newExpInsert(dbh, "a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", -32)) { 121 exit(EXIT_FAILURE); 122 } 123 124 psDBCleanup(dbh); 125 } 126 127 { 128 psDB *dbh; 129 130 dbh = psDBInit("localhost", "test", NULL, "test"); 131 if (!dbh) { 132 exit(EXIT_FAILURE); 133 } 134 135 if (!newImfileInsert(dbh, "a string", "a string", "a string", "a string")) { 136 exit(EXIT_FAILURE); 137 } 138 139 psDBCleanup(dbh); 140 } 141 142 { 143 psDB *dbh; 144 145 dbh = psDBInit("localhost", "test", NULL, "test"); 146 if (!dbh) { 147 exit(EXIT_FAILURE); 148 } 149 150 if (!rawExpInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z", -16)) { 151 exit(EXIT_FAILURE); 152 } 153 154 psDBCleanup(dbh); 155 } 156 157 { 158 psDB *dbh; 159 160 dbh = psDBInit("localhost", "test", NULL, "test"); 161 if (!dbh) { 162 exit(EXIT_FAILURE); 163 } 164 165 if (!rawImfileInsert(dbh, "a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z", -16)) { 181 166 exit(EXIT_FAILURE); 182 167 } -
trunk/ippdb/tests/insertfits.c
r10753 r11045 258 258 } 259 259 260 if (!rawDetrendExpInsertFits(dbh, fits)) { 261 exit(EXIT_FAILURE); 262 } 263 264 if (!psFitsClose(fits)) { 265 exit(EXIT_FAILURE); 266 } 267 268 psDBCleanup(dbh); 269 } 270 271 { 272 psDB *dbh; 273 psFits *fits; 274 275 dbh = psDBInit("localhost", "test", NULL, "test"); 276 if (!dbh) { 277 exit(EXIT_FAILURE); 278 } 279 280 // open a temp 281 fits = psFitsOpen(TMP_FILENAME, "r"); 282 if (!fits) { 283 exit(EXIT_FAILURE); 284 } 285 286 if (!rawScienceExpInsertFits(dbh, fits)) { 260 if (!rawExpInsertFits(dbh, fits)) { 287 261 exit(EXIT_FAILURE); 288 262 } -
trunk/ippdb/tests/insertobject.c
r11030 r11045 168 168 } 169 169 170 object = newExpRowAlloc("a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", -32 , -16);170 object = newExpRowAlloc("a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", -32); 171 171 if (!object) { 172 172 exit(EXIT_FAILURE); … … 190 190 } 191 191 192 object = newImfileRowAlloc("a string", "a string", "a string", "a string" , -16);192 object = newImfileRowAlloc("a string", "a string", "a string", "a string"); 193 193 if (!object) { 194 194 exit(EXIT_FAILURE); … … 205 205 { 206 206 psDB *dbh; 207 rawDetrendExpRow *object; 208 209 dbh = psDBInit("localhost", "test", NULL, "test"); 210 if (!dbh) { 211 exit(EXIT_FAILURE); 212 } 213 214 object = rawDetrendExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z"); 215 if (!object) { 216 exit(EXIT_FAILURE); 217 } 218 219 if (!rawDetrendExpInsertObject(dbh, object)) { 220 exit(EXIT_FAILURE); 221 } 222 223 psFree(object); 224 psDBCleanup(dbh); 225 } 226 227 { 228 psDB *dbh; 229 rawScienceExpRow *object; 230 231 dbh = psDBInit("localhost", "test", NULL, "test"); 232 if (!dbh) { 233 exit(EXIT_FAILURE); 234 } 235 236 object = rawScienceExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z"); 237 if (!object) { 238 exit(EXIT_FAILURE); 239 } 240 241 if (!rawScienceExpInsertObject(dbh, object)) { 207 rawExpRow *object; 208 209 dbh = psDBInit("localhost", "test", NULL, "test"); 210 if (!dbh) { 211 exit(EXIT_FAILURE); 212 } 213 214 object = rawExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z", -16); 215 if (!object) { 216 exit(EXIT_FAILURE); 217 } 218 219 if (!rawExpInsertObject(dbh, object)) { 242 220 exit(EXIT_FAILURE); 243 221 } … … 256 234 } 257 235 258 object = rawImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z" );236 object = rawImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z", -16); 259 237 if (!object) { 260 238 exit(EXIT_FAILURE); -
trunk/ippdb/tests/metadatafromobject.c
r11030 r11045 302 302 bool status; 303 303 304 object = newExpRowAlloc("a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", -32 , -16);304 object = newExpRowAlloc("a string", "a string", "a string", "a string", "0001-01-01T00:00:00Z", "a string", -32); 305 305 if (!object) { 306 306 exit(EXIT_FAILURE); … … 341 341 exit(EXIT_FAILURE); 342 342 } 343 psFree(md);344 exit(EXIT_FAILURE);345 }346 343 347 344 psFree(md); … … 353 350 bool status; 354 351 355 object = newImfileRowAlloc("a string", "a string", "a string", "a string" , -16);352 object = newImfileRowAlloc("a string", "a string", "a string", "a string"); 356 353 if (!object) { 357 354 exit(EXIT_FAILURE); … … 381 378 exit(EXIT_FAILURE); 382 379 } 383 psFree(md); 384 exit(EXIT_FAILURE); 385 } 386 387 psFree(md); 388 } 389 390 { 391 psMetadata *md; 392 rawDetrendExpRow *object; 393 bool status; 394 395 object = rawDetrendExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z"); 396 if (!object) { 397 exit(EXIT_FAILURE); 398 } 399 400 md = rawDetrendExpMetadataFromObject(object); 380 381 psFree(md); 382 } 383 384 { 385 psMetadata *md; 386 rawExpRow *object; 387 bool status; 388 389 object = rawExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z", -16); 390 if (!object) { 391 exit(EXIT_FAILURE); 392 } 393 394 md = rawExpMetadataFromObject(object); 401 395 if (!md) { 402 396 exit(EXIT_FAILURE); … … 480 474 exit(EXIT_FAILURE); 481 475 } 482 483 psFree(md); 484 } 485 486 { 487 psMetadata *md; 488 rawScienceExpRow *object; 489 bool status; 490 491 object = rawScienceExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z"); 492 if (!object) { 493 exit(EXIT_FAILURE); 494 } 495 496 md = rawScienceExpMetadataFromObject(object); 497 if (!md) { 498 exit(EXIT_FAILURE); 499 } 500 501 psFree(object); 502 503 if (strncmp(psMetadataLookupPtr(&status, md, "exp_tag"), "a string", MAX_STRING_LENGTH)) { 504 psFree(md); 505 exit(EXIT_FAILURE); 506 } 507 if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) { 508 psFree(md); 509 exit(EXIT_FAILURE); 510 } 511 if (strncmp(psMetadataLookupPtr(&status, md, "telescope"), "a string", MAX_STRING_LENGTH)) { 476 psFree(md); 477 exit(EXIT_FAILURE); 478 } 479 480 psFree(md); 481 } 482 483 { 484 psMetadata *md; 485 rawImfileRow *object; 486 bool status; 487 488 object = rawImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z", -16); 489 if (!object) { 490 exit(EXIT_FAILURE); 491 } 492 493 md = rawImfileMetadataFromObject(object); 494 if (!md) { 495 exit(EXIT_FAILURE); 496 } 497 498 psFree(object); 499 500 if (strncmp(psMetadataLookupPtr(&status, md, "exp_tag"), "a string", MAX_STRING_LENGTH)) { 501 psFree(md); 502 exit(EXIT_FAILURE); 503 } 504 if (strncmp(psMetadataLookupPtr(&status, md, "class"), "a string", MAX_STRING_LENGTH)) { 505 psFree(md); 506 exit(EXIT_FAILURE); 507 } 508 if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) { 509 psFree(md); 510 exit(EXIT_FAILURE); 511 } 512 if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) { 512 513 psFree(md); 513 514 exit(EXIT_FAILURE); … … 517 518 exit(EXIT_FAILURE); 518 519 } 519 if (!psMetadataLookupS32(&status, md, "imfiles") == -32) {520 psFree(md);521 exit(EXIT_FAILURE);522 }523 520 if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) { 524 521 psFree(md); … … 573 570 exit(EXIT_FAILURE); 574 571 } 575 psFree(md);576 exit(EXIT_FAILURE);577 }578 579 psFree(md);580 }581 582 {583 psMetadata *md;584 rawImfileRow *object;585 bool status;586 587 object = rawImfileRowAlloc("a string", "a string", "a string", "a string", "a string", "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64, "a string", "0001-01-01T00:00:00Z");588 if (!object) {589 exit(EXIT_FAILURE);590 }591 592 md = rawImfileMetadataFromObject(object);593 if (!md) {594 exit(EXIT_FAILURE);595 }596 597 psFree(object);598 599 if (strncmp(psMetadataLookupPtr(&status, md, "exp_tag"), "a string", MAX_STRING_LENGTH)) {600 psFree(md);601 exit(EXIT_FAILURE);602 }603 if (strncmp(psMetadataLookupPtr(&status, md, "class"), "a string", MAX_STRING_LENGTH)) {604 psFree(md);605 exit(EXIT_FAILURE);606 }607 if (strncmp(psMetadataLookupPtr(&status, md, "class_id"), "a string", MAX_STRING_LENGTH)) {608 psFree(md);609 exit(EXIT_FAILURE);610 }611 if (strncmp(psMetadataLookupPtr(&status, md, "uri"), "a string", MAX_STRING_LENGTH)) {612 psFree(md);613 exit(EXIT_FAILURE);614 }615 if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {616 psFree(md);617 exit(EXIT_FAILURE);618 }619 if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {620 psFree(md);621 exit(EXIT_FAILURE);622 }623 if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {624 psFree(md);625 exit(EXIT_FAILURE);626 }627 if (!psMetadataLookupF64(&status, md, "ra") == 64.64) {628 psFree(md);629 exit(EXIT_FAILURE);630 }631 if (!psMetadataLookupF64(&status, md, "decl") == 64.64) {632 psFree(md);633 exit(EXIT_FAILURE);634 }635 if (!psMetadataLookupF32(&status, md, "exp_time") == 32.32) {636 psFree(md);637 exit(EXIT_FAILURE);638 }639 if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {640 psFree(md);641 exit(EXIT_FAILURE);642 }643 if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {644 psFree(md);645 exit(EXIT_FAILURE);646 }647 if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {648 psFree(md);649 exit(EXIT_FAILURE);650 }651 if (!psMetadataLookupF64(&status, md, "alt") == 64.64) {652 psFree(md);653 exit(EXIT_FAILURE);654 }655 if (!psMetadataLookupF64(&status, md, "az") == 64.64) {656 psFree(md);657 exit(EXIT_FAILURE);658 }659 if (!psMetadataLookupF32(&status, md, "ccd_temp") == 32.32) {660 psFree(md);661 exit(EXIT_FAILURE);662 }663 if (!psMetadataLookupF64(&status, md, "posang") == 64.64) {664 psFree(md);665 exit(EXIT_FAILURE);666 }667 if (strncmp(psMetadataLookupPtr(&status, md, "object"), "a string", MAX_STRING_LENGTH)) {668 572 psFree(md); 669 573 exit(EXIT_FAILURE); -
trunk/ippdb/tests/objectfrommetadata.c
r11030 r11045 450 450 exit(EXIT_FAILURE); 451 451 } 452 psFree(md);453 exit(EXIT_FAILURE);454 }455 452 456 453 object = newExpObjectFromMetadata(md); … … 489 486 exit(EXIT_FAILURE); 490 487 } 491 psFree(object);492 exit(EXIT_FAILURE);493 }494 488 495 489 psFree(object); … … 517 511 exit(EXIT_FAILURE); 518 512 } 519 psFree(md);520 exit(EXIT_FAILURE);521 }522 513 523 514 object = newImfileObjectFromMetadata(md); … … 545 536 exit(EXIT_FAILURE); 546 537 } 547 psFree(object); 548 exit(EXIT_FAILURE); 549 } 550 551 psFree(object); 552 } 553 554 { 555 psMetadata *md; 556 rawDetrendExpRow *object; 538 539 psFree(object); 540 } 541 542 { 543 psMetadata *md; 544 rawExpRow *object; 557 545 558 546 md = psMetadataAlloc(); … … 632 620 exit(EXIT_FAILURE); 633 621 } 634 635 object = rawDetrendExpObjectFromMetadata(md); 622 psFree(md); 623 exit(EXIT_FAILURE); 624 } 625 626 object = rawExpObjectFromMetadata(md); 636 627 if (!object) { 637 628 psFree(md); … … 716 707 exit(EXIT_FAILURE); 717 708 } 718 719 psFree(object); 720 } 721 722 { 723 psMetadata *md; 724 rawScienceExpRow *object; 709 psFree(object); 710 exit(EXIT_FAILURE); 711 } 712 713 psFree(object); 714 } 715 716 { 717 psMetadata *md; 718 rawImfileRow *object; 725 719 726 720 md = psMetadataAlloc(); … … 729 723 exit(EXIT_FAILURE); 730 724 } 731 if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "a string")) { 732 psFree(md); 733 exit(EXIT_FAILURE); 734 } 735 if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "a string")) { 725 if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, NULL, "a string")) { 726 psFree(md); 727 exit(EXIT_FAILURE); 728 } 729 if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) { 730 psFree(md); 731 exit(EXIT_FAILURE); 732 } 733 if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) { 736 734 psFree(md); 737 735 exit(EXIT_FAILURE); … … 741 739 exit(EXIT_FAILURE); 742 740 } 743 if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, -32)) {744 psFree(md);745 exit(EXIT_FAILURE);746 }747 741 if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "a string")) { 748 742 psFree(md); … … 800 794 exit(EXIT_FAILURE); 801 795 } 802 803 object = rawScienceExpObjectFromMetadata(md); 796 psFree(md); 797 exit(EXIT_FAILURE); 798 } 799 800 object = rawImfileObjectFromMetadata(md); 804 801 if (!object) { 805 802 psFree(md); … … 813 810 exit(EXIT_FAILURE); 814 811 } 815 if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) { 816 psFree(object); 817 exit(EXIT_FAILURE); 818 } 819 if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) { 812 if (strncmp(object->class, "a string", MAX_STRING_LENGTH)) { 813 psFree(object); 814 exit(EXIT_FAILURE); 815 } 816 if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) { 817 psFree(object); 818 exit(EXIT_FAILURE); 819 } 820 if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) { 820 821 psFree(object); 821 822 exit(EXIT_FAILURE); … … 825 826 exit(EXIT_FAILURE); 826 827 } 827 if (!object->imfiles == -32) {828 psFree(object);829 exit(EXIT_FAILURE);830 }831 828 if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) { 832 829 psFree(object); … … 881 878 exit(EXIT_FAILURE); 882 879 } 883 psFree(object);884 exit(EXIT_FAILURE);885 }886 887 psFree(object);888 }889 890 {891 psMetadata *md;892 rawImfileRow *object;893 894 md = psMetadataAlloc();895 if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_tag", 0, NULL, "a string")) {896 psFree(md);897 exit(EXIT_FAILURE);898 }899 if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, NULL, "a string")) {900 psFree(md);901 exit(EXIT_FAILURE);902 }903 if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "a string")) {904 psFree(md);905 exit(EXIT_FAILURE);906 }907 if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "a string")) {908 psFree(md);909 exit(EXIT_FAILURE);910 }911 if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "a string")) {912 psFree(md);913 exit(EXIT_FAILURE);914 }915 if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "a string")) {916 psFree(md);917 exit(EXIT_FAILURE);918 }919 if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 32.32)) {920 psFree(md);921 exit(EXIT_FAILURE);922 }923 if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 64.64)) {924 psFree(md);925 exit(EXIT_FAILURE);926 }927 if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 64.64)) {928 psFree(md);929 exit(EXIT_FAILURE);930 }931 if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 32.32)) {932 psFree(md);933 exit(EXIT_FAILURE);934 }935 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 64.64)) {936 psFree(md);937 exit(EXIT_FAILURE);938 }939 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 64.64)) {940 psFree(md);941 exit(EXIT_FAILURE);942 }943 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 64.64)) {944 psFree(md);945 exit(EXIT_FAILURE);946 }947 if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, 64.64)) {948 psFree(md);949 exit(EXIT_FAILURE);950 }951 if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, 64.64)) {952 psFree(md);953 exit(EXIT_FAILURE);954 }955 if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, 32.32)) {956 psFree(md);957 exit(EXIT_FAILURE);958 }959 if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, 64.64)) {960 psFree(md);961 exit(EXIT_FAILURE);962 }963 if (!psMetadataAddStr(md, PS_LIST_TAIL, "object", 0, NULL, "a string")) {964 psFree(md);965 exit(EXIT_FAILURE);966 }967 psFree(md);968 exit(EXIT_FAILURE);969 }970 971 object = rawImfileObjectFromMetadata(md);972 if (!object) {973 psFree(md);974 exit(EXIT_FAILURE);975 }976 977 psFree(md);978 979 if (strncmp(object->exp_tag, "a string", MAX_STRING_LENGTH)) {980 psFree(object);981 exit(EXIT_FAILURE);982 }983 if (strncmp(object->class, "a string", MAX_STRING_LENGTH)) {984 psFree(object);985 exit(EXIT_FAILURE);986 }987 if (strncmp(object->class_id, "a string", MAX_STRING_LENGTH)) {988 psFree(object);989 exit(EXIT_FAILURE);990 }991 if (strncmp(object->uri, "a string", MAX_STRING_LENGTH)) {992 psFree(object);993 exit(EXIT_FAILURE);994 }995 if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {996 psFree(object);997 exit(EXIT_FAILURE);998 }999 if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {1000 psFree(object);1001 exit(EXIT_FAILURE);1002 }1003 if (!object->airmass == 32.32) {1004 psFree(object);1005 exit(EXIT_FAILURE);1006 }1007 if (!object->ra == 64.64) {1008 psFree(object);1009 exit(EXIT_FAILURE);1010 }1011 if (!object->decl == 64.64) {1012 psFree(object);1013 exit(EXIT_FAILURE);1014 }1015 if (!object->exp_time == 32.32) {1016 psFree(object);1017 exit(EXIT_FAILURE);1018 }1019 if (!object->bg == 64.64) {1020 psFree(object);1021 exit(EXIT_FAILURE);1022 }1023 if (!object->bg_stdev == 64.64) {1024 psFree(object);1025 exit(EXIT_FAILURE);1026 }1027 if (!object->bg_mean_stdev == 64.64) {1028 psFree(object);1029 exit(EXIT_FAILURE);1030 }1031 if (!object->alt == 64.64) {1032 psFree(object);1033 exit(EXIT_FAILURE);1034 }1035 if (!object->az == 64.64) {1036 psFree(object);1037 exit(EXIT_FAILURE);1038 }1039 if (!object->ccd_temp == 32.32) {1040 psFree(object);1041 exit(EXIT_FAILURE);1042 }1043 if (!object->posang == 64.64) {1044 psFree(object);1045 exit(EXIT_FAILURE);1046 }1047 if (strncmp(object->object, "a string", MAX_STRING_LENGTH)) {1048 880 psFree(object); 1049 881 exit(EXIT_FAILURE); -
trunk/ippdb/tests/selectrowsfits.c
r10753 r11045 219 219 } 220 220 221 if (!rawDetrendExpSelectRowsFits(dbh, fits, NULL, 1)) { 222 exit(EXIT_FAILURE); 223 } 224 225 psFree(fits); 226 psDBCleanup(dbh); 227 } 228 229 { 230 psDB *dbh; 231 psFits *fits; 232 233 dbh = psDBInit("localhost", "test", NULL, "test"); 234 if (!dbh) { 235 exit(EXIT_FAILURE); 236 } 237 238 fits = psFitsOpen(TMP_FILENAME, "w"); 239 if (!fits) { 240 exit(EXIT_FAILURE); 241 } 242 243 if (!rawScienceExpSelectRowsFits(dbh, fits, NULL, 1)) { 221 if (!rawExpSelectRowsFits(dbh, fits, NULL, 1)) { 244 222 exit(EXIT_FAILURE); 245 223 }
Note:
See TracChangeset
for help on using the changeset viewer.
