Skip to content

Commit 949f596

Browse files
committed
Merge remote-tracking branch 'mbenatti/ecto-2.1' into ecto-2.1
2 parents bebe1cc + 07caef9 commit 949f596

3 files changed

Lines changed: 30 additions & 20 deletions

File tree

lib/mongo_ecto.ex

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,8 @@ defmodule Mongo.Ecto do
377377
@doc false
378378
def __pool__, do: {unquote(pool_name), unquote(Macro.escape(norm_config))}
379379

380+
def in_transaction?, do: false
381+
380382
defoverridable [__pool__: 0]
381383
end
382384
end
@@ -426,13 +428,14 @@ defmodule Mongo.Ecto do
426428
end
427429

428430
@doc false
429-
def loaders(:time, type), do: [&load_time/1, type]
430-
def loaders(:date, type), do: [&load_date/1, type]
431-
def loaders(:datetime, type), do: [&load_datetime/1, type]
432-
def loaders(:binary_id, type), do: [&load_objectid/1, type]
433-
def loaders(:uuid, type), do: [&load_binary/1, type]
434-
def loaders(:binary, type), do: [&load_binary/1, type]
435-
def loaders(_base, type), do: [type]
431+
def loaders(:time, type), do: [&load_time/1, type]
432+
def loaders(:date, type), do: [&load_date/1, type]
433+
def loaders(:utc_datetime, type), do: [&load_datetime/1, type]
434+
def loaders(:naive_datetime, type), do: [&load_datetime/1, type]
435+
def loaders(:binary_id, type), do: [&load_objectid/1, type]
436+
def loaders(:uuid, type), do: [&load_binary/1, type]
437+
def loaders(:binary, type), do: [&load_binary/1, type]
438+
def loaders(_base, type), do: [type]
436439

437440
defp load_time(%BSON.DateTime{} = time) do
438441
{{_,_,_}, time} = BSON.DateTime.to_datetime(time)
@@ -469,13 +472,14 @@ defmodule Mongo.Ecto do
469472
defp load_objectid(_), do: :error
470473

471474
@doc false
472-
def dumpers(:time, type), do: [type, &dump_time/1]
473-
def dumpers(:date, type), do: [type, &dump_date/1]
474-
def dumpers(:datetime, type), do: [type, &dump_datetime/1]
475-
def dumpers(:binary_id, type), do: [type, &dump_objectid/1]
476-
def dumpers(:uuid, type), do: [type, &dump_binary(&1, :uuid)]
477-
def dumpers(:binary, type), do: [type, &dump_binary(&1, :generic)]
478-
def dumpers(_base, type), do: [type]
475+
def dumpers(:time, type), do: [type, &dump_time/1]
476+
def dumpers(:date, type), do: [type, &dump_date/1]
477+
def dumpers(:utc_datetime, type), do: [type, &dump_datetime/1]
478+
def dumpers(:naive_datetime, type), do: [type, &dump_datetime/1]
479+
def dumpers(:binary_id, type), do: [type, &dump_objectid/1]
480+
def dumpers(:uuid, type), do: [type, &dump_binary(&1, :uuid)]
481+
def dumpers(:binary, type), do: [type, &dump_binary(&1, :generic)]
482+
def dumpers(_base, type), do: [type]
479483

480484
defp dump_time({_, _, _, _} = time),
481485
do: {:ok, BSON.DateTime.from_datetime({{0, 0, 0}, time})}
@@ -537,13 +541,13 @@ defmodule Mongo.Ecto do
537541
end
538542

539543
@doc false
540-
def insert(_repo, meta, _params, [_|_] = returning, _opts) do
544+
def insert(_repo, meta, _params, _on_conflict, [_|_] = returning, _opts) do
541545
raise ArgumentError,
542546
"MongoDB adapter does not support :read_after_writes in models. " <>
543547
"The following fields in #{inspect meta.schema} are tagged as such: #{inspect returning}"
544548
end
545549

546-
def insert(repo, meta, params, [], opts) do
550+
def insert(repo, meta, params, _, [], opts) do
547551
normalized = NormalizedQuery.insert(meta, params)
548552

549553
case Connection.insert(repo, normalized, opts) do
@@ -554,7 +558,7 @@ defmodule Mongo.Ecto do
554558
end
555559
end
556560

557-
def insert_all(repo, meta, fields, params, returning, opts) do
561+
def insert_all(repo, meta, fields, params, _, returning, opts) do
558562
normalized = NormalizedQuery.insert(meta, params)
559563

560564
case Connection.insert_all(repo, normalized, opts) do
@@ -711,6 +715,12 @@ defmodule Mongo.Ecto do
711715
end
712716
end
713717

718+
#
719+
# Transaction callbacks
720+
#
721+
722+
def in_transaction?(_repo), do: false
723+
714724
## Mongo specific calls
715725

716726
@doc """

lib/mongo_ecto/normalized_query.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ defmodule Mongo.Ecto.NormalizedQuery do
225225

226226
defp query(%Query{wheres: wheres} = query, params, {_coll, _model, pk}) do
227227
wheres
228-
|> Enum.map(fn %Query.QueryExpr{expr: expr} ->
228+
|> Enum.map(fn %Query.BooleanExpr{expr: expr} ->
229229
pair(expr, params, pk, query, "where clause")
230230
end)
231231
|> :lists.flatten

test/mongo_ecto/normalized_query_new_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ defmodule Mongo.Ecto.NormalizedQueryNewTest do
4444
end
4545

4646
defp normalize(query, operation \\ :all) do
47-
{query, params, _key} = Ecto.Query.Planner.prepare(query, operation, Mongo.Ecto)
48-
query = Ecto.Query.Planner.normalize(query, operation, Mongo.Ecto)
47+
{query, params, _key} = Ecto.Query.Planner.prepare(query, operation, Mongo.Ecto, 0)
48+
query = Ecto.Query.Planner.normalize(query, operation, Mongo.Ecto, 0)
4949
apply(Mongo.Ecto.NormalizedQuery, operation, [query, params])
5050
end
5151

0 commit comments

Comments
 (0)