feat: support durable task cancellation without foreign keys
This commit is contained in:
@@ -84,8 +84,11 @@ func TestIntegrationSchemaAndConstraints(t *testing.T) {
|
||||
taskA, taskB := id(), id()
|
||||
exec(taskSQL, nsA, taskA, queueA)
|
||||
exec(taskSQL, nsA, taskB, queueA)
|
||||
t.Run("namespace_isolation_and_safe_task_states", func(t *testing.T) {
|
||||
reject(1452, taskSQL, nsB, id(), queueA)
|
||||
t.Run("no_foreign_keys_and_safe_task_states", func(t *testing.T) {
|
||||
var count int
|
||||
if err := db.QueryRowContext(ctx, `SELECT COUNT(*) FROM information_schema.REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_SCHEMA=DATABASE()`).Scan(&count); err != nil || count != 0 {
|
||||
t.Fatalf("foreign keys must be absent: %d %v", count, err)
|
||||
}
|
||||
reject(3819, "UPDATE pulse_tasks SET state='RUNNING' WHERE namespace_id=? AND id=?", nsA, taskA)
|
||||
reject(3819, "UPDATE pulse_tasks SET state='UNRECOGNIZED' WHERE namespace_id=? AND id=?", nsA, taskA)
|
||||
reject(3819, "UPDATE pulse_tasks SET state='SUCCEEDED' WHERE namespace_id=? AND id=?", nsA, taskA)
|
||||
|
||||
Reference in New Issue
Block a user