Changeset 8228 for trunk/ippdb/src/ippdb.c
- Timestamp:
- Aug 7, 2006, 5:07:29 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/ippdb/src/ippdb.c (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippdb/src/ippdb.c
r8222 r8228 8010 8010 static void rawImfileRowFree(rawImfileRow *object); 8011 8011 8012 rawImfileRow *rawImfileRowAlloc(const char *exp_id, const char *class, const char *class_id, const char *uri )8012 rawImfileRow *rawImfileRowAlloc(const char *exp_id, const char *class, const char *class_id, const char *uri, 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) 8013 8013 { 8014 8014 rawImfileRow *object; … … 8021 8021 object->class_id = psStringCopy(class_id); 8022 8022 object->uri = psStringCopy(uri); 8023 object->filter = psStringCopy(filter); 8024 object->airmass = airmass; 8025 object->ra = ra; 8026 object->decl = decl; 8027 object->exp_time = exp_time; 8028 object->bg = bg; 8029 object->bg_stdev = bg_stdev; 8030 object->bg_mean_stdev = bg_mean_stdev; 8031 object->alt = alt; 8032 object->az = az; 8033 object->ccd_temp = ccd_temp; 8034 object->posang = posang; 8023 8035 8024 8036 return object; … … 8031 8043 psFree(object->class_id); 8032 8044 psFree(object->uri); 8045 psFree(object->filter); 8033 8046 } 8034 8047 … … 8064 8077 return false; 8065 8078 } 8079 if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) { 8080 psError(PS_ERR_UNKNOWN, false, "failed to add item filter"); 8081 psFree(md); 8082 return false; 8083 } 8084 if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) { 8085 psError(PS_ERR_UNKNOWN, false, "failed to add item airmass"); 8086 psFree(md); 8087 return false; 8088 } 8089 if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) { 8090 psError(PS_ERR_UNKNOWN, false, "failed to add item ra"); 8091 psFree(md); 8092 return false; 8093 } 8094 if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) { 8095 psError(PS_ERR_UNKNOWN, false, "failed to add item decl"); 8096 psFree(md); 8097 return false; 8098 } 8099 if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) { 8100 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time"); 8101 psFree(md); 8102 return false; 8103 } 8104 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) { 8105 psError(PS_ERR_UNKNOWN, false, "failed to add item bg"); 8106 psFree(md); 8107 return false; 8108 } 8109 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) { 8110 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev"); 8111 psFree(md); 8112 return false; 8113 } 8114 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) { 8115 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev"); 8116 psFree(md); 8117 return false; 8118 } 8119 if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, 0.0)) { 8120 psError(PS_ERR_UNKNOWN, false, "failed to add item alt"); 8121 psFree(md); 8122 return false; 8123 } 8124 if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, 0.0)) { 8125 psError(PS_ERR_UNKNOWN, false, "failed to add item az"); 8126 psFree(md); 8127 return false; 8128 } 8129 if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, 0.0)) { 8130 psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp"); 8131 psFree(md); 8132 return false; 8133 } 8134 if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, 0.0)) { 8135 psError(PS_ERR_UNKNOWN, false, "failed to add item posang"); 8136 psFree(md); 8137 return false; 8138 } 8066 8139 8067 8140 status = psDBCreateTable(dbh, RAWIMFILE_TABLE_NAME, md); … … 8077 8150 } 8078 8151 8079 bool rawImfileInsert(psDB * dbh, const char *exp_id, const char *class, const char *class_id, const char *uri )8152 bool rawImfileInsert(psDB * dbh, const char *exp_id, const char *class, const char *class_id, const char *uri, 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) 8080 8153 { 8081 8154 psMetadata *md; … … 8100 8173 if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, uri)) { 8101 8174 psError(PS_ERR_UNKNOWN, false, "failed to add item uri"); 8175 psFree(md); 8176 return false; 8177 } 8178 if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) { 8179 psError(PS_ERR_UNKNOWN, false, "failed to add item filter"); 8180 psFree(md); 8181 return false; 8182 } 8183 if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) { 8184 psError(PS_ERR_UNKNOWN, false, "failed to add item airmass"); 8185 psFree(md); 8186 return false; 8187 } 8188 if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) { 8189 psError(PS_ERR_UNKNOWN, false, "failed to add item ra"); 8190 psFree(md); 8191 return false; 8192 } 8193 if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) { 8194 psError(PS_ERR_UNKNOWN, false, "failed to add item decl"); 8195 psFree(md); 8196 return false; 8197 } 8198 if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) { 8199 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time"); 8200 psFree(md); 8201 return false; 8202 } 8203 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) { 8204 psError(PS_ERR_UNKNOWN, false, "failed to add item bg"); 8205 psFree(md); 8206 return false; 8207 } 8208 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) { 8209 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev"); 8210 psFree(md); 8211 return false; 8212 } 8213 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) { 8214 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev"); 8215 psFree(md); 8216 return false; 8217 } 8218 if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, alt)) { 8219 psError(PS_ERR_UNKNOWN, false, "failed to add item alt"); 8220 psFree(md); 8221 return false; 8222 } 8223 if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, az)) { 8224 psError(PS_ERR_UNKNOWN, false, "failed to add item az"); 8225 psFree(md); 8226 return false; 8227 } 8228 if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, ccd_temp)) { 8229 psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp"); 8230 psFree(md); 8231 return false; 8232 } 8233 if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, posang)) { 8234 psError(PS_ERR_UNKNOWN, false, "failed to add item posang"); 8102 8235 psFree(md); 8103 8236 return false; … … 8124 8257 return deleted; 8125 8258 } 8126 bool rawImfilePop(psDB *dbh, char **exp_id, char **class, char **class_id, char **uri )8259 bool rawImfilePop(psDB *dbh, char **exp_id, char **class, char **class_id, char **uri, 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) 8127 8260 { 8128 8261 psArray *rowSet; … … 8192 8325 return false; 8193 8326 } 8327 *filter = psMetadataLookupPtr(&status, row, "filter"); 8328 if (!status) { 8329 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter"); 8330 psFree(row); 8331 return false; 8332 } 8333 *airmass = psMetadataLookupF32(&status, row, "airmass"); 8334 if (!status) { 8335 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass"); 8336 psFree(row); 8337 return false; 8338 } 8339 *ra = psMetadataLookupF64(&status, row, "ra"); 8340 if (!status) { 8341 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra"); 8342 psFree(row); 8343 return false; 8344 } 8345 *decl = psMetadataLookupF64(&status, row, "decl"); 8346 if (!status) { 8347 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl"); 8348 psFree(row); 8349 return false; 8350 } 8351 *exp_time = psMetadataLookupF32(&status, row, "exp_time"); 8352 if (!status) { 8353 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time"); 8354 psFree(row); 8355 return false; 8356 } 8357 *bg = psMetadataLookupF64(&status, row, "bg"); 8358 if (!status) { 8359 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg"); 8360 psFree(row); 8361 return false; 8362 } 8363 *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev"); 8364 if (!status) { 8365 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev"); 8366 psFree(row); 8367 return false; 8368 } 8369 *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev"); 8370 if (!status) { 8371 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev"); 8372 psFree(row); 8373 return false; 8374 } 8375 *alt = psMetadataLookupF64(&status, row, "alt"); 8376 if (!status) { 8377 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt"); 8378 psFree(row); 8379 return false; 8380 } 8381 *az = psMetadataLookupF64(&status, row, "az"); 8382 if (!status) { 8383 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az"); 8384 psFree(row); 8385 return false; 8386 } 8387 *ccd_temp = psMetadataLookupF32(&status, row, "ccd_temp"); 8388 if (!status) { 8389 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp"); 8390 psFree(row); 8391 return false; 8392 } 8393 *posang = psMetadataLookupF64(&status, row, "posang"); 8394 if (!status) { 8395 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang"); 8396 psFree(row); 8397 return false; 8398 } 8194 8399 8195 8400 psFree(row); … … 8200 8405 bool rawImfileInsertObject(psDB *dbh, rawImfileRow *object) 8201 8406 { 8202 return rawImfileInsert(dbh, object->exp_id, object->class, object->class_id, object->uri );8407 return rawImfileInsert(dbh, object->exp_id, object->class, object->class_id, object->uri, 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); 8203 8408 } 8204 8409 … … 8209 8414 char class_id[256]; 8210 8415 char uri[256]; 8211 8212 if (!rawImfilePop(dbh, (char **)&exp_id, (char **)&class, (char **)&class_id, (char **)&uri)) { 8416 char filter[256]; 8417 psF32 airmass; 8418 psF64 ra; 8419 psF64 decl; 8420 psF32 exp_time; 8421 psF64 bg; 8422 psF64 bg_stdev; 8423 psF64 bg_mean_stdev; 8424 psF64 alt; 8425 psF64 az; 8426 psF32 ccd_temp; 8427 psF64 posang; 8428 8429 if (!rawImfilePop(dbh, (char **)&exp_id, (char **)&class, (char **)&class_id, (char **)&uri, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) { 8213 8430 psError(PS_ERR_UNKNOWN, false, "failed to pop a database row"); 8214 8431 return NULL; 8215 8432 } 8216 8433 8217 return rawImfileRowAlloc(exp_id, class, class_id, uri );8434 return rawImfileRowAlloc(exp_id, class, class_id, uri, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang); 8218 8435 } 8219 8436 … … 8334 8551 return NULL; 8335 8552 } 8553 if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) { 8554 psError(PS_ERR_UNKNOWN, false, "failed to add item filter"); 8555 psFree(md); 8556 return NULL; 8557 } 8558 if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) { 8559 psError(PS_ERR_UNKNOWN, false, "failed to add item airmass"); 8560 psFree(md); 8561 return NULL; 8562 } 8563 if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) { 8564 psError(PS_ERR_UNKNOWN, false, "failed to add item ra"); 8565 psFree(md); 8566 return NULL; 8567 } 8568 if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) { 8569 psError(PS_ERR_UNKNOWN, false, "failed to add item decl"); 8570 psFree(md); 8571 return NULL; 8572 } 8573 if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) { 8574 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time"); 8575 psFree(md); 8576 return NULL; 8577 } 8578 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) { 8579 psError(PS_ERR_UNKNOWN, false, "failed to add item bg"); 8580 psFree(md); 8581 return NULL; 8582 } 8583 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) { 8584 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev"); 8585 psFree(md); 8586 return NULL; 8587 } 8588 if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) { 8589 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev"); 8590 psFree(md); 8591 return NULL; 8592 } 8593 if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, object->alt)) { 8594 psError(PS_ERR_UNKNOWN, false, "failed to add item alt"); 8595 psFree(md); 8596 return NULL; 8597 } 8598 if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, object->az)) { 8599 psError(PS_ERR_UNKNOWN, false, "failed to add item az"); 8600 psFree(md); 8601 return NULL; 8602 } 8603 if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, object->ccd_temp)) { 8604 psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp"); 8605 psFree(md); 8606 return NULL; 8607 } 8608 if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, object->posang)) { 8609 psError(PS_ERR_UNKNOWN, false, "failed to add item posang"); 8610 psFree(md); 8611 return NULL; 8612 } 8336 8613 8337 8614 return md; … … 8345 8622 char *class_id; 8346 8623 char *uri; 8624 char *filter; 8625 psF32 airmass; 8626 psF64 ra; 8627 psF64 decl; 8628 psF32 exp_time; 8629 psF64 bg; 8630 psF64 bg_stdev; 8631 psF64 bg_mean_stdev; 8632 psF64 alt; 8633 psF64 az; 8634 psF32 ccd_temp; 8635 psF64 posang; 8347 8636 8348 8637 exp_id = psMetadataLookupPtr(&status, md, "exp_id"); … … 8366 8655 return false; 8367 8656 } 8368 8369 return rawImfileRowAlloc(exp_id, class, class_id, uri); 8657 filter = psMetadataLookupPtr(&status, md, "filter"); 8658 if (!status) { 8659 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter"); 8660 return false; 8661 } 8662 airmass = psMetadataLookupF32(&status, md, "airmass"); 8663 if (!status) { 8664 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass"); 8665 return false; 8666 } 8667 ra = psMetadataLookupF64(&status, md, "ra"); 8668 if (!status) { 8669 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra"); 8670 return false; 8671 } 8672 decl = psMetadataLookupF64(&status, md, "decl"); 8673 if (!status) { 8674 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl"); 8675 return false; 8676 } 8677 exp_time = psMetadataLookupF32(&status, md, "exp_time"); 8678 if (!status) { 8679 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time"); 8680 return false; 8681 } 8682 bg = psMetadataLookupF64(&status, md, "bg"); 8683 if (!status) { 8684 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg"); 8685 return false; 8686 } 8687 bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev"); 8688 if (!status) { 8689 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev"); 8690 return false; 8691 } 8692 bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev"); 8693 if (!status) { 8694 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev"); 8695 return false; 8696 } 8697 alt = psMetadataLookupF64(&status, md, "alt"); 8698 if (!status) { 8699 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt"); 8700 return false; 8701 } 8702 az = psMetadataLookupF64(&status, md, "az"); 8703 if (!status) { 8704 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az"); 8705 return false; 8706 } 8707 ccd_temp = psMetadataLookupF32(&status, md, "ccd_temp"); 8708 if (!status) { 8709 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp"); 8710 return false; 8711 } 8712 posang = psMetadataLookupF64(&status, md, "posang"); 8713 if (!status) { 8714 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang"); 8715 return false; 8716 } 8717 8718 return rawImfileRowAlloc(exp_id, class, class_id, uri, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang); 8370 8719 } 8371 8720 psArray *rawImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
Note:
See TracChangeset
for help on using the changeset viewer.
