Changeset 9705 for trunk/ippdb/src/ippdb.c
- Timestamp:
- Oct 20, 2006, 5:33:47 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/ippdb/src/ippdb.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippdb/src/ippdb.c
r9684 r9705 6599 6599 static void detRunRowFree(detRunRow *object); 6600 6600 6601 detRunRow *detRunRowAlloc(psS32 det_id, psS32 iteration, const char *det_type, const char *state )6601 detRunRow *detRunRowAlloc(psS32 det_id, psS32 iteration, const char *det_type, const char *state, const char *exp_type, const char *filter, psF32 airmass, psF32 exp_time, psF32 ccd_temp, psF64 posang, const char *object, psTime* registered, psTime* use_begin, psTime* use_end) 6602 6602 { 6603 6603 detRunRow *_object; … … 6610 6610 _object->det_type = psStringCopy(det_type); 6611 6611 _object->state = psStringCopy(state); 6612 _object->exp_type = psStringCopy(exp_type); 6613 _object->filter = psStringCopy(filter); 6614 _object->airmass = airmass; 6615 _object->exp_time = exp_time; 6616 _object->ccd_temp = ccd_temp; 6617 _object->posang = posang; 6618 _object->object = psStringCopy(object); 6619 _object->registered = psTimeCopy(registered); 6620 _object->use_begin = psTimeCopy(use_begin); 6621 _object->use_end = psTimeCopy(use_end); 6612 6622 6613 6623 return _object; … … 6618 6628 psFree(object->det_type); 6619 6629 psFree(object->state); 6630 psFree(object->exp_type); 6631 psFree(object->filter); 6632 psFree(object->object); 6633 psFree(object->registered); 6634 psFree(object->use_begin); 6635 psFree(object->use_end); 6620 6636 } 6621 6637 … … 6643 6659 return false; 6644 6660 } 6661 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, "64")) { 6662 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type"); 6663 psFree(md); 6664 return false; 6665 } 6666 if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, "255")) { 6667 psError(PS_ERR_UNKNOWN, false, "failed to add item filter"); 6668 psFree(md); 6669 return false; 6670 } 6671 if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, 0.0)) { 6672 psError(PS_ERR_UNKNOWN, false, "failed to add item airmass"); 6673 psFree(md); 6674 return false; 6675 } 6676 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_time", PS_DATA_F32, NULL, 0.0)) { 6677 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time"); 6678 psFree(md); 6679 return false; 6680 } 6681 if (!psMetadataAdd(md, PS_LIST_TAIL, "ccd_temp", PS_DATA_F32, NULL, 0.0)) { 6682 psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp"); 6683 psFree(md); 6684 return false; 6685 } 6686 if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, 0.0)) { 6687 psError(PS_ERR_UNKNOWN, false, "failed to add item posang"); 6688 psFree(md); 6689 return false; 6690 } 6691 if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, "64")) { 6692 psError(PS_ERR_UNKNOWN, false, "failed to add item object"); 6693 psFree(md); 6694 return false; 6695 } 6696 psTime* registered = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_TAI); 6697 if (!psMetadataAdd(md, PS_LIST_TAIL, "registered", PS_DATA_TIME, NULL, registered)) { 6698 psFree(registered); 6699 psError(PS_ERR_UNKNOWN, false, "failed to add item registered"); 6700 psFree(md); 6701 return false; 6702 } 6703 psFree(registered); 6704 psTime* use_begin = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_TAI); 6705 if (!psMetadataAdd(md, PS_LIST_TAIL, "use_begin", PS_DATA_TIME, NULL, use_begin)) { 6706 psFree(use_begin); 6707 psError(PS_ERR_UNKNOWN, false, "failed to add item use_begin"); 6708 psFree(md); 6709 return false; 6710 } 6711 psFree(use_begin); 6712 psTime* use_end = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_TAI); 6713 if (!psMetadataAdd(md, PS_LIST_TAIL, "use_end", PS_DATA_TIME, NULL, use_end)) { 6714 psFree(use_end); 6715 psError(PS_ERR_UNKNOWN, false, "failed to add item use_end"); 6716 psFree(md); 6717 return false; 6718 } 6719 psFree(use_end); 6645 6720 6646 6721 bool status = psDBCreateTable(dbh, DETRUN_TABLE_NAME, md); … … 6656 6731 } 6657 6732 6658 bool detRunInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *det_type, const char *state )6733 bool detRunInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *det_type, const char *state, const char *exp_type, const char *filter, psF32 airmass, psF32 exp_time, psF32 ccd_temp, psF64 posang, const char *object, psTime* registered, psTime* use_begin, psTime* use_end) 6659 6734 { 6660 6735 psMetadata *md = psMetadataAlloc(); … … 6676 6751 if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, state)) { 6677 6752 psError(PS_ERR_UNKNOWN, false, "failed to add item state"); 6753 psFree(md); 6754 return false; 6755 } 6756 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, exp_type)) { 6757 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type"); 6758 psFree(md); 6759 return false; 6760 } 6761 if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, filter)) { 6762 psError(PS_ERR_UNKNOWN, false, "failed to add item filter"); 6763 psFree(md); 6764 return false; 6765 } 6766 if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, airmass)) { 6767 psError(PS_ERR_UNKNOWN, false, "failed to add item airmass"); 6768 psFree(md); 6769 return false; 6770 } 6771 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_time", PS_DATA_F32, NULL, exp_time)) { 6772 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time"); 6773 psFree(md); 6774 return false; 6775 } 6776 if (!psMetadataAdd(md, PS_LIST_TAIL, "ccd_temp", PS_DATA_F32, NULL, ccd_temp)) { 6777 psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp"); 6778 psFree(md); 6779 return false; 6780 } 6781 if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, posang)) { 6782 psError(PS_ERR_UNKNOWN, false, "failed to add item posang"); 6783 psFree(md); 6784 return false; 6785 } 6786 if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, object)) { 6787 psError(PS_ERR_UNKNOWN, false, "failed to add item object"); 6788 psFree(md); 6789 return false; 6790 } 6791 if (!psMetadataAdd(md, PS_LIST_TAIL, "registered", PS_DATA_TIME, NULL, registered)) { 6792 psError(PS_ERR_UNKNOWN, false, "failed to add item registered"); 6793 psFree(md); 6794 return false; 6795 } 6796 if (!psMetadataAdd(md, PS_LIST_TAIL, "use_begin", PS_DATA_TIME, NULL, use_begin)) { 6797 psError(PS_ERR_UNKNOWN, false, "failed to add item use_begin"); 6798 psFree(md); 6799 return false; 6800 } 6801 if (!psMetadataAdd(md, PS_LIST_TAIL, "use_end", PS_DATA_TIME, NULL, use_end)) { 6802 psError(PS_ERR_UNKNOWN, false, "failed to add item use_end"); 6678 6803 psFree(md); 6679 6804 return false; … … 6702 6827 bool detRunInsertObject(psDB *dbh, detRunRow *object) 6703 6828 { 6704 return detRunInsert(dbh, object->det_id, object->iteration, object->det_type, object->state );6829 return detRunInsert(dbh, object->det_id, object->iteration, object->det_type, object->state, object->exp_type, object->filter, object->airmass, object->exp_time, object->ccd_temp, object->posang, object->object, object->registered, object->use_begin, object->use_end); 6705 6830 } 6706 6831 … … 6795 6920 return false; 6796 6921 } 6922 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, object->exp_type)) { 6923 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type"); 6924 psFree(md); 6925 return false; 6926 } 6927 if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, object->filter)) { 6928 psError(PS_ERR_UNKNOWN, false, "failed to add item filter"); 6929 psFree(md); 6930 return false; 6931 } 6932 if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, object->airmass)) { 6933 psError(PS_ERR_UNKNOWN, false, "failed to add item airmass"); 6934 psFree(md); 6935 return false; 6936 } 6937 if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_time", PS_DATA_F32, NULL, object->exp_time)) { 6938 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time"); 6939 psFree(md); 6940 return false; 6941 } 6942 if (!psMetadataAdd(md, PS_LIST_TAIL, "ccd_temp", PS_DATA_F32, NULL, object->ccd_temp)) { 6943 psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp"); 6944 psFree(md); 6945 return false; 6946 } 6947 if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, object->posang)) { 6948 psError(PS_ERR_UNKNOWN, false, "failed to add item posang"); 6949 psFree(md); 6950 return false; 6951 } 6952 if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, object->object)) { 6953 psError(PS_ERR_UNKNOWN, false, "failed to add item object"); 6954 psFree(md); 6955 return false; 6956 } 6957 if (!psMetadataAdd(md, PS_LIST_TAIL, "registered", PS_DATA_TIME, NULL, object->registered)) { 6958 psError(PS_ERR_UNKNOWN, false, "failed to add item registered"); 6959 psFree(md); 6960 return false; 6961 } 6962 if (!psMetadataAdd(md, PS_LIST_TAIL, "use_begin", PS_DATA_TIME, NULL, object->use_begin)) { 6963 psError(PS_ERR_UNKNOWN, false, "failed to add item use_begin"); 6964 psFree(md); 6965 return false; 6966 } 6967 if (!psMetadataAdd(md, PS_LIST_TAIL, "use_end", PS_DATA_TIME, NULL, object->use_end)) { 6968 psError(PS_ERR_UNKNOWN, false, "failed to add item use_end"); 6969 psFree(md); 6970 return false; 6971 } 6797 6972 6798 6973 … … 6824 6999 return false; 6825 7000 } 6826 6827 return detRunRowAlloc(det_id, iteration, det_type, state); 7001 char* exp_type = psMetadataLookupPtr(&status, md, "exp_type"); 7002 if (!status) { 7003 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type"); 7004 return false; 7005 } 7006 char* filter = psMetadataLookupPtr(&status, md, "filter"); 7007 if (!status) { 7008 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter"); 7009 return false; 7010 } 7011 psF32 airmass = psMetadataLookupF32(&status, md, "airmass"); 7012 if (!status) { 7013 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass"); 7014 return false; 7015 } 7016 psF32 exp_time = psMetadataLookupF32(&status, md, "exp_time"); 7017 if (!status) { 7018 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time"); 7019 return false; 7020 } 7021 psF32 ccd_temp = psMetadataLookupF32(&status, md, "ccd_temp"); 7022 if (!status) { 7023 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp"); 7024 return false; 7025 } 7026 psF64 posang = psMetadataLookupF64(&status, md, "posang"); 7027 if (!status) { 7028 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang"); 7029 return false; 7030 } 7031 char* object = psMetadataLookupPtr(&status, md, "object"); 7032 if (!status) { 7033 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item object"); 7034 return false; 7035 } 7036 psTime* registered = psMetadataLookupPtr(&status, md, "registered"); 7037 if (!status) { 7038 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item registered"); 7039 return false; 7040 } 7041 psTime* use_begin = psMetadataLookupPtr(&status, md, "use_begin"); 7042 if (!status) { 7043 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item use_begin"); 7044 return false; 7045 } 7046 psTime* use_end = psMetadataLookupPtr(&status, md, "use_end"); 7047 if (!status) { 7048 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item use_end"); 7049 return false; 7050 } 7051 7052 return detRunRowAlloc(det_id, iteration, det_type, state, exp_type, filter, airmass, exp_time, ccd_temp, posang, object, registered, use_begin, use_end); 6828 7053 } 6829 7054 psArray *detRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
Note:
See TracChangeset
for help on using the changeset viewer.
