Skip to content

Commit b11e433

Browse files
authored
Revert "Revert "Ecto 3.12: Add Query.ByExpr structs next to the old Query.Que…" (#202)
This reverts commit f4f49eb.
1 parent 1cc91b0 commit b11e433

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed

Diff for: .github/workflows/ci.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
with:
1818
otp-version: ${{ matrix.otpElixir.otp }}
1919
elixir-version: ${{ matrix.otpElixir.elixir }}
20-
- uses: actions/cache@v2
20+
- uses: actions/cache@v3
2121
with:
2222
path: |
2323
deps
@@ -57,7 +57,7 @@ jobs:
5757
with:
5858
otp-version: ${{ matrix.otpElixir.otp }}
5959
elixir-version: ${{ matrix.otpElixir.elixir }}
60-
- uses: actions/cache@v2
60+
- uses: actions/cache@v3
6161
with:
6262
path: |
6363
deps

Diff for: lib/mongo_ecto/normalized_query.ex

+21-7
Original file line numberDiff line numberDiff line change
@@ -769,19 +769,30 @@ defmodule Mongo.Ecto.NormalizedQuery do
769769

770770
defp order(%Query{order_bys: order_bys} = query, {_coll, _model, pk}) do
771771
order_bys
772-
|> Enum.flat_map(fn %Query.QueryExpr{expr: expr} ->
773-
Enum.map(expr, &order_by_expr(&1, pk, query))
772+
|> Enum.flat_map(fn
773+
%Query.QueryExpr{expr: expr} ->
774+
Enum.map(expr, &order_by_expr(&1, pk, query))
775+
776+
%Query.ByExpr{expr: expr} ->
777+
Enum.map(expr, &order_by_expr(&1, pk, query))
774778
end)
775779
|> map_unless_empty
776780
end
777781

778782
defp command(:update, %Query{updates: updates} = query, params, {_coll, _model, pk}) do
779783
updates
780-
|> Enum.flat_map(fn %Query.QueryExpr{expr: expr} ->
781-
Enum.map(expr, fn {key, value} ->
782-
value = value |> value(params, pk, query, "update clause")
783-
{update_op(key, query), value}
784-
end)
784+
|> Enum.flat_map(fn
785+
%Query.QueryExpr{expr: expr} ->
786+
Enum.map(expr, fn {key, value} ->
787+
value = value |> value(params, pk, query, "update clause")
788+
{update_op(key, query), value}
789+
end)
790+
791+
%Query.ByExpr{expr: expr} ->
792+
Enum.map(expr, fn {key, value} ->
793+
value = value |> value(params, pk, query, "update clause")
794+
{update_op(key, query), value}
795+
end)
785796
end)
786797
|> merge_keys(query, "update clause")
787798
end
@@ -892,6 +903,9 @@ defmodule Mongo.Ecto.NormalizedQuery do
892903
defp offset_limit(%Query.QueryExpr{expr: expr}, params, pk, query, where),
893904
do: value(expr, params, pk, query, where)
894905

906+
defp offset_limit(%Query.ByExpr{expr: expr}, params, pk, query, where),
907+
do: value(expr, params, pk, query, where)
908+
895909
defp offset_limit(%Query.LimitExpr{expr: expr}, params, pk, query, where),
896910
do: value(expr, params, pk, query, where)
897911

Diff for: mix.exs

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ defmodule Mongo.Ecto.Mixfile do
2929
[
3030
{:credo, "~> 1.5.6", only: [:dev, :test], runtime: false},
3131
{:dialyxir, "~> 1.1.0", only: :dev, runtime: false},
32-
{:ecto, "~> 3.10"},
32+
{:ecto, "~> 3.12"},
3333
{:ex_doc, ">= 0.0.0", only: :dev, runtime: false},
3434
{:excoveralls, "~> 0.16", only: :test},
3535
{:mongodb_driver, "~> 1.4"},

Diff for: mix.lock

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
"decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"},
77
"dialyxir": {:hex, :dialyxir, "1.1.0", "c5aab0d6e71e5522e77beff7ba9e08f8e02bad90dfbeffae60eaf0cb47e29488", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "07ea8e49c45f15264ebe6d5b93799d4dd56a44036cf42d0ad9c960bc266c0b9a"},
88
"earmark_parser": {:hex, :earmark_parser, "1.4.18", "e1b2be73eb08a49fb032a0208bf647380682374a725dfb5b9e510def8397f6f2", [:mix], [], "hexpm", "114a0e85ec3cf9e04b811009e73c206394ffecfcc313e0b346de0d557774ee97"},
9-
"ecto": {:hex, :ecto, "3.11.1", "4b4972b717e7ca83d30121b12998f5fcdc62ba0ed4f20fd390f16f3270d85c3e", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ebd3d3772cd0dfcd8d772659e41ed527c28b2a8bde4b00fe03e0463da0f1983b"},
9+
"ecto": {:hex, :ecto, "3.12.5", "4a312960ce612e17337e7cefcf9be45b95a3be6b36b6f94dfb3d8c361d631866", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "6eb18e80bef8bb57e17f5a7f068a1719fbda384d40fc37acb8eb8aeca493b6ea"},
1010
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
1111
"ex_doc": {:hex, :ex_doc, "0.26.0", "1922164bac0b18b02f84d6f69cab1b93bc3e870e2ad18d5dacb50a9e06b542a3", [:mix], [{:earmark_parser, "~> 1.4.0", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "2775d66e494a9a48355db7867478ffd997864c61c65a47d31c4949459281c78d"},
1212
"excoveralls": {:hex, :excoveralls, "0.16.0", "41f4cfbf7caaa3bc2cf411db6f89c1f53afedf0f1fe8debac918be1afa19c668", [:mix], [{:hackney, "~> 1.16", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "401205356482ab99fb44d9812cd14dd83b65de8e7ae454697f8b34ba02ecd916"},
1313
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
1414
"hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~>2.9.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~>6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~>1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~>1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"},
1515
"idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"},
16-
"jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"},
16+
"jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"},
1717
"makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"},
1818
"makeup_elixir": {:hex, :makeup_elixir, "0.15.2", "dc72dfe17eb240552857465cc00cce390960d9a0c055c4ccd38b70629227e97c", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "fd23ae48d09b32eff49d4ced2b43c9f086d402ee4fd4fcb2d7fad97fa8823e75"},
1919
"makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"},

0 commit comments

Comments
 (0)