Skip to content

Commit 90f6b8b

Browse files
committed
Make decode function behave similar to myxql
I personally believe this is incorrect to handle decode / encode this way, but upstream in myxql and postgrex this is how it is handled. Rather than fight that issue, I will instead make it behave similarly. Fixes #158
1 parent 9b03747 commit 90f6b8b

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

lib/ecto/adapters/sqlite3/codec.ex

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,23 @@
11
defmodule Ecto.Adapters.SQLite3.Codec do
22
@moduledoc false
33

4-
def bool_decode(nil), do: {:ok, nil}
54
def bool_decode(0), do: {:ok, false}
65
def bool_decode("0"), do: {:ok, false}
76
def bool_decode("FALSE"), do: {:ok, false}
87
def bool_decode(1), do: {:ok, true}
98
def bool_decode("1"), do: {:ok, true}
109
def bool_decode("TRUE"), do: {:ok, true}
11-
def bool_decode(_), do: :error
10+
def bool_decode(v), do: {:ok, v}
1211

13-
def json_decode(nil), do: {:ok, nil}
14-
15-
def json_decode(x) when is_binary(x) do
16-
Application.get_env(:ecto_sqlite3, :json_library, Jason).decode(x)
12+
def json_decode(v) when is_binary(v) do
13+
Application.get_env(:ecto_sqlite3, :json_library, Jason).decode(v)
1714
end
1815

19-
def json_decode(_), do: :error
16+
def json_decode(v), do: {:ok, v}
2017

21-
def float_decode(nil), do: {:ok, nil}
2218
def float_decode(%Decimal{} = decimal), do: {:ok, Decimal.to_float(decimal)}
2319
def float_decode(x) when is_integer(x), do: {:ok, x / 1}
24-
def float_decode(_), do: :error
20+
def float_decode(x), do: {:ok, x}
2521

2622
def decimal_decode(nil), do: {:ok, nil}
2723

0 commit comments

Comments
 (0)