Changeset 9957 for trunk/ippTools/src/dettool.c
- Timestamp:
- Nov 13, 2006, 12:36:32 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/ippTools/src/dettool.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/dettool.c
r9947 r9957 968 968 } 969 969 970 // create a metadata to restrict detInputExp's be in in the specified range 971 972 psMetadata *time_filter = psMetadataAlloc(); 973 974 { 975 psString timeStr = psMetadataLookupStr(&status, config->args, "-filter_exp_begin"); 976 if (!status) { 977 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -filter_exp_begin"); 978 return false; 979 } 980 // pass through NULL as this is an optional field 981 if (timeStr) { 982 psTime *time = psTimeFromISO(timeStr, PS_TIME_UTC); 983 if (!psMetadataAddTime(time_filter, PS_LIST_TAIL, "dateobs", 0, "==", time)) { 984 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs"); 985 psFree(time); 986 psFree(time_filter); 987 return false; 988 } 989 psFree(time); 990 } 991 } 992 993 { 994 psString timeStr = psMetadataLookupStr(&status, config->args, "-filter_exp_end"); 995 if (!status) { 996 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -filter_exp_end"); 997 return false; 998 } 999 // pass through NULL as this is an optional field 1000 if (timeStr) { 1001 psTime *time = psTimeFromISO(timeStr, PS_TIME_UTC); 1002 if (!psMetadataAddTime(time_filter, PS_LIST_TAIL, "dateobs", 0, "==", time)) { 1003 psError(PS_ERR_UNKNOWN, false, "failed to add item dateobs"); 1004 psFree(time); 1005 psFree(time_filter); 1006 return false; 1007 } 1008 psFree(time); 1009 } 1010 } 1011 1012 970 1013 // start a transaction so we don't end up with orphaned det_ids 971 1014 if (!psDBTransaction(config->dbh)) { 972 1015 psError(PS_ERR_UNKNOWN, false, "database error"); 1016 psFree(time_filter); 973 1017 psFree(detRun); 974 1018 return false; … … 981 1025 psError(PS_ERR_UNKNOWN, false, "database error"); 982 1026 } 1027 psFree(time_filter); 983 1028 psFree(detRun); 984 1029 return false; … … 989 1034 long newDet_id = psDBLastInsertID(config->dbh); 990 1035 991 char *query =1036 psString query = psStringCopy( 992 1037 "INSERT INTO detInputExp" 993 1038 " SELECT" … … 997 1042 " detResidExp.accept" 998 1043 " FROM detResidExp" 999 " WHERE det_id = %d"; 1044 " JOIN rawDetrendExp" 1045 " USING(exp_tag)" 1046 " WHERE det_id = %d" 1047 ); 1048 1049 if (time_filter->list->n) { 1050 psString whereClause = psDBGenerateWhereConditionSQL(time_filter, "rawDetrendExp"); 1051 psStringAppend(&query, " AND %s", whereClause); 1052 psFree(whereClause); 1053 } 1054 psFree(time_filter); 1000 1055 1001 1056 if (!p_psDBRunQuery(config->dbh, query, (psS32)newDet_id, (psS32)atoi(det_id))) { 1002 1057 psError(PS_ERR_UNKNOWN, false, "database error"); 1003 return false; 1004 } 1058 psFree(query); 1059 return false; 1060 } 1061 psFree(query); 1005 1062 1006 1063 // point of no return for det_id creation
Note:
See TracChangeset
for help on using the changeset viewer.
