Changeset 32609
- Timestamp:
- Nov 3, 2011, 2:50:40 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
-
dbconfig/changes.txt (modified) (1 diff)
-
ippTools/share/pubtool_definerun.sql (modified) (2 diffs)
-
ippTools/share/pxadmin_create_tables.sql (modified) (3 diffs)
-
ippTools/src/difftool.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/dbconfig/changes.txt
r32509 r32609 2172 2172 ) ENGINE=innodb DEFAULT CHARSET=latin1; 2173 2173 2174 2174 -- changes to prevent repeatedly queueing diffRuns for warps with no overlaps 2175 ALTER TABLE diffInputSkyfile DROP PRIMARY KEY, ADD PRIMARY KEY(diff_skyfile_id); 2176 ALTER TABLE diffInputSkyfile CHANGE COLUMN skycell_id skycell_id VARCHAR(64) DEFAULT NULL; 2177 2178 UPDATE dbversion set schema_version = '1.1.71', updated= CURRENT_TIMESTAMP(); -
trunk/ippTools/share/pubtool_definerun.sql
r32117 r32609 15 15 JOIN diffRun 16 16 JOIN diffInputSkyfile USING(diff_id) 17 JOIN diffSkyfile using(diff_id) 17 18 JOIN warpRun ON warpRun.warp_id = diffInputSkyfile.warp1 -- Only JOINing input, not reference! 18 19 JOIN fakeRun USING(fake_id) … … 30 31 ) 31 32 ) 33 AND diffSkyfile.quality = 0 32 34 -- WHERE hook %s 33 35 UNION -
trunk/ippTools/share/pxadmin_create_tables.sql
r32510 r32609 554 554 KEY(workdir_state), 555 555 KEY(label), 556 KEY(data_group), 557 INDEX(add_id, cam_id) 556 KEY(data_group) 558 557 ) ENGINE=innodb DEFAULT CHARSET=latin1; 559 558 … … 1157 1156 tess_id VARCHAR(64), 1158 1157 diff_skyfile_id BIGINT AUTO_INCREMENT, 1158 PRIMARY KEY(diff_skyfile_id), 1159 1159 KEY(diff_id, skycell_id), 1160 KEY(diff_skyfile_id),1161 1160 KEY(warp1), 1162 1161 KEY(warp2), … … 1969 1968 dtime_verify FLOAT, 1970 1969 dtime_merge FLOAT, 1971 dtime_script ,1972 epoch TIMESTAMP,1970 dtime_script FLOAT, 1971 epoch timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 1973 1972 mergedvodb_path VARCHAR(255) NOT NULL, 1974 1973 fault SMALLINT NOT NULL, 1975 KEY(minidvodb_id), CONSTRAINT UNIQUE(minidvodb_id), FOREIGN KEY(minidvodb_id) REFERENCES minidvodbRun (minidvodb_id) 1974 UNIQUE KEY (minidvodb_id), 1975 KEY(minidvodb_id), 1976 FOREIGN KEY(minidvodb_id) REFERENCES minidvodbRun(minidvodb_id) 1976 1977 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1977 1978 -
trunk/ippTools/src/difftool.c
r32482 r32609 1936 1936 return false; 1937 1937 } 1938 psS64 numSkycells = psDBAffectedRows(config->dbh); 1939 if (numSkycells > 0) { 1940 if (!setdiffRunState(config, run->diff_id, "new", false)) { 1941 psError(PS_ERR_UNKNOWN, false, "Failed to change diffRun.state for diff_id: %" PRId64, 1942 run->diff_id); 1943 psFree(input); 1944 psFree(diff); 1945 psFree(run); 1946 psFree(list); 1947 psFree(insert); 1948 psFree(results); 1949 if (!psDBRollback(config->dbh)) { 1950 psError(PS_ERR_UNKNOWN, false, "database error"); 1951 } 1952 return false; 1953 } 1954 run->state = psStringCopy("new"); 1955 } else { 1956 // No overlap between the warps. Insert a dummy skycell which will complete this pair of warps 1957 // XXX: we'd like to use diffInputSkyfileRowAlloc and diffInputSkyfileInsert but there doesn't 1958 // seem to be a way to pass in NULL for skycell_id, stack1 and stack2 1959 psString dummyQuery = NULL; 1960 psStringAppend(&dummyQuery, 1961 "INSERT INTO diffInputSkyfile VALUES(%" PRId64 ", NULL, %s, NULL, %s, NULL, '%s', 0)", 1962 run->diff_id, 1963 input, // warp1 1964 template, // warp2 1965 tess_id); 1966 if (!p_psDBRunQuery(config->dbh, dummyQuery)) { 1967 psError(PS_ERR_UNKNOWN, false, "database error"); 1968 psFree(dummyQuery); 1969 psFree(input); 1970 psFree(diff); 1971 psFree(run); 1972 psFree(list); 1973 psFree(insert); 1974 psFree(results); 1975 if (!psDBRollback(config->dbh)) { 1976 psError(PS_ERR_UNKNOWN, false, "database error"); 1977 } 1978 return false; 1979 } 1980 psFree(dummyQuery); 1981 psString finishQuery = NULL; 1982 psStringAppend( &finishQuery, 1983 "UPDATE diffRun set state ='full', note = 'dummy run - no overlap' WHERE diff_id = %" PRId64, 1984 run->diff_id); 1985 if (!p_psDBRunQuery(config->dbh, finishQuery)) { 1986 psError(PS_ERR_UNKNOWN, false, "database error"); 1987 psFree(finishQuery); 1988 psFree(input); 1989 psFree(diff); 1990 psFree(run); 1991 psFree(list); 1992 psFree(insert); 1993 psFree(results); 1994 if (!psDBRollback(config->dbh)) { 1995 psError(PS_ERR_UNKNOWN, false, "database error"); 1996 } 1997 return false; 1998 } 1999 psFree(finishQuery); 2000 run->state = psStringCopy("full"); 2001 } 1938 2002 psFree(input); 1939 2003 psFree(diff); 1940 1941 if (!setdiffRunState(config, run->diff_id, "new", false)) {1942 psError(PS_ERR_UNKNOWN, false, "Failed to change diffRun.state for diff_id: %" PRId64,1943 run->diff_id);1944 psFree(run);1945 psFree(list);1946 psFree(insert);1947 psFree(results);1948 if (!psDBRollback(config->dbh)) {1949 psError(PS_ERR_UNKNOWN, false, "database error");1950 }1951 return false;1952 }1953 2004 1954 2005 psArrayAdd(list, list->n, run);
Note:
See TracChangeset
for help on using the changeset viewer.
