From 1fb477d5bd8e8f201a0fe053299a3558dc13db23 Mon Sep 17 00:00:00 2001 From: Antoine Augusti Date: Tue, 18 Feb 2025 10:28:09 +0100 Subject: [PATCH] DB.Resource.get_related_conversion_info : utilise l'index SQL (#4450) --- apps/transport/lib/db/resource.ex | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/transport/lib/db/resource.ex b/apps/transport/lib/db/resource.ex index cbdc76bca0..56618268a7 100644 --- a/apps/transport/lib/db/resource.ex +++ b/apps/transport/lib/db/resource.ex @@ -224,6 +224,9 @@ defmodule DB.Resource do def get_related_conversion_info(resource_id, format) do converter = DB.DataConversion.converter_to_use(format) + # Only value supported for now but needed to make the query fast + # https://github.com/etalab/transport-site/issues/4448 + convert_from = :GTFS DB.ResourceHistory |> join(:inner, [rh], dc in DB.DataConversion, @@ -237,8 +240,9 @@ defmodule DB.Resource do }) |> where( [rh, dc], - rh.resource_id == ^resource_id and dc.convert_to == ^format and dc.status == :success and - dc.converter == ^converter + rh.resource_id == ^resource_id and + dc.convert_from == ^convert_from and dc.convert_to == ^format and + dc.status == :success and dc.converter == ^converter ) |> order_by([rh, _], desc: rh.inserted_at) |> limit(1)