Use TRIGGER to fail tasks depending upon a failed task
This commit is contained in:
parent
fe61ee8c53
commit
5977629cab
17
atom
17
atom
@ -412,6 +412,9 @@ done
|
||||
echo '
|
||||
CREATE TEMPORARY TABLE tasks(
|
||||
id INTEGER PRIMARY KEY,
|
||||
requires INTEGER,
|
||||
required INTEGER,
|
||||
status INTEGER NOT NULL,
|
||||
key TEXT UNIQUE,
|
||||
rename_pattern TEXT,
|
||||
fat32compat INTEGER,
|
||||
@ -479,15 +482,23 @@ echo '
|
||||
cmd_arg57 TEXT,
|
||||
cmd_arg58 TEXT,
|
||||
cmd_arg59 TEXT,
|
||||
requires INTEGER,
|
||||
required INTEGER,
|
||||
status INTEGER NOT NULL,
|
||||
cleanup TEXT,
|
||||
FOREIGN KEY(requires) REFERENCES tasks(id)
|
||||
ON DELETE SET NULL
|
||||
);
|
||||
CREATE INDEX tasks_by_key ON tasks ( key );
|
||||
CREATE INDEX tasks_by_sourcefile ON tasks ( source_file );
|
||||
|
||||
CREATE TEMPORARY TRIGGER fail_depends
|
||||
AFTER UPDATE OF
|
||||
status
|
||||
ON
|
||||
tasks
|
||||
WHEN
|
||||
NEW.status=2
|
||||
BEGIN
|
||||
UPDATE tasks SET status=2 WHERE requires=NEW.id;
|
||||
END;
|
||||
' >&3
|
||||
|
||||
echo '
|
||||
|
||||
@ -15,5 +15,6 @@ openDatabase() {
|
||||
cat $schema >&3
|
||||
echo '.separator ::AtOM:SQL:Sep::' >&3
|
||||
echo 'PRAGMA foreign_keys = ON;' >&3
|
||||
echo 'PRAGMA recursive_triggers = ON;' >&3
|
||||
checkDatabaseVersion
|
||||
}
|
||||
|
||||
@ -12,7 +12,6 @@ cleaner() {
|
||||
(( failed+=faildepends ))
|
||||
(( ran+=faildepends ))
|
||||
Update tasks status 2 <<<"id = $taskid"
|
||||
Update tasks status 2 <<<"requires = $taskid"
|
||||
echo "SELECT COUNT(*)
|
||||
FROM tasks
|
||||
WHERE ( status = 0 OR status = 1 )
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user