Changeset 14451 for trunk/ippdb/src
- Timestamp:
- Aug 8, 2007, 12:28:29 PM (19 years ago)
- Location:
- trunk/ippdb/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippdb/src/ippdb.c
r14252 r14451 20 20 /* 21 21 * 22 * This file was generated by glueforge 1.0 122 * This file was generated by glueforge 1.03 23 23 * 24 24 * Do NOT directly edit this file. … … 69 69 #define DETRESIDEXP_TABLE_NAME "detResidExp" 70 70 #define DETRUNSUMMARY_TABLE_NAME "detRunSummary" 71 #define DETREGISTEREDIMFILE_TABLE_NAME "detRegisteredImfile" 71 72 #define MAX_STRING_LENGTH 1024 72 73 … … 5965 5966 return false; 5966 5967 } 5967 if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm", PS_DATA_F32, NULL, 0.0)) {5968 if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm", PS_DATA_F32, "# replace this with fwhm_major", 0.0)) { 5968 5969 psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm"); 5969 5970 psFree(md); 5970 5971 return false; 5971 5972 } 5972 if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_range", PS_DATA_F32, NULL, 0.0)) {5973 if (!psMetadataAdd(md, PS_LIST_TAIL, "fwhm_range", PS_DATA_F32, "# replace this with fwhm_minor", 0.0)) { 5973 5974 psError(PS_ERR_UNKNOWN, false, "failed to add item fwhm_range"); 5974 5975 psFree(md); … … 12064 12065 return false; 12065 12066 } 12066 if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, "Key ", 0)) {12067 if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, "Key INDEX(det_id, iteration)", 0)) { 12067 12068 psError(PS_ERR_UNKNOWN, false, "failed to add item iteration"); 12068 12069 psFree(md); … … 16416 16417 static void detResidImfileRowFree(detResidImfileRow *object); 16417 16418 16418 detResidImfileRow *detResidImfileRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 b in_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)16419 detResidImfileRow *detResidImfileRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault) 16419 16420 { 16420 16421 detResidImfileRow *_object; … … 16432 16433 _object->bg_stdev = bg_stdev; 16433 16434 _object->bg_mean_stdev = bg_mean_stdev; 16435 _object->bg_skewness = bg_skewness; 16436 _object->bg_kurtosis = bg_kurtosis; 16434 16437 _object->bin_stdev = bin_stdev; 16435 16438 _object->fringe_0 = fringe_0; 16436 16439 _object->fringe_1 = fringe_1; 16437 16440 _object->fringe_2 = fringe_2; 16441 _object->fringe_resid_0 = fringe_resid_0; 16442 _object->fringe_resid_1 = fringe_resid_1; 16443 _object->fringe_resid_2 = fringe_resid_2; 16438 16444 _object->user_1 = user_1; 16439 16445 _object->user_2 = user_2; … … 16503 16509 return false; 16504 16510 } 16511 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, 0.0)) { 16512 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness"); 16513 psFree(md); 16514 return false; 16515 } 16516 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, 0.0)) { 16517 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis"); 16518 psFree(md); 16519 return false; 16520 } 16505 16521 if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, 0.0)) { 16506 16522 psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev"); … … 16523 16539 return false; 16524 16540 } 16541 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, 0.0)) { 16542 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0"); 16543 psFree(md); 16544 return false; 16545 } 16546 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, 0.0)) { 16547 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1"); 16548 psFree(md); 16549 return false; 16550 } 16551 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, 0.0)) { 16552 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2"); 16553 psFree(md); 16554 return false; 16555 } 16525 16556 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) { 16526 16557 psError(PS_ERR_UNKNOWN, false, "failed to add item user_1"); … … 16571 16602 } 16572 16603 16573 bool detResidImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 b in_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)16604 bool detResidImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault) 16574 16605 { 16575 16606 psMetadata *md = psMetadataAlloc(); … … 16619 16650 return false; 16620 16651 } 16652 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, bg_skewness)) { 16653 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness"); 16654 psFree(md); 16655 return false; 16656 } 16657 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, bg_kurtosis)) { 16658 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis"); 16659 psFree(md); 16660 return false; 16661 } 16621 16662 if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, bin_stdev)) { 16622 16663 psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev"); … … 16636 16677 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, fringe_2)) { 16637 16678 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2"); 16679 psFree(md); 16680 return false; 16681 } 16682 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, fringe_resid_0)) { 16683 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0"); 16684 psFree(md); 16685 return false; 16686 } 16687 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, fringe_resid_1)) { 16688 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1"); 16689 psFree(md); 16690 return false; 16691 } 16692 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, fringe_resid_2)) { 16693 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2"); 16638 16694 psFree(md); 16639 16695 return false; … … 16697 16753 bool detResidImfileInsertObject(psDB *dbh, detResidImfileRow *object) 16698 16754 { 16699 return detResidImfileInsert(dbh, object->det_id, object->iteration, object->exp_id, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->b in_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);16755 return detResidImfileInsert(dbh, object->det_id, object->iteration, object->exp_id, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bg_skewness, object->bg_kurtosis, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->fringe_resid_0, object->fringe_resid_1, object->fringe_resid_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault); 16700 16756 } 16701 16757 … … 16815 16871 return false; 16816 16872 } 16873 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, object->bg_skewness)) { 16874 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness"); 16875 psFree(md); 16876 return false; 16877 } 16878 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, object->bg_kurtosis)) { 16879 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis"); 16880 psFree(md); 16881 return false; 16882 } 16817 16883 if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, object->bin_stdev)) { 16818 16884 psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev"); … … 16835 16901 return false; 16836 16902 } 16903 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, object->fringe_resid_0)) { 16904 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0"); 16905 psFree(md); 16906 return false; 16907 } 16908 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, object->fringe_resid_1)) { 16909 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1"); 16910 psFree(md); 16911 return false; 16912 } 16913 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, object->fringe_resid_2)) { 16914 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2"); 16915 psFree(md); 16916 return false; 16917 } 16837 16918 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) { 16838 16919 psError(PS_ERR_UNKNOWN, false, "failed to add item user_1"); … … 16924 17005 return false; 16925 17006 } 17007 psF64 bg_skewness = psMetadataLookupF64(&status, md, "bg_skewness"); 17008 if (!status) { 17009 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_skewness"); 17010 return false; 17011 } 17012 psF64 bg_kurtosis = psMetadataLookupF64(&status, md, "bg_kurtosis"); 17013 if (!status) { 17014 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_kurtosis"); 17015 return false; 17016 } 16926 17017 psF64 bin_stdev = psMetadataLookupF64(&status, md, "bin_stdev"); 16927 17018 if (!status) { … … 16944 17035 return false; 16945 17036 } 17037 psF64 fringe_resid_0 = psMetadataLookupF64(&status, md, "fringe_resid_0"); 17038 if (!status) { 17039 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_0"); 17040 return false; 17041 } 17042 psF64 fringe_resid_1 = psMetadataLookupF64(&status, md, "fringe_resid_1"); 17043 if (!status) { 17044 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_1"); 17045 return false; 17046 } 17047 psF64 fringe_resid_2 = psMetadataLookupF64(&status, md, "fringe_resid_2"); 17048 if (!status) { 17049 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_2"); 17050 return false; 17051 } 16946 17052 psF64 user_1 = psMetadataLookupF64(&status, md, "user_1"); 16947 17053 if (!status) { … … 16980 17086 } 16981 17087 16982 return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, b in_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, fault);17088 return detResidImfileRowAlloc(det_id, iteration, exp_id, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, bg_skewness, bg_kurtosis, bin_stdev, fringe_0, fringe_1, fringe_2, fringe_resid_0, fringe_resid_1, fringe_resid_2, user_1, user_2, user_3, user_4, user_5, path_base, fault); 16983 17089 } 16984 17090 psArray *detResidImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit) … … 17092 17198 static void detResidExpRowFree(detResidExpRow *object); 17093 17199 17094 detResidExpRow *detResidExpRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 b in_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault)17200 detResidExpRow *detResidExpRowAlloc(psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault) 17095 17201 { 17096 17202 detResidExpRow *_object; … … 17106 17212 _object->bg_stdev = bg_stdev; 17107 17213 _object->bg_mean_stdev = bg_mean_stdev; 17214 _object->bg_skewness = bg_skewness; 17215 _object->bg_kurtosis = bg_kurtosis; 17108 17216 _object->bin_stdev = bin_stdev; 17109 17217 _object->fringe_0 = fringe_0; 17110 17218 _object->fringe_1 = fringe_1; 17111 17219 _object->fringe_2 = fringe_2; 17220 _object->fringe_resid_0 = fringe_resid_0; 17221 _object->fringe_resid_1 = fringe_resid_1; 17222 _object->fringe_resid_2 = fringe_resid_2; 17112 17223 _object->user_1 = user_1; 17113 17224 _object->user_2 = user_2; … … 17166 17277 return false; 17167 17278 } 17279 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, 0.0)) { 17280 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness"); 17281 psFree(md); 17282 return false; 17283 } 17284 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, 0.0)) { 17285 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis"); 17286 psFree(md); 17287 return false; 17288 } 17168 17289 if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, 0.0)) { 17169 17290 psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev"); … … 17186 17307 return false; 17187 17308 } 17309 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, 0.0)) { 17310 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0"); 17311 psFree(md); 17312 return false; 17313 } 17314 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, 0.0)) { 17315 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1"); 17316 psFree(md); 17317 return false; 17318 } 17319 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, 0.0)) { 17320 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2"); 17321 psFree(md); 17322 return false; 17323 } 17188 17324 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) { 17189 17325 psError(PS_ERR_UNKNOWN, false, "failed to add item user_1"); … … 17239 17375 } 17240 17376 17241 bool detResidExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 b in_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault)17377 bool detResidExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, psS64 exp_id, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bg_skewness, psF64 bg_kurtosis, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 fringe_resid_0, psF64 fringe_resid_1, psF64 fringe_resid_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault) 17242 17378 { 17243 17379 psMetadata *md = psMetadataAlloc(); … … 17277 17413 return false; 17278 17414 } 17415 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, bg_skewness)) { 17416 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness"); 17417 psFree(md); 17418 return false; 17419 } 17420 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, bg_kurtosis)) { 17421 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis"); 17422 psFree(md); 17423 return false; 17424 } 17279 17425 if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, bin_stdev)) { 17280 17426 psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev"); … … 17294 17440 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, fringe_2)) { 17295 17441 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2"); 17442 psFree(md); 17443 return false; 17444 } 17445 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, fringe_resid_0)) { 17446 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0"); 17447 psFree(md); 17448 return false; 17449 } 17450 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, fringe_resid_1)) { 17451 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1"); 17452 psFree(md); 17453 return false; 17454 } 17455 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, fringe_resid_2)) { 17456 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2"); 17296 17457 psFree(md); 17297 17458 return false; … … 17360 17521 bool detResidExpInsertObject(psDB *dbh, detResidExpRow *object) 17361 17522 { 17362 return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->b in_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->accept, object->fault);17523 return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bg_skewness, object->bg_kurtosis, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->fringe_resid_0, object->fringe_resid_1, object->fringe_resid_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->accept, object->fault); 17363 17524 } 17364 17525 … … 17468 17629 return false; 17469 17630 } 17631 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_skewness", PS_DATA_F64, NULL, object->bg_skewness)) { 17632 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_skewness"); 17633 psFree(md); 17634 return false; 17635 } 17636 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_kurtosis", PS_DATA_F64, NULL, object->bg_kurtosis)) { 17637 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_kurtosis"); 17638 psFree(md); 17639 return false; 17640 } 17470 17641 if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, object->bin_stdev)) { 17471 17642 psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev"); … … 17488 17659 return false; 17489 17660 } 17661 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_0", PS_DATA_F64, NULL, object->fringe_resid_0)) { 17662 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_0"); 17663 psFree(md); 17664 return false; 17665 } 17666 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_1", PS_DATA_F64, NULL, object->fringe_resid_1)) { 17667 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_1"); 17668 psFree(md); 17669 return false; 17670 } 17671 if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_resid_2", PS_DATA_F64, NULL, object->fringe_resid_2)) { 17672 psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_resid_2"); 17673 psFree(md); 17674 return false; 17675 } 17490 17676 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) { 17491 17677 psError(PS_ERR_UNKNOWN, false, "failed to add item user_1"); … … 17572 17758 return false; 17573 17759 } 17760 psF64 bg_skewness = psMetadataLookupF64(&status, md, "bg_skewness"); 17761 if (!status) { 17762 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_skewness"); 17763 return false; 17764 } 17765 psF64 bg_kurtosis = psMetadataLookupF64(&status, md, "bg_kurtosis"); 17766 if (!status) { 17767 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_kurtosis"); 17768 return false; 17769 } 17574 17770 psF64 bin_stdev = psMetadataLookupF64(&status, md, "bin_stdev"); 17575 17771 if (!status) { … … 17592 17788 return false; 17593 17789 } 17790 psF64 fringe_resid_0 = psMetadataLookupF64(&status, md, "fringe_resid_0"); 17791 if (!status) { 17792 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_0"); 17793 return false; 17794 } 17795 psF64 fringe_resid_1 = psMetadataLookupF64(&status, md, "fringe_resid_1"); 17796 if (!status) { 17797 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_1"); 17798 return false; 17799 } 17800 psF64 fringe_resid_2 = psMetadataLookupF64(&status, md, "fringe_resid_2"); 17801 if (!status) { 17802 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_resid_2"); 17803 return false; 17804 } 17594 17805 psF64 user_1 = psMetadataLookupF64(&status, md, "user_1"); 17595 17806 if (!status) { … … 17633 17844 } 17634 17845 17635 return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, bg, bg_stdev, bg_mean_stdev, b in_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, accept, fault);17846 return detResidExpRowAlloc(det_id, iteration, exp_id, recipe, bg, bg_stdev, bg_mean_stdev, bg_skewness, bg_kurtosis, bin_stdev, fringe_0, fringe_1, fringe_2, fringe_resid_0, fringe_resid_1, fringe_resid_2, user_1, user_2, user_3, user_4, user_5, path_base, accept, fault); 17636 17847 } 17637 17848 psArray *detResidExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit) … … 18142 18353 return true; 18143 18354 } 18355 static void detRegisteredImfileRowFree(detRegisteredImfileRow *object); 18356 18357 detRegisteredImfileRow *detRegisteredImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault) 18358 { 18359 detRegisteredImfileRow *_object; 18360 18361 _object = psAlloc(sizeof(detRegisteredImfileRow)); 18362 psMemSetDeallocator(_object, (psFreeFunc)detRegisteredImfileRowFree); 18363 18364 _object->det_id = det_id; 18365 _object->iteration = iteration; 18366 _object->class_id = psStringCopy(class_id); 18367 _object->uri = psStringCopy(uri); 18368 _object->bg = bg; 18369 _object->bg_stdev = bg_stdev; 18370 _object->bg_mean_stdev = bg_mean_stdev; 18371 _object->user_1 = user_1; 18372 _object->user_2 = user_2; 18373 _object->user_3 = user_3; 18374 _object->user_4 = user_4; 18375 _object->user_5 = user_5; 18376 _object->path_base = psStringCopy(path_base); 18377 _object->fault = fault; 18378 18379 return _object; 18380 } 18381 18382 static void detRegisteredImfileRowFree(detRegisteredImfileRow *object) 18383 { 18384 psFree(object->class_id); 18385 psFree(object->uri); 18386 psFree(object->path_base); 18387 } 18388 18389 bool detRegisteredImfileCreateTable(psDB *dbh) 18390 { 18391 psMetadata *md = psMetadataAlloc(); 18392 if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S64, "Primary Key fkey(det_id, iteration) ref detRun(det_id, iteration)", 0)) { 18393 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id"); 18394 psFree(md); 18395 return false; 18396 } 18397 if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, "Primary Key", 0)) { 18398 psError(PS_ERR_UNKNOWN, false, "failed to add item iteration"); 18399 psFree(md); 18400 return false; 18401 } 18402 if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, "Primary Key", "64")) { 18403 psError(PS_ERR_UNKNOWN, false, "failed to add item class_id"); 18404 psFree(md); 18405 return false; 18406 } 18407 if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, "255")) { 18408 psError(PS_ERR_UNKNOWN, false, "failed to add item uri"); 18409 psFree(md); 18410 return false; 18411 } 18412 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, 0.0)) { 18413 psError(PS_ERR_UNKNOWN, false, "failed to add item bg"); 18414 psFree(md); 18415 return false; 18416 } 18417 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_stdev", PS_DATA_F64, NULL, 0.0)) { 18418 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev"); 18419 psFree(md); 18420 return false; 18421 } 18422 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, 0.0)) { 18423 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev"); 18424 psFree(md); 18425 return false; 18426 } 18427 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) { 18428 psError(PS_ERR_UNKNOWN, false, "failed to add item user_1"); 18429 psFree(md); 18430 return false; 18431 } 18432 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) { 18433 psError(PS_ERR_UNKNOWN, false, "failed to add item user_2"); 18434 psFree(md); 18435 return false; 18436 } 18437 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) { 18438 psError(PS_ERR_UNKNOWN, false, "failed to add item user_3"); 18439 psFree(md); 18440 return false; 18441 } 18442 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) { 18443 psError(PS_ERR_UNKNOWN, false, "failed to add item user_4"); 18444 psFree(md); 18445 return false; 18446 } 18447 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) { 18448 psError(PS_ERR_UNKNOWN, false, "failed to add item user_5"); 18449 psFree(md); 18450 return false; 18451 } 18452 if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) { 18453 psError(PS_ERR_UNKNOWN, false, "failed to add item path_base"); 18454 psFree(md); 18455 return false; 18456 } 18457 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) { 18458 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 18459 psFree(md); 18460 return false; 18461 } 18462 18463 bool status = psDBCreateTable(dbh, DETREGISTEREDIMFILE_TABLE_NAME, md); 18464 18465 psFree(md); 18466 18467 return status; 18468 } 18469 18470 bool detRegisteredImfileDropTable(psDB *dbh) 18471 { 18472 return psDBDropTable(dbh, DETREGISTEREDIMFILE_TABLE_NAME); 18473 } 18474 18475 bool detRegisteredImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault) 18476 { 18477 psMetadata *md = psMetadataAlloc(); 18478 if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S64, NULL, det_id)) { 18479 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id"); 18480 psFree(md); 18481 return false; 18482 } 18483 if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, NULL, iteration)) { 18484 psError(PS_ERR_UNKNOWN, false, "failed to add item iteration"); 18485 psFree(md); 18486 return false; 18487 } 18488 if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, NULL, class_id)) { 18489 psError(PS_ERR_UNKNOWN, false, "failed to add item class_id"); 18490 psFree(md); 18491 return false; 18492 } 18493 if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) { 18494 psError(PS_ERR_UNKNOWN, false, "failed to add item uri"); 18495 psFree(md); 18496 return false; 18497 } 18498 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, bg)) { 18499 psError(PS_ERR_UNKNOWN, false, "failed to add item bg"); 18500 psFree(md); 18501 return false; 18502 } 18503 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_stdev", PS_DATA_F64, NULL, bg_stdev)) { 18504 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev"); 18505 psFree(md); 18506 return false; 18507 } 18508 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, bg_mean_stdev)) { 18509 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev"); 18510 psFree(md); 18511 return false; 18512 } 18513 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) { 18514 psError(PS_ERR_UNKNOWN, false, "failed to add item user_1"); 18515 psFree(md); 18516 return false; 18517 } 18518 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) { 18519 psError(PS_ERR_UNKNOWN, false, "failed to add item user_2"); 18520 psFree(md); 18521 return false; 18522 } 18523 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) { 18524 psError(PS_ERR_UNKNOWN, false, "failed to add item user_3"); 18525 psFree(md); 18526 return false; 18527 } 18528 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) { 18529 psError(PS_ERR_UNKNOWN, false, "failed to add item user_4"); 18530 psFree(md); 18531 return false; 18532 } 18533 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) { 18534 psError(PS_ERR_UNKNOWN, false, "failed to add item user_5"); 18535 psFree(md); 18536 return false; 18537 } 18538 if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) { 18539 psError(PS_ERR_UNKNOWN, false, "failed to add item path_base"); 18540 psFree(md); 18541 return false; 18542 } 18543 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, fault)) { 18544 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 18545 psFree(md); 18546 return false; 18547 } 18548 18549 bool status = psDBInsertOneRow(dbh, DETREGISTEREDIMFILE_TABLE_NAME, md); 18550 psFree(md); 18551 18552 return status; 18553 } 18554 18555 long long detRegisteredImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit) 18556 { 18557 long long deleted = 0; 18558 18559 long long count = psDBDeleteRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, where, limit); 18560 if (count < 0) { 18561 psError(PS_ERR_UNKNOWN, true, "failed to delete row from detRegisteredImfile"); 18562 return count; 18563 18564 deleted += count; 18565 } 18566 18567 return deleted; 18568 } 18569 bool detRegisteredImfileInsertObject(psDB *dbh, detRegisteredImfileRow *object) 18570 { 18571 return detRegisteredImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault); 18572 } 18573 18574 bool detRegisteredImfileInsertObjects(psDB *dbh, psArray *objects) 18575 { 18576 for (long i = 0; i < psArrayLength(objects); i++) { 18577 if (!detRegisteredImfileInsertObject(dbh, objects->data[i])) { 18578 return false; 18579 } 18580 } 18581 18582 return true; 18583 } 18584 18585 bool detRegisteredImfileInsertFits(psDB *dbh, const psFits *fits) 18586 { 18587 psArray *rowSet; 18588 18589 // move to (the first?) extension named DETREGISTEREDIMFILE_TABLE_NAME 18590 if (!psFitsMoveExtName(fits, DETREGISTEREDIMFILE_TABLE_NAME)) { 18591 psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DETREGISTEREDIMFILE_TABLE_NAME); 18592 return false; 18593 } 18594 18595 // check HDU type 18596 if (psFitsGetExtType(fits) != PS_FITS_TYPE_BINARY_TABLE) { 18597 psError(PS_ERR_UNKNOWN, true, "FITS HDU type is not PS_FITS_TYPE_BINARY_TABLE"); 18598 return false; 18599 } 18600 18601 // read fits table 18602 rowSet = psFitsReadTable(fits); 18603 if (!rowSet) { 18604 psError(PS_ERR_UNKNOWN, true, "FITS read error or FITS table is empty"); 18605 psFree(rowSet); 18606 return false; 18607 } 18608 18609 if (!psDBInsertRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, rowSet)) { 18610 psError(PS_ERR_UNKNOWN, false, "databse insert failed"); 18611 psFree(rowSet); 18612 return false; 18613 } 18614 18615 psFree(rowSet); 18616 18617 return true; 18618 } 18619 18620 bool detRegisteredImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit) 18621 { 18622 psArray *rowSet; 18623 18624 rowSet = psDBSelectRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, where, limit); 18625 if (!rowSet) { 18626 return false; 18627 } 18628 18629 // output to fits 18630 if (!psFitsWriteTable(fits, NULL, rowSet, DETREGISTEREDIMFILE_TABLE_NAME)) { 18631 psError(PS_ERR_UNKNOWN, false, "FITS table write failed"); 18632 psFree(rowSet); 18633 return false; 18634 } 18635 18636 psFree(rowSet); 18637 18638 return true; 18639 } 18640 18641 psMetadata *detRegisteredImfileMetadataFromObject(const detRegisteredImfileRow *object) 18642 { 18643 psMetadata *md = psMetadataAlloc(); 18644 if (!psMetadataAdd(md, PS_LIST_TAIL, "det_id", PS_DATA_S64, NULL, object->det_id)) { 18645 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id"); 18646 psFree(md); 18647 return false; 18648 } 18649 if (!psMetadataAdd(md, PS_LIST_TAIL, "iteration", PS_DATA_S32, NULL, object->iteration)) { 18650 psError(PS_ERR_UNKNOWN, false, "failed to add item iteration"); 18651 psFree(md); 18652 return false; 18653 } 18654 if (!psMetadataAdd(md, PS_LIST_TAIL, "class_id", PS_DATA_STRING, NULL, object->class_id)) { 18655 psError(PS_ERR_UNKNOWN, false, "failed to add item class_id"); 18656 psFree(md); 18657 return false; 18658 } 18659 if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, object->uri)) { 18660 psError(PS_ERR_UNKNOWN, false, "failed to add item uri"); 18661 psFree(md); 18662 return false; 18663 } 18664 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, object->bg)) { 18665 psError(PS_ERR_UNKNOWN, false, "failed to add item bg"); 18666 psFree(md); 18667 return false; 18668 } 18669 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_stdev", PS_DATA_F64, NULL, object->bg_stdev)) { 18670 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev"); 18671 psFree(md); 18672 return false; 18673 } 18674 if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, object->bg_mean_stdev)) { 18675 psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev"); 18676 psFree(md); 18677 return false; 18678 } 18679 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) { 18680 psError(PS_ERR_UNKNOWN, false, "failed to add item user_1"); 18681 psFree(md); 18682 return false; 18683 } 18684 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) { 18685 psError(PS_ERR_UNKNOWN, false, "failed to add item user_2"); 18686 psFree(md); 18687 return false; 18688 } 18689 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) { 18690 psError(PS_ERR_UNKNOWN, false, "failed to add item user_3"); 18691 psFree(md); 18692 return false; 18693 } 18694 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) { 18695 psError(PS_ERR_UNKNOWN, false, "failed to add item user_4"); 18696 psFree(md); 18697 return false; 18698 } 18699 if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) { 18700 psError(PS_ERR_UNKNOWN, false, "failed to add item user_5"); 18701 psFree(md); 18702 return false; 18703 } 18704 if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) { 18705 psError(PS_ERR_UNKNOWN, false, "failed to add item path_base"); 18706 psFree(md); 18707 return false; 18708 } 18709 if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) { 18710 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 18711 psFree(md); 18712 return false; 18713 } 18714 18715 18716 return md; 18717 } 18718 18719 detRegisteredImfileRow *detRegisteredImfileObjectFromMetadata(psMetadata *md) 18720 { 18721 18722 bool status = false; 18723 psS64 det_id = psMetadataLookupS64(&status, md, "det_id"); 18724 if (!status) { 18725 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item det_id"); 18726 return false; 18727 } 18728 psS32 iteration = psMetadataLookupS32(&status, md, "iteration"); 18729 if (!status) { 18730 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item iteration"); 18731 return false; 18732 } 18733 char* class_id = psMetadataLookupPtr(&status, md, "class_id"); 18734 if (!status) { 18735 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item class_id"); 18736 return false; 18737 } 18738 char* uri = psMetadataLookupPtr(&status, md, "uri"); 18739 if (!status) { 18740 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri"); 18741 return false; 18742 } 18743 psF64 bg = psMetadataLookupF64(&status, md, "bg"); 18744 if (!status) { 18745 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg"); 18746 return false; 18747 } 18748 psF64 bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev"); 18749 if (!status) { 18750 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev"); 18751 return false; 18752 } 18753 psF64 bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev"); 18754 if (!status) { 18755 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev"); 18756 return false; 18757 } 18758 psF64 user_1 = psMetadataLookupF64(&status, md, "user_1"); 18759 if (!status) { 18760 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1"); 18761 return false; 18762 } 18763 psF64 user_2 = psMetadataLookupF64(&status, md, "user_2"); 18764 if (!status) { 18765 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2"); 18766 return false; 18767 } 18768 psF64 user_3 = psMetadataLookupF64(&status, md, "user_3"); 18769 if (!status) { 18770 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3"); 18771 return false; 18772 } 18773 psF64 user_4 = psMetadataLookupF64(&status, md, "user_4"); 18774 if (!status) { 18775 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4"); 18776 return false; 18777 } 18778 psF64 user_5 = psMetadataLookupF64(&status, md, "user_5"); 18779 if (!status) { 18780 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5"); 18781 return false; 18782 } 18783 char* path_base = psMetadataLookupPtr(&status, md, "path_base"); 18784 if (!status) { 18785 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item path_base"); 18786 return false; 18787 } 18788 psS16 fault = psMetadataLookupS16(&status, md, "fault"); 18789 if (!status) { 18790 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fault"); 18791 return false; 18792 } 18793 18794 return detRegisteredImfileRowAlloc(det_id, iteration, class_id, uri, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, path_base, fault); 18795 } 18796 psArray *detRegisteredImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit) 18797 { 18798 psArray *rowSet; 18799 psArray *returnSet; 18800 psU64 i; 18801 18802 rowSet = psDBSelectRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, where, limit); 18803 if (!rowSet) { 18804 return NULL; 18805 } 18806 18807 // convert psMetadata rows to row objects 18808 18809 returnSet = psArrayAllocEmpty(rowSet->n); 18810 18811 for (i = 0; i < rowSet->n; i++) { 18812 detRegisteredImfileRow *object = detRegisteredImfileObjectFromMetadata(rowSet->data[i]); 18813 psArrayAdd(returnSet, 0, object); 18814 psFree(object); 18815 } 18816 18817 psFree(rowSet); 18818 18819 return returnSet; 18820 } 18821 bool detRegisteredImfileDeleteObject(psDB *dbh, const detRegisteredImfileRow *object) 18822 { 18823 psMetadata *where = detRegisteredImfileMetadataFromObject(object); 18824 long long count = psDBDeleteRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, where, 0); 18825 psFree(where); 18826 if (count < 0) { 18827 psError(PS_ERR_UNKNOWN, true, "failed to delete row from detRegisteredImfile"); 18828 return false; 18829 } 18830 if (count > 1) { 18831 // XXX should this be a psAbort() instead? It is possible that 18832 // having an object match multiple rows was by design. 18833 psError(PS_ERR_UNKNOWN, true, "detRegisteredImfileRow object matched more then one row. Check your database schema"); 18834 return false; 18835 } 18836 18837 return true; 18838 } 18839 long long detRegisteredImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit) 18840 { 18841 long long deleted = 0; 18842 18843 for (long long i = 0; i < objects->n; i++) { 18844 detRegisteredImfileRow *object = objects->data[i]; 18845 psMetadata *where = detRegisteredImfileMetadataFromObject(object); 18846 long long count = psDBDeleteRows(dbh, DETREGISTEREDIMFILE_TABLE_NAME, where, limit); 18847 psFree(where); 18848 if (count < 0) { 18849 psError(PS_ERR_UNKNOWN, true, "failed to delete row from detRegisteredImfile"); 18850 return count; 18851 } 18852 18853 deleted += count; 18854 } 18855 18856 return deleted; 18857 } 18858 bool detRegisteredImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf) 18859 { 18860 PS_ASSERT_PTR_NON_NULL(objects, false); 18861 18862 psMetadata *output = psMetadataAlloc(); 18863 for (long i = 0; i < psArrayLength(objects); i++) { 18864 psMetadata *md = detRegisteredImfileMetadataFromObject(objects->data[i]); 18865 if (!psMetadataAddMetadata( 18866 output, 18867 PS_LIST_TAIL, 18868 DETREGISTEREDIMFILE_TABLE_NAME, 18869 PS_META_DUPLICATE_OK, 18870 NULL, 18871 md 18872 )) { 18873 psError(PS_ERR_UNKNOWN, false, "failed to add metadata"); 18874 psFree(md); 18875 psFree(output); 18876 return false; 18877 } 18878 psFree(md); 18879 } 18880 18881 if (!ippdbPrintMetadataRaw(stream, output, mdcf)) { 18882 psError(PS_ERR_UNKNOWN, false, "failed to print metadata"); 18883 psFree(output); 18884 } 18885 psFree(output); 18886 18887 return true; 18888 } 18889 bool detRegisteredImfilePrintObject(FILE *stream, detRegisteredImfileRow *object, bool mdcf) 18890 { 18891 PS_ASSERT_PTR_NON_NULL(object, false); 18892 18893 psMetadata *md = detRegisteredImfileMetadataFromObject(object); 18894 18895 if (!ippdbPrintMetadataRaw(stream, md, mdcf)) { 18896 psError(PS_ERR_UNKNOWN, false, "failed to print metadata"); 18897 psFree(md); 18898 } 18899 18900 psFree(md); 18901 18902 return true; 18903 } -
trunk/ippdb/src/ippdb.h
r14252 r14451 20 20 /* 21 21 * 22 * This file was generated by glueforge 1.0 122 * This file was generated by glueforge 1.03 23 23 * 24 24 * Do NOT directly edit this file. … … 7889 7889 psF64 bg_stdev; 7890 7890 psF64 bg_mean_stdev; 7891 psF64 bg_skewness; 7892 psF64 bg_kurtosis; 7891 7893 psF64 bin_stdev; 7892 7894 psF64 fringe_0; 7893 7895 psF64 fringe_1; 7894 7896 psF64 fringe_2; 7897 psF64 fringe_resid_0; 7898 psF64 fringe_resid_1; 7899 psF64 fringe_resid_2; 7895 7900 psF64 user_1; 7896 7901 psF64 user_2; … … 7917 7922 psF64 bg_stdev, 7918 7923 psF64 bg_mean_stdev, 7924 psF64 bg_skewness, 7925 psF64 bg_kurtosis, 7919 7926 psF64 bin_stdev, 7920 7927 psF64 fringe_0, 7921 7928 psF64 fringe_1, 7922 7929 psF64 fringe_2, 7930 psF64 fringe_resid_0, 7931 psF64 fringe_resid_1, 7932 psF64 fringe_resid_2, 7923 7933 psF64 user_1, 7924 7934 psF64 user_2, … … 7966 7976 psF64 bg_stdev, 7967 7977 psF64 bg_mean_stdev, 7978 psF64 bg_skewness, 7979 psF64 bg_kurtosis, 7968 7980 psF64 bin_stdev, 7969 7981 psF64 fringe_0, 7970 7982 psF64 fringe_1, 7971 7983 psF64 fringe_2, 7984 psF64 fringe_resid_0, 7985 psF64 fringe_resid_1, 7986 psF64 fringe_resid_2, 7972 7987 psF64 user_1, 7973 7988 psF64 user_2, … … 8139 8154 psF64 bg_stdev; 8140 8155 psF64 bg_mean_stdev; 8156 psF64 bg_skewness; 8157 psF64 bg_kurtosis; 8141 8158 psF64 bin_stdev; 8142 8159 psF64 fringe_0; 8143 8160 psF64 fringe_1; 8144 8161 psF64 fringe_2; 8162 psF64 fringe_resid_0; 8163 psF64 fringe_resid_1; 8164 psF64 fringe_resid_2; 8145 8165 psF64 user_1; 8146 8166 psF64 user_2; … … 8166 8186 psF64 bg_stdev, 8167 8187 psF64 bg_mean_stdev, 8188 psF64 bg_skewness, 8189 psF64 bg_kurtosis, 8168 8190 psF64 bin_stdev, 8169 8191 psF64 fringe_0, 8170 8192 psF64 fringe_1, 8171 8193 psF64 fringe_2, 8194 psF64 fringe_resid_0, 8195 psF64 fringe_resid_1, 8196 psF64 fringe_resid_2, 8172 8197 psF64 user_1, 8173 8198 psF64 user_2, … … 8214 8239 psF64 bg_stdev, 8215 8240 psF64 bg_mean_stdev, 8241 psF64 bg_skewness, 8242 psF64 bg_kurtosis, 8216 8243 psF64 bin_stdev, 8217 8244 psF64 fringe_0, 8218 8245 psF64 fringe_1, 8219 8246 psF64 fringe_2, 8247 psF64 fringe_resid_0, 8248 psF64 fringe_resid_1, 8249 psF64 fringe_resid_2, 8220 8250 psF64 user_1, 8221 8251 psF64 user_2, … … 8588 8618 bool mdcf ///< format as mdconfig or simple 8589 8619 ); 8620 /** detRegisteredImfileRow data structure 8621 * 8622 * Structure for representing a single row of detRegisteredImfile table data. 8623 */ 8624 8625 typedef struct { 8626 psS64 det_id; 8627 psS32 iteration; 8628 char *class_id; 8629 char *uri; 8630 psF64 bg; 8631 psF64 bg_stdev; 8632 psF64 bg_mean_stdev; 8633 psF64 user_1; 8634 psF64 user_2; 8635 psF64 user_3; 8636 psF64 user_4; 8637 psF64 user_5; 8638 char *path_base; 8639 psS16 fault; 8640 } detRegisteredImfileRow; 8641 8642 /** Creates a new detRegisteredImfileRow object 8643 * 8644 * @return A new detRegisteredImfileRow object or NULL on failure. 8645 */ 8646 8647 detRegisteredImfileRow *detRegisteredImfileRowAlloc( 8648 psS64 det_id, 8649 psS32 iteration, 8650 const char *class_id, 8651 const char *uri, 8652 psF64 bg, 8653 psF64 bg_stdev, 8654 psF64 bg_mean_stdev, 8655 psF64 user_1, 8656 psF64 user_2, 8657 psF64 user_3, 8658 psF64 user_4, 8659 psF64 user_5, 8660 const char *path_base, 8661 psS16 fault 8662 ); 8663 8664 /** Creates a new detRegisteredImfile table 8665 * 8666 * @return true on success 8667 */ 8668 8669 bool detRegisteredImfileCreateTable( 8670 psDB *dbh ///< Database handle 8671 ); 8672 8673 /** Deletes a detRegisteredImfile table 8674 * 8675 * @return true on success 8676 */ 8677 8678 bool detRegisteredImfileDropTable( 8679 psDB *dbh ///< Database handle 8680 ); 8681 8682 /** Insert a single row into a table 8683 * 8684 * This function constructs and inserts a single row based on it's parameters. 8685 * 8686 * @return true on success 8687 */ 8688 8689 bool detRegisteredImfileInsert( 8690 psDB *dbh, ///< Database handle 8691 psS64 det_id, 8692 psS32 iteration, 8693 const char *class_id, 8694 const char *uri, 8695 psF64 bg, 8696 psF64 bg_stdev, 8697 psF64 bg_mean_stdev, 8698 psF64 user_1, 8699 psF64 user_2, 8700 psF64 user_3, 8701 psF64 user_4, 8702 psF64 user_5, 8703 const char *path_base, 8704 psS16 fault 8705 ); 8706 8707 /** Deletes up to limit rows from the database and returns the number of rows actually deleted. 8708 * 8709 * @return A The number of rows removed or a negative value on error 8710 */ 8711 8712 long long detRegisteredImfileDelete( 8713 psDB *dbh, ///< Database handle 8714 const psMetadata *where, ///< Row match criteria 8715 unsigned long long limit ///< Maximum number of elements to delete 8716 ); 8717 8718 /** Insert a single detRegisteredImfileRow object into a table 8719 * 8720 * This function constructs and inserts a single row based on it's parameters. 8721 * 8722 * @return true on success 8723 */ 8724 8725 bool detRegisteredImfileInsertObject( 8726 psDB *dbh, ///< Database handle 8727 detRegisteredImfileRow *object ///< detRegisteredImfileRow object 8728 ); 8729 8730 /** Insert an array of detRegisteredImfileRow object into a table 8731 * 8732 * This function constructs and inserts multiple rows based on it's parameters. 8733 * 8734 * @return true on success 8735 */ 8736 8737 bool detRegisteredImfileInsertObjects( 8738 psDB *dbh, ///< Database handle 8739 psArray *objects ///< array of detRegisteredImfileRow objects 8740 ); 8741 8742 /** Insert data from a binary FITS table detRegisteredImfileRow into the database 8743 * 8744 * This function expects a psFits object with a FITS table as the first 8745 * extension. The table must have at least one row of data in it, that is of 8746 * the appropriate format (number of columns and their type). All other 8747 * extensions are ignored. 8748 * 8749 * @return true on success 8750 */ 8751 8752 bool detRegisteredImfileInsertFits( 8753 psDB *dbh, ///< Database handle 8754 const psFits *fits ///< psFits object 8755 ); 8756 8757 /** Selects up to limit from the database and returns them in a binary FITS table 8758 * 8759 * This function assumes an empty psFits object and will create a FITS table 8760 * as the first extension. 8761 * 8762 * See psDBSelectRows() for documentation on the format of where. 8763 * 8764 * @return true on success 8765 */ 8766 8767 bool detRegisteredImfileSelectRowsFits( 8768 psDB *dbh, ///< Database handle 8769 psFits *fits, ///< psFits object 8770 const psMetadata *where, ///< Row match criteria 8771 unsigned long long limit ///< Maximum number of elements to return 8772 ); 8773 8774 /** Convert a detRegisteredImfileRow into an equivalent psMetadata 8775 * 8776 * @return A psMetadata pointer or NULL on error 8777 */ 8778 8779 psMetadata *detRegisteredImfileMetadataFromObject( 8780 const detRegisteredImfileRow *object ///< fooRow to convert into a psMetadata 8781 ); 8782 8783 /** Convert a psMetadata into an equivalent fooRow 8784 * 8785 * @return A detRegisteredImfileRow pointer or NULL on error 8786 */ 8787 8788 detRegisteredImfileRow *detRegisteredImfileObjectFromMetadata( 8789 psMetadata *md ///< psMetadata to convert into a fooRow 8790 ); 8791 /** Selects up to limit rows from the database and returns as detRegisteredImfileRow objects in a psArray 8792 * 8793 * See psDBSelectRows() for documentation on the format of where. 8794 * 8795 * @return A psArray pointer or NULL on error 8796 */ 8797 8798 psArray *detRegisteredImfileSelectRowObjects( 8799 psDB *dbh, ///< Database handle 8800 const psMetadata *where, ///< Row match criteria 8801 unsigned long long limit ///< Maximum number of elements to return 8802 ); 8803 /** Deletes a row from the database coresponding to an detRegisteredImfile 8804 * 8805 * Note that a 'where' search psMetadata is constructed from each object and 8806 * used to find rows to delete. 8807 * 8808 * @return A The number of rows removed or a negative value on error 8809 */ 8810 8811 bool detRegisteredImfileDeleteObject( 8812 psDB *dbh, ///< Database handle 8813 const detRegisteredImfileRow *object ///< Object to delete 8814 ); 8815 /** Deletes up to limit rows from the database and returns the number of rows actually deleted. 8816 * 8817 * Note that a 'where' search psMetadata is constructed from each object and 8818 * used to find rows to delete. 8819 * 8820 * @return A The number of rows removed or a negative value on error 8821 */ 8822 8823 long long detRegisteredImfileDeleteRowObjects( 8824 psDB *dbh, ///< Database handle 8825 const psArray *objects, ///< Array of objects to delete 8826 unsigned long long limit ///< Maximum number of elements to delete 8827 ); 8828 /** Formats and prints an array of detRegisteredImfileRow objects 8829 * 8830 * When mdcf is set the formated output is in psMetadataConfig 8831 * format, otherwise it is in a simple tabular format. 8832 * 8833 * @return true on success 8834 */ 8835 8836 bool detRegisteredImfilePrintObjects( 8837 FILE *stream, ///< a stream 8838 psArray *objects, ///< An array of detRegisteredImfileRow objects 8839 bool mdcf ///< format as mdconfig or simple 8840 ); 8841 /** Formats and prints an detRegisteredImfileRow object 8842 * 8843 * When mdcf is set the formated output is in psMetadataConfig 8844 * format, otherwise it is in a simple tabular format. 8845 * 8846 * @return true on success 8847 */ 8848 8849 bool detRegisteredImfilePrintObject( 8850 FILE *stream, ///< a stream 8851 detRegisteredImfileRow *object, ///< an detRegisteredImfileRow object 8852 bool mdcf ///< format as mdconfig or simple 8853 ); 8590 8854 8591 8855 /// @} … … 8595 8859 #endif 8596 8860 8597 #endif // DETR UNSUMMARY_DB_H8861 #endif // DETREGISTEREDIMFILE_DB_H
Note:
See TracChangeset
for help on using the changeset viewer.
