Skip to content

Commit d47bc2c

Browse files
Fix inspecting dynamic/2 with interpolated named bindings (#4541)
1 parent 98ba6fe commit d47bc2c

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

lib/ecto/query/inspect.ex

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ alias Ecto.Query.{DynamicExpr, JoinExpr, QueryExpr, WithExpr, LimitExpr}
55

66
defimpl Inspect, for: Ecto.Query.DynamicExpr do
77
def inspect(%DynamicExpr{binding: binding} = dynamic, opts) do
8+
binding =
9+
Enum.map(binding, fn
10+
{{:^, _, [as]}, bind} when is_atom(as) -> {as, bind}
11+
other -> other
12+
end)
13+
14+
dynamic = %{dynamic | binding: binding}
15+
816
joins =
917
binding
1018
|> Enum.drop(1)

test/ecto/query/inspect_test.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ defmodule Ecto.Query.InspectTest do
4141
assert inspect(dynamic([comments: c], c.bar == ^1)) ==
4242
"dynamic([comments: c], c.bar == ^1)"
4343

44+
assert inspect(dynamic([{^:comments, c}], c.bar == ^1)) ==
45+
"dynamic([comments: c], c.bar == ^1)"
46+
4447
dynamic = dynamic([p], p.bar == ^1)
4548

4649
assert inspect(dynamic([p], ^dynamic and p.foo == ^0)) ==

0 commit comments

Comments
 (0)