Changeset 41295 for branches/eam_branches/ippTools.20200226/src/stacktool.c
- Timestamp:
- Feb 27, 2020, 12:35:07 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ippTools.20200226/src/stacktool.c
r41294 r41295 2149 2149 unsigned int nFail; 2150 2150 2151 int numImportTables = 2;2152 2153 char tables[2] [80] = {"stackInputSkyfile", "stackSumSkyfile"};2154 2155 2151 PS_ASSERT_PTR_NON_NULL(config, NULL); 2156 2152 2157 2153 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 2154 PXOPT_LOOKUP_S64(ext_camera_id, config->args, "-ext_camera_id", true, false); 2155 2156 // optionally let the user change the filter: 2157 PXOPT_LOOKUP_STR(new_filter, config->args, "-set_filter", false, false); 2158 2158 2159 2159 psMetadata *input = psMetadataConfigRead (NULL, &nFail, infile, false); 2160 2160 2161 #ifdef notdef 2162 fprintf (stderr, "---- input ----\n"); 2163 psMetadataPrint (stderr, input, 1); 2164 #endif 2165 2166 // XXX do we need to do this? 2167 if (!pxCheckImportVersion(config, input)) { 2168 psError(PS_ERR_UNKNOWN, false, "pxCheckImportVersion failed"); 2169 return false; 2170 } 2171 psMetadataItem *item = psMetadataLookup (input, "stackRun"); 2172 psAssert (item, "entry not in input?"); 2173 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 2174 2175 psMetadataItem *entry = psListGet (item->data.list, 0); 2161 // XXX for TEST: psMetadataPrint (stderr, input, 1); 2162 2163 psMetadataItem *itemRun = psMetadataLookup (input, "stackRun"); 2164 psAssert (itemRun, "entry not in input?"); 2165 psAssert (itemRun->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 2166 2167 psMetadataItem *entry = psListGet (itemRun->data.list, 0); 2176 2168 assert (entry); 2177 2169 assert (entry->type == PS_DATA_METADATA); 2170 2171 // grab the data for the stackRun & format as stackRunRow: 2178 2172 stackRunRow *stackRun = stackRunObjectFromMetadata (entry->data.md); 2179 2173 … … 2186 2180 2187 2181 // update filter as well.. 2188 // stackRun->filter = new_filter; 2189 2182 if (new_filter) { 2183 stackRun->filter = psMemIncrRefCounter(new_filter); 2184 } 2185 2186 // start the transaction so we can ensure stackRun, stackSumSkyfile, stackExternalStack table entries are consistent 2190 2187 if (!psDBTransaction(config->dbh)) { 2191 2188 psError(PS_ERR_UNKNOWN, false, "database error"); 2192 psFree(where);2193 2189 return false; 2194 2190 } 2195 2191 2192 // now insert the new stackRun object: 2196 2193 stackRunInsertObject (config->dbh, stackRun); 2197 2194 … … 2199 2196 psS64 stack_id = psDBLastInsertID(config->dbh); 2200 2197 2201 if (!psDBCommit(config->dbh)) { 2202 psError(PS_ERR_UNKNOWN, false, "database error"); 2203 psFree(list); 2198 // add an entry in the stackExternalStack table: 2199 psString query = pxDataGet("stacktool_insertexternal_link.sql"); 2200 if (!query) { 2201 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 2204 2202 return false; 2205 2203 } 2206 2204 2207 psMetadataItem *item = psMetadataLookup (input, "stackSumSkyfile"); 2208 2209 psAssert (item, "entry not in input?"); 2210 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 2211 2212 for (int i = 0; i < item->data.list->n; i++) { 2213 entry = psListGet (item->data.list, i); 2205 if (!p_psDBRunQueryF(config->dbh, query, stack_id, ext_stack_id, ext_camera_id)) { 2206 psError(PS_ERR_UNKNOWN,false, "database error"); 2207 return(NULL); 2208 } 2209 2210 // now insert the stackSumSkyfile data 2211 psMetadataItem *itemSum = psMetadataLookup (input, "stackSumSkyfile"); 2212 2213 psAssert (itemSum, "entry not in input?"); 2214 psAssert (itemSum->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 2215 2216 for (int i = 0; i < itemSum->data.list->n; i++) { 2217 entry = psListGet (itemSum->data.list, i); 2214 2218 assert (entry); 2215 2219 assert (entry->type == PS_DATA_METADATA); … … 2222 2226 // fprintf (stdout, "---- row %d ----\n", i); 2223 2227 // psMetadataPrint (stderr, entry->data.md, 1); 2228 } 2229 2230 if (!psDBCommit(config->dbh)) { 2231 psError(PS_ERR_UNKNOWN, false, "database error"); 2232 return false; 2224 2233 } 2225 2234 … … 2243 2252 if (!psDBTransaction(config->dbh)) { 2244 2253 psError(PS_ERR_UNKNOWN, false, "database error"); 2245 psFree(where);2246 2254 return false; 2247 2255 } … … 2249 2257 if (!p_psDBRunQuery(config->dbh, query)) { 2250 2258 psError(PS_ERR_UNKNOWN,false, "database error"); 2251 psFree(select);2252 2259 return(NULL); 2253 2260 } … … 2258 2265 if (!psDBCommit(config->dbh)) { 2259 2266 psError(PS_ERR_UNKNOWN, false, "database error"); 2260 psFree(list);2261 2267 return false; 2262 2268 }
Note:
See TracChangeset
for help on using the changeset viewer.
