@@ -1438,21 +1438,19 @@ defmodule Ecto.Adapters.SQL do
1438
1438
) :: Exception . stacktrace ( )
1439
1439
def first_non_ecto_stacktrace ( stacktrace , % { repo: repo } , size ) do
1440
1440
stacktrace
1441
- |> first_non_ecto_entries ( repo , size , size , [ ] )
1442
1441
|> Enum . reverse ( )
1442
+ |> last_non_ecto_entries ( repo , [ ] )
1443
+ |> Enum . take ( size )
1443
1444
end
1444
1445
1445
- defp first_non_ecto_entries ( [ { mod , _ , _ , _ } | rest ] , repo , size , _ , _ )
1446
+ defp last_non_ecto_entries ( [ { mod , _ , _ , _ } | _ ] , repo , acc )
1446
1447
when mod == repo or mod in @ repo_modules ,
1447
- do: first_non_ecto_entries ( rest , repo , size , size , [ ] )
1448
+ do: acc
1448
1449
1449
- defp first_non_ecto_entries ( [ _ | rest ] , repo , size , 0 , acc ) ,
1450
- do: first_non_ecto_entries ( rest , repo , size , 0 , acc )
1450
+ defp last_non_ecto_entries ( [ entry | rest ] , repo , acc ) ,
1451
+ do: last_non_ecto_entries ( rest , repo , [ entry | acc ] )
1451
1452
1452
- defp first_non_ecto_entries ( [ ] , _ , _ , _ , acc ) , do: acc
1453
-
1454
- defp first_non_ecto_entries ( [ entry | rest ] , repo , size , pending , acc ) ,
1455
- do: first_non_ecto_entries ( rest , repo , size , pending - 1 , [ entry | acc ] )
1453
+ defp last_non_ecto_entries ( [ ] , _ , acc ) , do: acc
1456
1454
1457
1455
## Connection helpers
1458
1456
0 commit comments