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 '
|
echo '
|
||||||
CREATE TEMPORARY TABLE tasks(
|
CREATE TEMPORARY TABLE tasks(
|
||||||
id INTEGER PRIMARY KEY,
|
id INTEGER PRIMARY KEY,
|
||||||
|
requires INTEGER,
|
||||||
|
required INTEGER,
|
||||||
|
status INTEGER NOT NULL,
|
||||||
key TEXT UNIQUE,
|
key TEXT UNIQUE,
|
||||||
rename_pattern TEXT,
|
rename_pattern TEXT,
|
||||||
fat32compat INTEGER,
|
fat32compat INTEGER,
|
||||||
@ -479,15 +482,23 @@ echo '
|
|||||||
cmd_arg57 TEXT,
|
cmd_arg57 TEXT,
|
||||||
cmd_arg58 TEXT,
|
cmd_arg58 TEXT,
|
||||||
cmd_arg59 TEXT,
|
cmd_arg59 TEXT,
|
||||||
requires INTEGER,
|
|
||||||
required INTEGER,
|
|
||||||
status INTEGER NOT NULL,
|
|
||||||
cleanup TEXT,
|
cleanup TEXT,
|
||||||
FOREIGN KEY(requires) REFERENCES tasks(id)
|
FOREIGN KEY(requires) REFERENCES tasks(id)
|
||||||
ON DELETE SET NULL
|
ON DELETE SET NULL
|
||||||
);
|
);
|
||||||
CREATE INDEX tasks_by_key ON tasks ( key );
|
CREATE INDEX tasks_by_key ON tasks ( key );
|
||||||
CREATE INDEX tasks_by_sourcefile ON tasks ( source_file );
|
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
|
' >&3
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
|
|||||||
@ -15,5 +15,6 @@ openDatabase() {
|
|||||||
cat $schema >&3
|
cat $schema >&3
|
||||||
echo '.separator ::AtOM:SQL:Sep::' >&3
|
echo '.separator ::AtOM:SQL:Sep::' >&3
|
||||||
echo 'PRAGMA foreign_keys = ON;' >&3
|
echo 'PRAGMA foreign_keys = ON;' >&3
|
||||||
|
echo 'PRAGMA recursive_triggers = ON;' >&3
|
||||||
checkDatabaseVersion
|
checkDatabaseVersion
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,6 @@ cleaner() {
|
|||||||
(( failed+=faildepends ))
|
(( failed+=faildepends ))
|
||||||
(( ran+=faildepends ))
|
(( ran+=faildepends ))
|
||||||
Update tasks status 2 <<<"id = $taskid"
|
Update tasks status 2 <<<"id = $taskid"
|
||||||
Update tasks status 2 <<<"requires = $taskid"
|
|
||||||
echo "SELECT COUNT(*)
|
echo "SELECT COUNT(*)
|
||||||
FROM tasks
|
FROM tasks
|
||||||
WHERE ( status = 0 OR status = 1 )
|
WHERE ( status = 0 OR status = 1 )
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user