| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
Can you merge the old PR into this one and do a mix deps.update ecto so CI passes? Thank you! ❤️ |
Sorry, something went wrong.
Since elixir-ecto/ecto#4765, the join builder emits every JoinExpr.on as a %BooleanExpr{op: :and} rather than a QueryExpr, so that wheres folded into the on of an interpolated join query can carry subqueries. Match on BooleanExpr when rendering joins, and drop the manual struct rewrite in the using_join comprehensions, which now receive a real BooleanExpr. Without this, join/2 raises for interpolated join queries, and the using_join comprehensions silently drop the join conditions from the WHERE clause of update_all/delete_all, as they filtered joins by on: %QueryExpr{}. Add coverage for interpolated join queries in update_all/delete_all, which had none. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Done — #747 is folded in here (closed) and mix deps.update ecto bumps the git dep to 8959c439, which has #4765. Single commit now; mix test, mix format --check-formatted and mix deps.unlock --check-unused all pass locally. Since ecto master always emits BooleanExpr ons, I also tightened the join matches to %BooleanExpr{} rather than keeping the permissive map patterns #747 used for cross-version compatibility. |
Sorry, something went wrong.
|
💚 💙 💜 💛 ❤️ |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Adapter side of elixir-ecto/ecto#4765 (fix for elixir-ecto/ecto#4763), which is now merged. Supersedes #747, whose changes are folded into this PR.
Ecto's join builder now emits every JoinExpr.on as a %BooleanExpr{op: :and} instead of a QueryExpr, so that wheres folded into the on of an interpolated join query (join: x in ^query) can carry subqueries. This matches on BooleanExpr when rendering joins, and drops the manual struct rewrite in the using_join comprehensions (Map.put(:__struct__, BooleanExpr) |> Map.put(:op, :and)), which now receive a real BooleanExpr.
Two failure modes without this change:
mix deps.update ecto bumps the ecto git dep to 8959c439, which includes the change. Full suite passes (692 tests), along with mix format --check-formatted and mix deps.unlock --check-unused.
🤖 Generated with Claude Code