Skip to content

Commit 7fd33e2

Browse files
committed
Use the current module for unique vars for determinism
1 parent 1de9ba2 commit 7fd33e2

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

lib/ecto/query/builder.ex

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -954,15 +954,15 @@ defmodule Ecto.Query.Builder do
954954
955955
"""
956956
@spec escape_binding(Macro.t(), list, Macro.Env.t()) :: {Macro.t(), Keyword.t()}
957-
def escape_binding(query, binding, _env) when is_list(binding) do
957+
def escape_binding(query, binding, env) when is_list(binding) do
958958
vars = binding |> Enum.with_index() |> Enum.map(&escape_bind/1)
959959
assert_no_duplicate_binding!(vars)
960960

961961
{positional_vars, named_vars} = Enum.split_while(vars, &(not named_bind?(&1)))
962962
assert_named_binds_in_tail!(named_vars, binding)
963963

964-
{query, positional_binds} = calculate_positional_binds(query, positional_vars)
965-
{query, named_binds} = calculate_named_binds(query, named_vars)
964+
{query, positional_binds} = calculate_positional_binds(query, positional_vars, env)
965+
{query, named_binds} = calculate_named_binds(query, named_vars, env)
966966
{query, positional_binds ++ named_binds}
967967
end
968968

@@ -995,14 +995,14 @@ defmodule Ecto.Query.Builder do
995995
end
996996
end
997997

998-
defp calculate_positional_binds(query, vars) do
998+
defp calculate_positional_binds(query, vars, env) do
999999
case Enum.split_while(vars, &(elem(&1, 1) != :...)) do
10001000
{vars, []} ->
10011001
vars = for {:pos, var, count} <- vars, do: {var, count}
10021002
{query, vars}
10031003

10041004
{vars, [_ | tail]} ->
1005-
var = Macro.unique_var(:query, __MODULE__)
1005+
var = Macro.unique_var(:query, env.module)
10061006

10071007
query =
10081008
quote do
@@ -1023,10 +1023,10 @@ defmodule Ecto.Query.Builder do
10231023
end
10241024
end
10251025

1026-
defp calculate_named_binds(query, []), do: {query, []}
1026+
defp calculate_named_binds(query, [], _env), do: {query, []}
10271027

1028-
defp calculate_named_binds(query, vars) do
1029-
var = Macro.unique_var(:query, __MODULE__)
1028+
defp calculate_named_binds(query, vars, env) do
1029+
var = Macro.unique_var(:query, env.module)
10301030

10311031
assignments =
10321032
for {:named, key, name} <- vars do

lib/ecto/query/builder/join.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ defmodule Ecto.Query.Builder.Join do
209209

210210
{count_bind, query} =
211211
if is_nil(count_bind) do
212-
var = Macro.unique_var(:query, __MODULE__)
212+
var = Macro.unique_var(:query, env.module)
213213

214214
query =
215215
quote do

0 commit comments

Comments
 (0)