From e63d60d8e56d0cb0a99a0d2d934ebb397fae0de2 Mon Sep 17 00:00:00 2001 From: Parker Selbert Date: Fri, 12 Jul 2024 09:47:06 -0500 Subject: [PATCH] Remove materialized option from Basic.fetch_jobs/3 The `MATERIALIZED` clause for CTEs didn't make a meaningful difference in job fetching accuracy. In some situations it caused a performance regression (which is why it was removed from Pro's Smart engine a while ago). --- lib/oban/engines/basic.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/oban/engines/basic.ex b/lib/oban/engines/basic.ex index f3e25a18..83a17e29 100644 --- a/lib/oban/engines/basic.ex +++ b/lib/oban/engines/basic.ex @@ -104,7 +104,7 @@ defmodule Oban.Engines.Basic do # of the CTE, e.g. "public"."subset". query = Job - |> with_cte("subset", as: ^subset_query, materialized: true) + |> with_cte("subset", as: ^subset_query) |> join(:inner, [j], x in fragment(~s("subset")), on: true) |> where([j, x], j.id == x.id) |> where([j, _], j.attempt < j.max_attempts)