Changeset 28322
- Timestamp:
- Jun 14, 2010, 5:28:01 PM (16 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 2 edited
-
share/pubtool_definerun.sql (modified) (2 diffs)
-
src/pubtool.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/share/pubtool_definerun.sql
r28319 r28322 9 9 client_id, 10 10 diff_id AS stage_id, 11 label AS src_label11 diffRun.label AS src_label 12 12 FROM publishClient 13 13 JOIN diffRun … … 28 28 client_id, 29 29 cam_id AS stage_id, 30 label AS src_label30 camRun.label AS src_label 31 31 FROM publishClient 32 32 JOIN camRun -
trunk/ippTools/src/pubtool.c
r28320 r28322 151 151 PS_ASSERT_PTR_NON_NULL(config, false); 152 152 153 psMetadata *where = psMetadataAlloc(); // WHERE conditions 153 psMetadata *diffWhere = psMetadataAlloc(); // WHERE conditions for diffs 154 psMetadata *camWhere = psMetadataAlloc(); // WHERE conditions for cams 154 155 155 156 // required 156 157 157 158 // optional 158 PXOPT_COPY_S64(config->args, where, "-client_id", "client_id", "=="); 159 pxAddLabelSearchArgs(config, where, "-label", "label", "=="); 160 pxAddLabelSearchArgs(config, where, "-data_group", "data_group", "=="); 161 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "rawExp.dateobs", ">="); 162 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<="); 163 PXOPT_COPY_STR(config->args, where, "-filter", "rawExp.filter", "LIKE"); 164 PXOPT_COPY_STR(config->args, where, "-obs_mode", "rawExp.obs_mode", "LIKE"); 159 PXOPT_COPY_S64(config->args, diffWhere, "-client_id", "client_id", "=="); 160 pxAddLabelSearchArgs(config, diffWhere, "-label", "diffRun.label", "=="); 161 pxAddLabelSearchArgs(config, diffWhere, "-data_group", "diffRun.data_group", "LIKE"); 162 PXOPT_COPY_TIME(config->args, diffWhere, "-dateobs_begin", "rawExp.dateobs", ">="); 163 PXOPT_COPY_TIME(config->args, diffWhere, "-dateobs_end", "rawExp.dateobs", "<="); 164 PXOPT_COPY_STR(config->args, diffWhere, "-filter", "rawExp.filter", "LIKE"); 165 PXOPT_COPY_STR(config->args, diffWhere, "-obs_mode", "rawExp.obs_mode", "LIKE"); 166 167 PXOPT_COPY_S64(config->args, camWhere, "-client_id", "client_id", "=="); 168 pxAddLabelSearchArgs(config, camWhere, "-label", "camRun.label", "=="); 169 pxAddLabelSearchArgs(config, camWhere, "-data_group", "camRun.data_group", "LIKE"); 170 PXOPT_COPY_TIME(config->args, camWhere, "-dateobs_begin", "rawExp.dateobs", ">="); 171 PXOPT_COPY_TIME(config->args, camWhere, "-dateobs_end", "rawExp.dateobs", "<="); 172 PXOPT_COPY_STR(config->args, camWhere, "-filter", "rawExp.filter", "LIKE"); 173 PXOPT_COPY_STR(config->args, camWhere, "-obs_mode", "rawExp.obs_mode", "LIKE"); 165 174 166 175 PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false); … … 172 181 if (!query) { 173 182 psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement"); 174 psFree(where); 183 psFree(diffWhere); 184 psFree(camWhere); 175 185 return false; 176 186 } … … 188 198 if (!psDBTransaction(config->dbh)) { 189 199 psError(PS_ERR_UNKNOWN, false, "Database error"); 190 psFree(where); 191 return false; 192 } 193 194 psString whereClause = psStringCopy(""); // Additional constraints to add to query 195 if (psListLength(where->list)) { 196 psString clause = psDBGenerateWhereConditionSQL(where, NULL); 197 psStringAppend(&whereClause, "\n AND %s", clause); 200 psFree(diffWhere); 201 psFree(camWhere); 202 return false; 203 } 204 205 psString whereDiff = psStringCopy(""); // Additional constraints to add to query 206 if (psListLength(diffWhere->list)) { 207 psString clause = psDBGenerateWhereConditionSQL(diffWhere, NULL); 208 psStringAppend(&whereDiff, "\n AND %s", clause); 198 209 psFree(clause); 199 210 } 200 psFree(where); 201 202 if (!p_psDBRunQueryF(config->dbh, query, whereClause, whereClause)) { 211 psFree(diffWhere); 212 213 psString whereCam = psStringCopy(""); // Additional constraints to add to query 214 if (psListLength(camWhere->list)) { 215 psString clause = psDBGenerateWhereConditionSQL(camWhere, NULL); 216 psStringAppend(&whereCam, "\n AND %s", clause); 217 psFree(clause); 218 } 219 psFree(camWhere); 220 221 fprintf(stderr, query, whereDiff, whereCam); 222 223 if (!p_psDBRunQueryF(config->dbh, query, whereDiff, whereCam)) { 203 224 psError(PS_ERR_UNKNOWN, false, "Database error"); 204 225 psFree(query); 205 psFree(whereClause); 226 psFree(whereDiff); 227 psFree(whereCam); 206 228 if (!psDBRollback(config->dbh)) { 207 229 psError(PS_ERR_UNKNOWN, false, "Database error"); … … 210 232 } 211 233 psFree(query); 212 psFree(whereClause); 234 psFree(whereDiff); 235 psFree(whereCam); 213 236 214 237 psArray *output = p_psDBFetchResult(config->dbh); // Output of SELECT statement
Note:
See TracChangeset
for help on using the changeset viewer.
