Changeset 20954
- Timestamp:
- Dec 10, 2008, 6:11:39 PM (17 years ago)
- Location:
- branches/bills_081204
- Files:
-
- 21 edited
-
dbconfig/changes.txt (modified) (5 diffs)
-
dbconfig/chip.md (modified) (1 diff)
-
dbconfig/diff.md (modified) (4 diffs)
-
dbconfig/magic.md (modified) (2 diffs)
-
dbconfig/tasks.md (modified) (2 diffs)
-
dbconfig/warp.md (modified) (4 diffs)
-
ippTasks/diff.pro (modified) (2 diffs)
-
ippTools/share/Makefile.am (modified) (1 diff)
-
ippTools/share/difftool_completed_runs.sql (modified) (1 diff)
-
ippTools/share/difftool_todiffskyfile.sql (modified) (1 diff)
-
ippTools/share/magictool_definebyquery_insert.sql (modified) (1 diff)
-
ippTools/share/pxadmin_create_tables.sql (modified) (8 diffs)
-
ippTools/share/warptool_tooverlap.sql (modified) (1 diff)
-
ippTools/src/chiptool.c (modified) (1 diff)
-
ippTools/src/difftool.c (modified) (12 diffs)
-
ippTools/src/difftoolConfig.c (modified) (2 diffs)
-
ippTools/src/magictool.c (modified) (1 diff)
-
ippTools/src/pxwarp.c (modified) (1 diff)
-
ippTools/src/regtool.c (modified) (1 diff)
-
ippTools/src/warptool.c (modified) (4 diffs)
-
ippTools/src/warptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/bills_081204/dbconfig/changes.txt
r20903 r20954 131 131 ALTER TABLE warpRun ADD CONSTRAINT FOREIGN KEY(cam_id) REFERENCES 132 132 camRun(cam_id); 133 ALTER TABLE warpRun ADD COLUMN magic ed TINYINT AFTER registered;133 ALTER TABLE warpRun ADD COLUMN magicked TINYINT AFTER registered; 134 134 ALTER TABLE warpSkyCellMap DROP FOREIGN KEY warpSkyCellMap_ibfk_1; 135 135 UPDATE warpRun JOIN warpInputExp USING(warp_id) SET warpRun.cam_id = … … 723 723 ALTER TABLE warpRun ADD CONSTRAINT FOREIGN KEY(cam_id) REFERENCES 724 724 camRun(cam_id); 725 ALTER TABLE warpRun ADD COLUMN magic ed TINYINT AFTER registered;725 ALTER TABLE warpRun ADD COLUMN magicked TINYINT AFTER registered; 726 726 ALTER TABLE warpSkyCellMap DROP FOREIGN KEY warpSkyCellMap_ibfk_1; 727 727 UPDATE warpRun JOIN warpInputExp USING(warp_id) SET warpRun.cam_id = … … 1049 1049 UPDATE stackSumSkyfile SET data_state = 'full'; 1050 1050 1051 alter table diffRun add column label varchar(64) afterworkdir;1052 alter table diffRun add column reduction varchar(64) afterlabel;1053 1054 ALTER TABLE diffSkyfile add column data_state varchar(64) afterpath_base;1051 ALTER TABLE diffRun ADD COLUMN label VARCHAR(64) AFTER workdir; 1052 ALTER TABLE diffRun ADD COLUMN reduction VARCHAR(64) AFTER label; 1053 1054 ALTER TABLE diffSkyfile ADD COLUMN data_state VARCHAR(64) AFTER path_base; 1055 1055 UPDATE diffSkyfile SET data_state = 'full'; 1056 1056 1057 ALTER TABLE warpSkyfile add column data_state varchar(64) afterpath_base;1057 ALTER TABLE warpSkyfile ADD COLUMN data_state VARCHAR(64) AFTER path_base; 1058 1058 UPDATE warpSkyfile SET data_state = 'full'; 1059 1059 … … 1309 1309 ALTER TABLE magicDSRun ADD COLUMN cam_id BIGINT AFTER stage_id; 1310 1310 1311 -- Version: 1.1.47 is this correct? 1312 1313 1314 -- fix order of workdir to match pxadmin_create_tables.sql 1315 ALTER TABLE diffRun CHANGE COLUMN workdir workdir VARCHAR(255) AFTER state; 1316 1317 ALTER TABLE diffRun ADD COLUMN exp_id BIGINT; 1318 ALTER TABLE diffRun ADD FOREIGN KEY (exp_id) REFERENCES rawExp(exp_id); 1319 ALTER TABLE diffRun DROP COLUMN skycell_id; 1320 1321 1322 -- drop exiting foreign key constraints 1323 ALTER TABLE diffInputSkyfile drop FOREIGN KEY diffInputSkyfile_ibfk_1; 1324 ALTER TABLE diffInputSkyfile drop FOREIGN KEY diffInputSkyfile_ibfk_2; 1325 ALTER TABLE diffInputSkyfile drop FOREIGN KEY diffInputSkyfile_ibfk_3; 1326 1327 ALTER TABLE diffInputSkyfile DROP COLUMN kind; 1328 ALTER TABLE diffInputSkyfile CHANGE COLUMN skycell_id skycell_id VARCHAR(64) AFTER diff_id; 1329 1330 -- run script collapse_diffinputs.pl 1331 DELETE FROM diffInputSkyfile where template = 1; 1332 1333 ALTER TABLE diffInputSkyfile DROP PRIMARY KEY; 1334 ALTER TABLE diffInputSkyfile ADD PRIMARY KEY (diff_id, skycell_id); 1335 ALTER TABLE diffInputSkyfile DROP COLUMN template; 1336 1337 ALTER TABLE diffInputSkyfile CHANGE COLUMN warp_id warp1 BIGINT; 1338 ALTER TABLE diffInputSkyfile ADD COLUMN stack1 BIGINT AFTER warp1, ADD KEY(stack1); 1339 ALTER TABLE diffInputSkyfile ADD COLUMN warp2 BIGINT AFTER stack1, ADD KEY(warp2); 1340 ALTER TABLE diffInputSkyfile CHANGE COLUMN stack_id stack2 BIGINT AFTER warp2; 1341 ALTER TABLE diffInputSkyfile ADD FOREIGN KEY (diff_id) REFERENCES diffRun(diff_id); 1342 1343 # need to check these 1344 ALTER TABLE diffInputSkyfile ADD FOREIGN KEY (warp1, skycell_id, tess_id) REFERENCES warpSkyfile(warp_id, skycell_id, tess_id); 1345 ALTER TABLE diffInputSkyfile ADD FOREIGN KEY (warp2, skycell_id, tess_id) REFERENCES warpSkyfile(warp_id, skycell_id, tess_id); 1346 1347 ALTER TABLE diffInputSkyfile ADD FOREIGN KEY (stack1) REFERENCES stackRun(stack_id); 1348 ALTER TABLE diffInputSkyfile ADD FOREIGN KEY (stack2) REFERENCES stackRun(stack_id); 1349 1350 -- add unique ids for each image and flags that indicate whether the image has been 1351 -- magic destreaked 1352 ALTER TABLE diffSkyfile ADD COLUMN skycell_id VARCHAR(64) AFTER diff_id; 1353 ALTER TABLE diffSkyfile DROP PRIMARY KEY, ADD PRIMARY KEY (diff_id, skycell_id); 1354 ALTER TABLE diffSkyfile ADD COLUMN diff_image_id BIGINT NOT NULL AUTO_INCREMENT, ADD KEY(diff_image_id); 1355 ALTER TABLE diffSkyfile ADD COLUMN magicked TINYINT; 1356 1357 ALTER TABLE warpRun DROP COLUMN magiced; 1358 1359 ALTER TABLE warpSkyfile ADD COLUMN warp_image_id BIGINT NOT NULL AUTO_INCREMENT, ADD KEY(warp_image_id); 1360 ALTER TABLE warpSkyfile ADD COLUMN magicked TINYINT; 1361 1362 ALTER TABLE chipProcessedImfile ADD COLUMN chip_image_id BIGINT NOT NULL AUTO_INCREMENT, ADD KEY(chip_image_id); 1363 ALTER TABLE chipProcessedImfile ADD COLUMN magicked TINYINT; 1364 1365 ALTER TABLE rawImfile ADD COLUMN raw_image_id BIGINT NOT NULL AUTO_INCREMENT, ADD KEY(raw_image_id); 1366 ALTER TABLE rawImfile ADD COLUMN magicked TINYINT; 1311 1367 1312 1368 … … 1314 1370 ALTER TABLE magicRun ADD COLUMN diff_id BIGINT AFTER exp_id; 1315 1371 ALTER TABLE magicRun ADD CONSTRAINT FOREIGN KEY(diff_id) REFERENCES diffRun(diff_id); 1316 1317 ALTER TABLE magicInputSkyfile DROP FOREIGN KEY magicInputSkyfile_ibfk_2;1318 ALTER TABLE magicInputSkyfile DROP column diff_id; -
branches/bills_081204/dbconfig/chip.md
r20240 r20954 81 81 path_base STR 255 82 82 fault S16 0 # Key NOT NULL 83 chip_image_id S64 0 # Key AUTO_INCREMENT 84 magicked BOOL f 83 85 END 84 86 -
branches/bills_081204/dbconfig/diff.md
r20903 r20954 1 # $Id: diff.md,v 1.14.8. 1 2008-12-04 23:44:33bills Exp $1 # $Id: diff.md,v 1.14.8.2 2008-12-11 04:11:39 bills Exp $ 2 2 3 3 diffRun METADATA 4 4 diff_id S64 0 # Primary Key AUTO_INCREMENT 5 5 state STR 64 # Key 6 workdir STR 255 6 7 label STR 64 # Key 7 8 reduction STR 64 # Reduction class 8 workdir STR 2559 9 dvodb STR 255 10 10 registered TAI NULL 11 tess_id STR 64 # Key 11 12 exp_id S64 0 # fkey(exp_id) ref rawExp(exp_id) 12 tess_id STR 64 # Key13 13 END 14 14 … … 19 19 diffInputSkyfile METADATA 20 20 diff_id S64 0 # Primary Key fkey(diff_id) ref diffRun(diff_id) 21 skycell_id STR 64 # Primary Key 21 22 warp1 S64 0 # fkey(warp1, skycell_id, tess_id) ref warpSkyfile(warp_id, skycell_id, tess_id) 23 stack1 S64 0 # fkey(stack1) ref stackSumSkyfile(stack_id) 22 24 warp2 S64 0 # fkey(warp2, skycell_id, tess_id) ref warpSkyfile(warp_id, skycell_id, tess_id) 23 stack1 S64 0 # fkey(stack1) ref stackSumSkyfile(stack_id)24 25 stack2 S64 0 # fkey(stack2) ref stackSumSkyfile(stack_id) 25 skycell_id STR 64 # Key26 26 tess_id STR 64 # Key 27 27 END … … 29 29 diffSkyfile METADATA 30 30 diff_id S64 0 # Primary Key fkey(diff_id) ref diffRun(diff_id) 31 skycell_id STR 64 # Key31 skycell_id STR 64 # 32 32 uri STR 255 33 33 path_base STR 255 … … 52 52 good_frac F32 0.0 # Key 53 53 fault S16 0 # Key 54 diff_image_id S64 0 # Key NOT NULL AUTO_INCREMENT 55 magicked BOOL f 54 56 END -
branches/bills_081204/dbconfig/magic.md
r20903 r20954 1 # $Id: magic.md,v 1.12.2. 1 2008-12-04 23:44:33bills Exp $1 # $Id: magic.md,v 1.12.2.2 2008-12-11 04:11:39 bills Exp $ 2 2 3 3 ### Fault in magicRun indicates that the processing tree failed … … 17 17 magicInputSkyfile METADATA 18 18 magic_id S64 0 # Primary Key fkey(magic_id) ref magicRun(magic_id) 19 diff_id S64 0 # Primary Key fkey(diff_id) ref diffRun(diff_id) 19 20 node STR 64 # 20 21 END -
branches/bills_081204/dbconfig/tasks.md
r20890 r20954 1 # $Id: tasks.md,v 1.158 2008-11-09 23:51:01 priceExp $1 # $Id: tasks.md,v 1.158.2.1 2008-12-11 04:11:39 bills Exp $ 2 2 3 3 # this table records all exposure ID ever seen from the summit … … 239 239 fault S16 0 # Key NOT NULL 240 240 epoch UTC 0001-01-01T00:00:00Z 241 END 241 magicked BOOL f 242 END -
branches/bills_081204/dbconfig/warp.md
r19930 r20954 1 # $Id: warp.md,v 1.19 2008-10-07 00:01:28 priceExp $1 # $Id: warp.md,v 1.19.10.1 2008-12-11 04:11:39 bills Exp $ 2 2 3 3 # … … 11 11 warpRun METADATA 12 12 warp_id S64 0 # Primary Key AUTO_INCREMENT 13 fake_id S64 0 # Key INDEX(warp_id, fake_id) fkey(fake_id) ref camProcessedExp(fake_id)13 fake_id S64 0 # Key INDEX(warp_id, fake_id) fkey(fake_id) ref camProcessedExp(fake_id) 14 14 mode STR 64 # Key 15 15 state STR 64 # Key … … 22 22 registered TAI NULL 23 23 # if magic is T then look for the exp_id in the magic output tables 24 magiced BOOL f # Key25 24 END 26 25 … … 52 51 ignored BOOL f # Key 53 52 fault S16 0 # Key 53 warp_image_id S64 0 # Key AUTO_INCREMENT 54 magicked BOOL f 54 55 END 55 56 -
branches/bills_081204/ippTasks/diff.pro
r20903 r20954 98 98 task.exit 0 99 99 # convert 'stdout' to book format 100 ipptool2book stdout diffSkyfile -key diff_id -uniq -setword dbname $options:0 -setword pantaskState INIT100 ipptool2book stdout diffSkyfile -key diff_id:skycell_id -uniq -setword dbname $options:0 -setword pantaskState INIT 101 101 if ($VERBOSE > 2) 102 102 book listbook diffSkyfile … … 214 214 task.exit 0 215 215 # convert 'stdout' to book format 216 ipptool2book stdout diffCleanup -key diff_id -uniq -setword dbname $options:0 -setword pantaskState INIT216 ipptool2book stdout diffCleanup -key diff_id:skycell_id -uniq -setword dbname $options:0 -setword pantaskState INIT 217 217 if ($VERBOSE > 2) 218 218 book listbook diffCleanup -
branches/bills_081204/ippTools/share/Makefile.am
r20903 r20954 72 72 difftool_completed_runs.sql \ 73 73 difftool_definebyquery.sql \ 74 difftool_definebyquery_part1.sql \ 75 difftool_definebyquery_part2.sql \ 76 difftool_definebyquery_temp_create.sql \ 74 77 difftool_donecleanup.sql \ 75 78 difftool_inputskyfile.sql \ -
branches/bills_081204/ippTools/share/difftool_completed_runs.sql
r20904 r20954 3 3 FROM ( 4 4 SELECT 5 COUNT(diffInputSkyfile.skycell_id), COUNT(diffSkyfile.skycell_id), 5 6 diffSkyfile.* 6 7 FROM diffRun 7 8 JOIN diffInputSkyfile USING(diff_id) 8 LEFT JOIN diffSkyfile USING(diff_id )9 LEFT JOIN diffSkyfile USING(diff_id, skycell_id) 9 10 WHERE 10 11 diffRun.state = 'new' 11 12 GROUP BY 12 diff Skyfile.diff_id13 diffInputSkyfile.diff_id 13 14 HAVING 14 COUNT(diffInputSkyfile. diff_id) = COUNT(diffSkyfile.diff_id)15 COUNT(diffInputSkyfile.skycell_id) = COUNT(diffSkyfile.skycell_id) 15 16 AND SUM(diffSkyfile.fault) = 0 16 17 ) as Foo -
branches/bills_081204/ippTools/share/difftool_todiffskyfile.sql
r20903 r20954 56 56 LEFT JOIN diffSkyfile 57 57 ON diffInputSkyfile.diff_id = diffSkyfile.diff_id 58 AND diffInputSkyfile.skycell_id = diffSkyfile.skycell_id 58 59 WHERE 59 60 -- Ready to be processed -
branches/bills_081204/ippTools/share/magictool_definebyquery_insert.sql
r20903 r20954 3 3 SELECT 4 4 @MAGIC_ID@, -- Update this with the appropriate magic_id 5 diff_id, 5 6 skycell_id 6 7 FROM diffSkyfile -
branches/bills_081204/ippTools/share/pxadmin_create_tables.sql
r20903 r20954 238 238 fault SMALLINT NOT NULL, 239 239 epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 240 raw_image_id BIGINT AUTO_INCREMENT, 241 magicked TINYINT, 240 242 PRIMARY KEY(exp_id, class_id), 241 243 KEY(tmp_class_id), 242 244 KEY(fault), 245 KEY(raw_image_id), 243 246 UNIQUE KEY(exp_id, tmp_class_id), 244 247 FOREIGN KEY (exp_id, tmp_class_id) … … 330 333 path_base VARCHAR(255), 331 334 fault SMALLINT NOT NULL, 335 chip_image_id BIGINT AUTO_INCREMENT, 336 magicked BIGINT, 332 337 PRIMARY KEY(chip_id, exp_id, class_id), 333 338 KEY(data_state), 334 339 KEY(fault), 340 KEY(chip_image_id), 335 341 FOREIGN KEY (chip_id, exp_id) 336 342 REFERENCES chipRun(chip_id, exp_id), … … 815 821 end_stage VARCHAR(64), 816 822 registered DATETIME, 817 magiced TINYINT,818 823 PRIMARY KEY(warp_id), 819 824 KEY(warp_id), … … 824 829 KEY(label), 825 830 KEY(end_stage), 826 KEY(magiced),827 831 INDEX(warp_id, fake_id), 828 832 FOREIGN KEY (fake_id) … … 861 865 ignored TINYINT, 862 866 fault SMALLINT, 867 warp_image_id BIGINT AUTO_INCREMENT, 868 magicked TINYINT, 863 869 PRIMARY KEY(warp_id, skycell_id, tess_id), 864 870 KEY(good_frac), 865 871 KEY(ignored), KEY(fault), 872 KEY(warp_image_id), 866 873 FOREIGN KEY (warp_id, skycell_id, tess_id) 867 874 REFERENCES warpSkyCellMap(warp_id, skycell_id, tess_id) … … 941 948 dvodb VARCHAR(255), 942 949 registered DATETIME, 950 tess_id VARCHAR(64), 943 951 exp_id BIGINT, 944 tess_id VARCHAR(64),945 952 PRIMARY KEY(diff_id), 946 953 KEY(diff_id), 947 954 KEY(state), 948 KEY(tess_id) 955 KEY(tess_id), 956 FOREIGN KEY (exp_id) REFERENCES rawExp(exp_id) 949 957 ) ENGINE=innodb DEFAULT CHARSET=latin1; 950 958 951 959 CREATE TABLE diffInputSkyfile ( 952 960 diff_id BIGINT, 961 skycell_id VARCHAR(64), 953 962 warp1 BIGINT, 963 stack1 BIGINT, 954 964 warp2 BIGINT, 955 stack1 BIGINT,956 965 stack2 BIGINT, 957 skycell_id VARCHAR(64),958 966 tess_id VARCHAR(64), 959 PRIMARY KEY(diff_id ),967 PRIMARY KEY(diff_id, skycell_id), 960 968 KEY(warp1), 961 969 KEY(warp2), … … 996 1004 good_frac FLOAT, 997 1005 fault SMALLINT, 998 PRIMARY KEY(diff_id), 1006 diff_image_id BIGINT AUTO_INCREMENT, 1007 magicked TINYINT, 1008 PRIMARY KEY(diff_id, skycell_id), 999 1009 KEY(good_frac), 1000 1010 KEY(fault), 1001 KEY( skycell_id),1011 KEY(diff_image_id), 1002 1012 FOREIGN KEY (diff_id) REFERENCES diffRun(diff_id) 1003 1013 ) ENGINE=innodb DEFAULT CHARSET=latin1; … … 1026 1036 CREATE TABLE magicInputSkyfile ( 1027 1037 magic_id BIGINT, 1038 diff_id BIGINT, 1028 1039 node VARCHAR(64), 1029 PRIMARY KEY(magic_id), 1030 FOREIGN KEY (magic_id) REFERENCES magicRun(magic_id) 1040 PRIMARY KEY(magic_id, diff_id), 1041 FOREIGN KEY (magic_id) REFERENCES magicRun(magic_id), 1042 FOREIGN KEY (diff_id) REFERENCES diffRun(diff_id) 1031 1043 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1032 1044 -
branches/bills_081204/ippTools/share/warptool_tooverlap.sql
r19092 r20954 7 7 rawExp.camera, 8 8 exp_id, 9 exp_tag, 10 warpRun.magiced 9 exp_tag 11 10 FROM warpRun 12 11 JOIN fakeRun -
branches/bills_081204/ippTools/src/chiptool.c
r20890 r20954 484 484 n_cr, 485 485 path_base, 486 code 486 code, 487 0, // chip_image_id 488 0 // magic_ds_id 487 489 )) { 488 490 // rollback -
branches/bills_081204/ippTools/src/difftool.c
r20903 r20954 121 121 0, // ID 122 122 "reg", // state 123 workdir, 123 124 label, 124 125 reduction, 125 workdir,126 126 NULL, // dvodb 127 127 registered, 128 exp_id,129 tess_id128 tess_id, 129 exp_id 130 130 ); 131 131 if (!run) { … … 234 234 if (!diffInputSkyfileInsert(config->dbh, 235 235 diff_id, 236 skycell_id, 236 237 warp1 ? warp1 : PS_MAX_S64, // defined or NULL 238 stack1 ? stack1 : PS_MAX_S64, // defined or NULL 237 239 warp2 ? warp2 : PS_MAX_S64, // defined or NULL 238 stack1 ? stack1 : PS_MAX_S64, // defined or NULL239 240 stack2 ? stack2 : PS_MAX_S64, // defined or NULL 240 skycell_id,241 241 tess_id 242 242 )) { … … 304 304 PXOPT_COPY_S64(config->args, where, "-diff_id", "diff_id", "=="); 305 305 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 306 PXOPT_COPY_STR(config->args, where, "-skycell_id", " skycell_id", "==");306 PXOPT_COPY_STR(config->args, where, "-skycell_id", "diffInputSkyfile.skycell_id", "=="); 307 307 PXOPT_COPY_STR(config->args, where, "-tess_id", "tess_id", "=="); 308 308 … … 531 531 hostname, 532 532 good_frac, 533 code 533 code, 534 0, // diff_image_id 535 0 // magic_ds_id 534 536 )) { 535 537 if (!psDBRollback(config->dbh)) { … … 795 797 0, // ID 796 798 "reg", // state 799 workdir, 797 800 label, 798 801 reduction, 799 workdir,800 802 NULL, // dvodb 801 803 registered, 802 exp_id,803 tess_id804 tess_id, 805 exp_id 804 806 ); 805 807 … … 826 828 if (!diffInputSkyfileInsert(config->dbh, 827 829 run->diff_id, 830 skycell_id, 828 831 input_warp_id, 832 input_stack_id, 829 833 template_warp_id, 830 input_stack_id,831 834 template_stack_id, 832 skycell_id,833 835 tess_id 834 836 )) { … … 936 938 PS_ASSERT_PTR_NON_NULL(config, false); 937 939 940 psMetadata *expWhere = psMetadataAlloc(); 938 941 psMetadata *warpWhere = psMetadataAlloc(); 939 942 psMetadata *stackWhere = psMetadataAlloc(); 940 943 944 PXOPT_COPY_S64(config->args, expWhere, "-exp_id", "exp_id", "=="); 941 945 PXOPT_COPY_S64(config->args, warpWhere, "-warp_id", "warpRun.warp_id", "=="); 942 946 PXOPT_COPY_STR(config->args, warpWhere, "-skycell_id", "warpRun.skycell_id", "=="); … … 953 957 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 954 958 PXOPT_LOOKUP_BOOL(newTemplates, config->args, "-new-templates", false); 959 PXOPT_LOOKUP_BOOL(reRun, config->args, "-rerun", false); 960 PXOPT_LOOKUP_BOOL(available, config->args, "-available", false); 955 961 956 962 // find all things to queue 957 psString query = pxDataGet("difftool_definebyquery .sql");963 psString query = pxDataGet("difftool_definebyquery_part1.sql"); 958 964 if (!query) { 959 965 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); … … 961 967 } 962 968 963 if (newTemplates) {964 // Warps that haven't been diffed OR warps that can take a newer template in the diff965 psStringAppend(&query, " WHERE (diff_id IS NULL OR best_stack_id > current_stack_id)");966 } else {967 // Only warps that haven't been diffed968 psStringAppend(&query, " WHERE diff_id IS NULL");969 }970 971 969 psString warpQuery = NULL; 972 970 psString stackQuery = NULL; 973 971 psString expQuery = NULL; 972 973 if (psListLength(expWhere->list)) { 974 psString whereClause = psDBGenerateWhereConditionSQL(expWhere, NULL); 975 psStringAppend(&expQuery, "\n AND %s", whereClause); 976 psFree(whereClause); 977 } else { 978 expQuery = psStringCopy("\n"); 979 } 980 psFree(expWhere); 974 981 if (psListLength(warpWhere->list)) { 975 982 psString whereClause = psDBGenerateWhereConditionSQL(warpWhere, NULL); … … 977 984 psFree(whereClause); 978 985 } else { 979 warpQuery = psStringCopy(" ");986 warpQuery = psStringCopy("\n"); 980 987 } 981 988 psFree(warpWhere); 989 990 if (!available) { 991 // diff what's available, even if warp run has some faults and is incomplete 992 psStringAppend(&warpQuery, " AND warpRun.state = 'full'"); 993 } 994 995 // don't queue for exposures that have already been diff'd unless requested 996 psString diffQuery = NULL; 997 if (! (reRun || newTemplates) ) { 998 psStringAppend(&diffQuery, "\nAND diff_id IS NULL"); 999 } 982 1000 983 1001 if (psListLength(stackWhere->list)) { 984 1002 psString whereClause = psDBGenerateWhereConditionSQL(stackWhere, NULL); 985 psStringAppend(&stackQuery, "\n AND %s", whereClause);1003 psStringAppend(&stackQuery, "\nAND %s", whereClause); 986 1004 psFree(whereClause); 987 1005 } else { … … 990 1008 psFree(stackWhere); 991 1009 992 psTrace("difftool", 1, query, warpQuery, stackQuery); 993 994 if (!p_psDBRunQuery(config->dbh, query, warpQuery, stackQuery)) { 1010 psTrace("difftool", 1, query, warpQuery, diffQuery, expQuery, stackQuery); 1011 1012 1013 if (!p_psDBRunQuery(config->dbh, query, warpQuery, expQuery, diffQuery)) { 995 1014 psError(PS_ERR_UNKNOWN, false, "database error"); 996 1015 psFree(query); … … 1019 1038 } 1020 1039 1040 // create temporary table 1041 query = pxDataGet("difftool_definebyquery_temp_create.sql"); 1042 if (!p_psDBRunQuery(config->dbh, query)) { 1043 psError(PS_ERR_UNKNOWN, false, "database error"); 1044 psFree(query); 1045 return false; 1046 } 1047 psFree(query); 1048 query = NULL; 1049 1050 psString skycell_query = pxDataGet("difftool_definebyquery_part2.sql"); 1051 1021 1052 psArray *list = psArrayAllocEmpty(16); // List of runs, to print 1022 1053 long numGood = 0; // Number of good rows added 1054 psS64 last_exp_id = 0; 1023 1055 for (long i = 0; i < output->n; i++) { 1024 1056 psMetadata *row = output->data[i]; // Output row from query 1025 1026 // Selected parameters1027 1057 bool mdok; // Status of MD lookup 1028 const char *skycell_id = psMetadataLookupStr(&mdok, row, "skycell_id"); 1029 if (!mdok || !skycell_id) { 1030 psWarning("skycell_id not found --- ignoring row %ld", i); 1058 1059 // Take the first warp for each exposure. 1060 // The list is sorted by exposure id and warp_id and the warps are in descending 1061 // order. 1062 psS64 exp_id = psMetadataLookupS64(&mdok, row, "exp_id"); 1063 if (!mdok) { 1064 psError(PXTOOLS_ERR_PROG, false, "exp_id not found"); 1065 return false; 1066 } 1067 if (exp_id == last_exp_id) { 1031 1068 continue; 1032 1069 } 1033 const char *tess_id = psMetadataLookupStr(&mdok, row, "tess_id");1034 if (!mdok || !tess_id) { 1035 psWarning("tess_id not found --- ignoring row %ld", i);1036 continue;1037 }1038 psS64 stack_id = psMetadataLookupS64(&mdok, row, "best_stack_id");1039 if (!mdok) {1040 ps Warning("stack_id not found --- ignoring row %ld", i);1041 continue;1070 last_exp_id = exp_id; 1071 1072 // clear temporary table 1073 if (!p_psDBRunQuery(config->dbh, "DELETE FROM skycellsToDiff")) { 1074 psError(PS_ERR_UNKNOWN, false, "database error"); 1075 psFree(warpQuery); 1076 psFree(stackQuery); 1077 psFree(skycell_query); 1078 return false; 1042 1079 } 1043 1080 psS64 warp_id = psMetadataLookupS64(&mdok, row, "warp_id"); 1044 1081 if (!mdok) { 1045 psWarning("warp_id not found --- ignoring row %ld", i); 1082 psError(PXTOOLS_ERR_PROG, false, "warp_id not found --- ignoring row %ld", i); 1083 psFree(warpQuery); 1084 psFree(stackQuery); 1085 psFree(skycell_query); 1086 return false; 1087 } 1088 psS64 skycell_count = psMetadataLookupS64(&mdok, row, "skycell_count"); 1089 if (!mdok) { 1090 psError(PXTOOLS_ERR_PROG, false, "skycell_count not found"); 1091 psFree(warpQuery); 1092 psFree(stackQuery); 1093 psFree(skycell_query); 1094 return false; 1095 } 1096 psString tess_id = psMetadataLookupStr(&mdok, row, "tess_id"); 1097 if (!mdok) { 1098 psError(PXTOOLS_ERR_PROG, false, "tess_id not found"); 1099 psFree(warpQuery); 1100 psFree(stackQuery); 1101 psFree(skycell_query); 1102 return false; 1103 } 1104 if (!p_psDBRunQuery(config->dbh, skycell_query, warp_id, warpQuery, stackQuery)) { 1105 psError(PS_ERR_UNKNOWN, false, "database error"); 1106 psFree(warpQuery); 1107 psFree(stackQuery); 1108 psFree(skycell_query); 1109 return false; 1110 } 1111 psS64 num = psDBAffectedRows(config->dbh); 1112 1113 if (num == 0) { 1114 psTrace("difftool", PS_LOG_INFO, "no skycells with stack found for %" PRId64, warp_id); 1046 1115 continue; 1047 1116 } 1048 psS64 exp_id = psMetadataLookupS64(&mdok, row, "exp_id"); 1049 if (!mdok) { 1050 psWarning("exp_id not found --- ignoring row %ld", i); 1117 1118 if (!available && (num != skycell_count)) { 1119 psTrace("difftool", PS_LOG_INFO, "%" PRId64 " skyfiles with stack found for warp_id %" 1120 PRId64 " need %" PRId64, num, skycell_count, warp_id); 1051 1121 continue; 1052 1122 } 1053 1123 1054 if (!populatedrun(list, workdir, skycell_id, tess_id, label, reduction, warp_id, 1055 PS_MAX_S64, PS_MAX_S64, stack_id, exp_id, config)) { 1056 psWarning("Unable to add run for %s,%s,%" PRId64 ",%" PRId64, skycell_id, tess_id, 1057 warp_id, stack_id); 1058 psErrorClear(); 1059 continue; 1060 } 1061 1124 // ok we've got one create the diffRun 1125 diffRunRow *run = diffRunRowAlloc( 1126 0, // ID 1127 "reg", // state 1128 workdir, 1129 label, 1130 reduction, 1131 NULL, // dvodb 1132 registered, 1133 tess_id, 1134 exp_id 1135 ); 1136 1137 if (!diffRunInsertObject(config->dbh, run)) { 1138 psError(PS_ERR_UNKNOWN, false, "database error"); 1139 psFree(run); 1140 return true; 1141 } 1142 run->diff_id = psDBLastInsertID(config->dbh); 1143 1144 psStringAppend(&query, "UPDATE skycellsToDiff SET diff_id = %" PRId64, run->diff_id); 1145 if (!p_psDBRunQuery(config->dbh, query)) { 1146 psError(PS_ERR_UNKNOWN, false, "database error"); 1147 psFree(warpQuery); 1148 psFree(stackQuery); 1149 psFree(skycell_query); 1150 psFree(query); 1151 return false; 1152 } 1153 psFree(query); 1154 query = NULL; 1155 psStringAppend(&query, "INSERT INTO diffInputSkyfile SELECT * from skycellsToDiff"); 1156 if (!p_psDBRunQuery(config->dbh, query)) { 1157 psError(PS_ERR_UNKNOWN, false, "database error"); 1158 psFree(warpQuery); 1159 psFree(stackQuery); 1160 psFree(skycell_query); 1161 psFree(query); 1162 return false; 1163 } 1164 1165 if (!setdiffRunState(config, run->diff_id, "new")) { 1166 psError(PS_ERR_UNKNOWN, false, "failed to change diffRun.state for diff_id: %" PRId64, 1167 run->diff_id); 1168 psFree(warpQuery); 1169 psFree(stackQuery); 1170 psFree(skycell_query); 1171 psFree(query); 1172 return false; 1173 } 1174 1175 psArrayAdd(list, list->n, run); 1062 1176 numGood++; 1063 1177 } -
branches/bills_081204/ippTools/src/difftoolConfig.c
r20903 r20954 145 145 // -definebyquery 146 146 psMetadata *definebyqueryArgs = psMetadataAlloc(); 147 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-diff_id", 0, "search by diff ID", 0);148 147 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID", 0); 148 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 149 149 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", NULL); 150 150 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tess ID", NULL); … … 158 158 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 159 159 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-new-templates", 0, "also search for diffs with new template", false); 160 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-rerun", 0, "define new run even if one exists", false); 161 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-available", 0, "define new run even if warpRun has some faults", false); 160 162 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 161 163 -
branches/bills_081204/ippTools/src/magictool.c
r20903 r20954 362 362 config->dbh, 363 363 magic_id, 364 diff_id, 364 365 node 365 366 ); -
branches/bills_081204/ippTools/src/pxwarp.c
r19092 r20954 147 147 tess_id, 148 148 end_stage, 149 NULL, // registered 150 false // magiced 149 NULL // registered 151 150 )) { 152 151 psError(PS_ERR_UNKNOWN, false, "database error"); -
branches/bills_081204/ippTools/src/regtool.c
r20608 r20954 299 299 hostname, 300 300 code, 301 NULL 301 NULL, 302 0 302 303 )) { 303 304 psError(PS_ERR_UNKNOWN, false, "database error"); -
branches/bills_081204/ippTools/src/warptool.c
r20723 r20954 134 134 PXOPT_LOOKUP_STR(end_stage, config->args, "-end_stage", false, false); 135 135 PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false); 136 PXOPT_LOOKUP_BOOL(magiced, config->args, "-magiced", false);137 136 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 138 137 … … 154 153 tess_id, 155 154 end_stage, 156 registered, 157 magiced 155 registered 158 156 ); 159 157 if (!warpRun) { … … 246 244 247 245 PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false); 248 PXOPT_LOOKUP_BOOL(magiced, config->args, "-magiced", false);249 246 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 250 247 … … 942 939 ymax, 943 940 !accept, 944 code 941 code, 942 0, // warp_image_id 943 0 // magic_ds_id 945 944 )) { 946 945 if (!psDBRollback(config->dbh)) { -
branches/bills_081204/ippTools/src/warptoolConfig.c
r20890 r20954 103 103 104 104 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 105 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-magiced", 0, "has this exposure been magiced", false);106 105 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 107 106 … … 116 115 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-end_stage", 0, "define end stage", NULL); 117 116 psMetadataAddTime(definerunArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 118 psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-magiced", 0, "has this exposure been magiced", false);119 117 psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 120 118
Note:
See TracChangeset
for help on using the changeset viewer.
