diff --git a/backend/.sqlx/query-633248685996deeb62c89b3d6b054b7cc230086612bc75f2222276d6cebdd6c8.json b/backend/.sqlx/query-633248685996deeb62c89b3d6b054b7cc230086612bc75f2222276d6cebdd6c8.json new file mode 100644 index 0000000000..d87d56ea32 --- /dev/null +++ b/backend/.sqlx/query-633248685996deeb62c89b3d6b054b7cc230086612bc75f2222276d6cebdd6c8.json @@ -0,0 +1,25 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO v2_job_completed AS cj\n ( workspace_id\n , id\n , duration_ms\n , result\n , canceled_by\n , canceled_reason\n , flow_status\n , status\n , worker\n , fast_filter\n )\n SELECT q.workspace_id\n , q.id\n , 0\n , $4\n , $1\n , 'cancel all'\n , (SELECT flow_status FROM v2_job_status WHERE id = q.id)\n , 'canceled'::job_status\n , worker\n , 2::smallint\n FROM v2_job_queue q\n JOIN v2_job USING (id)\n WHERE q.id = any($2) AND running = false AND parent_job IS NULL AND q.workspace_id = $3 AND trigger_kind IS DISTINCT FROM 'schedule'\n FOR UPDATE SKIP LOCKED\n ON CONFLICT (id) DO NOTHING RETURNING id AS \"id!\"", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id!", + "type_info": "Uuid" + } + ], + "parameters": { + "Left": [ + "Varchar", + "UuidArray", + "Text", + "Jsonb" + ] + }, + "nullable": [ + false + ] + }, + "hash": "633248685996deeb62c89b3d6b054b7cc230086612bc75f2222276d6cebdd6c8" +} diff --git a/backend/.sqlx/query-77f13b7c1e7e488c6268a9ff6def647e47394bd0a61d44fddb1b2040d05b7f17.json b/backend/.sqlx/query-77f13b7c1e7e488c6268a9ff6def647e47394bd0a61d44fddb1b2040d05b7f17.json deleted file mode 100644 index b5b675108d..0000000000 --- a/backend/.sqlx/query-77f13b7c1e7e488c6268a9ff6def647e47394bd0a61d44fddb1b2040d05b7f17.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "INSERT INTO v2_job_completed AS cj\n ( workspace_id\n , id\n , duration_ms\n , result\n , canceled_by\n , canceled_reason\n , flow_status\n , status\n , worker\n )\n SELECT q.workspace_id\n , q.id\n , 0\n , $4\n , $1\n , 'cancel all'\n , (SELECT flow_status FROM v2_job_status WHERE id = q.id)\n , 'canceled'::job_status\n , worker\n FROM v2_job_queue q\n JOIN v2_job USING (id)\n WHERE q.id = any($2) AND running = false AND parent_job IS NULL AND q.workspace_id = $3 AND trigger_kind IS DISTINCT FROM 'schedule'\n FOR UPDATE SKIP LOCKED\n ON CONFLICT (id) DO NOTHING RETURNING id AS \"id!\"", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id!", - "type_info": "Uuid" - } - ], - "parameters": { - "Left": [ - "Varchar", - "UuidArray", - "Text", - "Jsonb" - ] - }, - "nullable": [ - false - ] - }, - "hash": "77f13b7c1e7e488c6268a9ff6def647e47394bd0a61d44fddb1b2040d05b7f17" -} diff --git a/backend/.sqlx/query-928aa6e4fff9f60a14a51cc7a3ef507414d20c81833bc940c6323fcdbee5d9b3.json b/backend/.sqlx/query-82d6994fa0f9af1b2f978439a97f56742d3010f6308077d9c827d26a21762544.json similarity index 63% rename from backend/.sqlx/query-928aa6e4fff9f60a14a51cc7a3ef507414d20c81833bc940c6323fcdbee5d9b3.json rename to backend/.sqlx/query-82d6994fa0f9af1b2f978439a97f56742d3010f6308077d9c827d26a21762544.json index fa83f0e2b1..5e6b9b3339 100644 --- a/backend/.sqlx/query-928aa6e4fff9f60a14a51cc7a3ef507414d20c81833bc940c6323fcdbee5d9b3.json +++ b/backend/.sqlx/query-82d6994fa0f9af1b2f978439a97f56742d3010f6308077d9c827d26a21762544.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "INSERT INTO v2_job_completed (\n id,\n workspace_id,\n started_at,\n completed_at,\n duration_ms,\n result,\n status,\n worker\n ) VALUES ($1, $2, $3, $3, 0, $4, 'success'::job_status, 'debugger')", + "query": "INSERT INTO v2_job_completed (\n id,\n workspace_id,\n started_at,\n completed_at,\n duration_ms,\n result,\n status,\n worker,\n fast_filter\n ) VALUES ($1, $2, $3, $3, 0, $4, 'success'::job_status, 'debugger', 1::smallint)", "describe": { "columns": [], "parameters": { @@ -13,5 +13,5 @@ }, "nullable": [] }, - "hash": "928aa6e4fff9f60a14a51cc7a3ef507414d20c81833bc940c6323fcdbee5d9b3" + "hash": "82d6994fa0f9af1b2f978439a97f56742d3010f6308077d9c827d26a21762544" } diff --git a/backend/.sqlx/query-141a428bf866f2e3d4c6eff756a5fb8c6476d6b9b00b9a336b4616d3b69a491e.json b/backend/.sqlx/query-ee47ef28bf714c90dba387b49f92c96bcad6046385da58aa753fb9c89a8cbb63.json similarity index 71% rename from backend/.sqlx/query-141a428bf866f2e3d4c6eff756a5fb8c6476d6b9b00b9a336b4616d3b69a491e.json rename to backend/.sqlx/query-ee47ef28bf714c90dba387b49f92c96bcad6046385da58aa753fb9c89a8cbb63.json index b02b877e92..f7a1d2c135 100644 --- a/backend/.sqlx/query-141a428bf866f2e3d4c6eff756a5fb8c6476d6b9b00b9a336b4616d3b69a491e.json +++ b/backend/.sqlx/query-ee47ef28bf714c90dba387b49f92c96bcad6046385da58aa753fb9c89a8cbb63.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n INSERT INTO v2_job_completed (\n id, workspace_id, started_at, completed_at, duration_ms, result, deleted,\n canceled_by, canceled_reason, flow_status, memory_peak, status, worker,\n workflow_as_code_status, result_columns, retries, extras\n ) VALUES (\n $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17\n )\n ON CONFLICT (id) DO NOTHING\n ", + "query": "\n INSERT INTO v2_job_completed (\n id, workspace_id, started_at, completed_at, duration_ms, result, deleted,\n canceled_by, canceled_reason, flow_status, memory_peak, status, worker,\n workflow_as_code_status, result_columns, retries, extras, fast_filter\n ) VALUES (\n $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18\n )\n ON CONFLICT (id) DO NOTHING\n ", "describe": { "columns": [], "parameters": { @@ -33,10 +33,11 @@ "Jsonb", "TextArray", "UuidArray", - "Jsonb" + "Jsonb", + "Int2" ] }, "nullable": [] }, - "hash": "141a428bf866f2e3d4c6eff756a5fb8c6476d6b9b00b9a336b4616d3b69a491e" + "hash": "ee47ef28bf714c90dba387b49f92c96bcad6046385da58aa753fb9c89a8cbb63" } diff --git a/backend/windmill-api-debug/src/lib.rs b/backend/windmill-api-debug/src/lib.rs index 4f793e7da7..69f96955f6 100644 --- a/backend/windmill-api-debug/src/lib.rs +++ b/backend/windmill-api-debug/src/lib.rs @@ -275,8 +275,9 @@ async fn sign_debug_request( duration_ms, result, status, - worker - ) VALUES ($1, $2, $3, $3, 0, $4, 'success'::job_status, 'debugger')", + worker, + fast_filter + ) VALUES ($1, $2, $3, $3, 0, $4, 'success'::job_status, 'debugger', 1::smallint)", job_id, w_id, now, diff --git a/backend/windmill-api-jobs/src/execution.rs b/backend/windmill-api-jobs/src/execution.rs index 08aebe4ddd..a945dd2e23 100644 --- a/backend/windmill-api-jobs/src/execution.rs +++ b/backend/windmill-api-jobs/src/execution.rs @@ -99,6 +99,7 @@ pub async fn cancel_jobs( , flow_status , status , worker + , fast_filter ) SELECT q.workspace_id , q.id @@ -109,6 +110,7 @@ pub async fn cancel_jobs( , (SELECT flow_status FROM v2_job_status WHERE id = q.id) , 'canceled'::job_status , worker + , 2::smallint FROM v2_job_queue q JOIN v2_job USING (id) WHERE q.id = any($2) AND running = false AND parent_job IS NULL AND q.workspace_id = $3 AND trigger_kind IS DISTINCT FROM 'schedule' diff --git a/backend/windmill-api-jobs/src/jobs_export.rs b/backend/windmill-api-jobs/src/jobs_export.rs index 5de2c51795..19960b5c6d 100644 --- a/backend/windmill-api-jobs/src/jobs_export.rs +++ b/backend/windmill-api-jobs/src/jobs_export.rs @@ -358,14 +358,23 @@ pub async fn import_completed_jobs( .execute(&mut *tx) .await?; + let fast_filter: Option = + if job.parent_job.is_some() || job.status == JobStatus::Skipped { + None + } else if job.status == JobStatus::Success { + Some(1) + } else { + Some(2) + }; + sqlx::query!( r#" INSERT INTO v2_job_completed ( id, workspace_id, started_at, completed_at, duration_ms, result, deleted, canceled_by, canceled_reason, flow_status, memory_peak, status, worker, - workflow_as_code_status, result_columns, retries, extras + workflow_as_code_status, result_columns, retries, extras, fast_filter ) VALUES ( - $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17 + $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18 ) ON CONFLICT (id) DO NOTHING "#, @@ -385,7 +394,8 @@ pub async fn import_completed_jobs( job.workflow_as_code_status as _, job.result_columns as _, job.retries as _, - job.extras as _ + job.extras as _, + fast_filter ) .execute(&mut *tx) .await?;