mirror of
https://github.com/ash-project/ash_sqlite.git
synced 2024-09-20 05:13:19 +12:00
parent
3cd1de1006
commit
09c6a850f5
2 changed files with 12 additions and 10 deletions
|
@ -168,6 +168,10 @@ defmodule AshSqlite.SqlImplementation do
|
||||||
type
|
type
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def parameterized_type({:parameterized, _} = type, _, _) do
|
||||||
|
type
|
||||||
|
end
|
||||||
|
|
||||||
def parameterized_type({:in, type}, constraints, no_maps?) do
|
def parameterized_type({:in, type}, constraints, no_maps?) do
|
||||||
parameterized_type({:array, type}, constraints, no_maps?)
|
parameterized_type({:array, type}, constraints, no_maps?)
|
||||||
end
|
end
|
||||||
|
@ -202,7 +206,7 @@ defmodule AshSqlite.SqlImplementation do
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if is_atom(type) && :erlang.function_exported(type, :type, 1) do
|
if is_atom(type) && :erlang.function_exported(type, :type, 1) do
|
||||||
{:parameterized, type, constraints || []}
|
Ecto.ParameterizedType.init(type, constraints)
|
||||||
else
|
else
|
||||||
type
|
type
|
||||||
end
|
end
|
||||||
|
@ -314,7 +318,7 @@ defmodule AshSqlite.SqlImplementation do
|
||||||
else
|
else
|
||||||
type =
|
type =
|
||||||
if is_atom(type) && :erlang.function_exported(type, :type, 1) do
|
if is_atom(type) && :erlang.function_exported(type, :type, 1) do
|
||||||
{:parameterized, type, []} |> array_to_in()
|
parameterized_type(type, constraints, true) |> array_to_in()
|
||||||
else
|
else
|
||||||
type |> array_to_in()
|
type |> array_to_in()
|
||||||
end
|
end
|
||||||
|
@ -333,9 +337,6 @@ defmodule AshSqlite.SqlImplementation do
|
||||||
|
|
||||||
defp array_to_in({:array, v}), do: {:in, array_to_in(v)}
|
defp array_to_in({:array, v}), do: {:in, array_to_in(v)}
|
||||||
|
|
||||||
defp array_to_in({:parameterized, type, constraints}),
|
|
||||||
do: {:parameterized, array_to_in(type), constraints}
|
|
||||||
|
|
||||||
defp array_to_in(v), do: v
|
defp array_to_in(v), do: v
|
||||||
|
|
||||||
defp vagueness({:in, type}), do: vagueness(type)
|
defp vagueness({:in, type}), do: vagueness(type)
|
||||||
|
|
|
@ -7,6 +7,10 @@ defmodule AshSqlite.Types do
|
||||||
type
|
type
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def parameterized_type({:parameterized, _} = type, _) do
|
||||||
|
type
|
||||||
|
end
|
||||||
|
|
||||||
def parameterized_type({:in, type}, constraints) do
|
def parameterized_type({:in, type}, constraints) do
|
||||||
parameterized_type({:array, type}, constraints)
|
parameterized_type({:array, type}, constraints)
|
||||||
end
|
end
|
||||||
|
@ -40,7 +44,7 @@ defmodule AshSqlite.Types do
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if is_atom(type) && :erlang.function_exported(type, :type, 1) do
|
if is_atom(type) && :erlang.function_exported(type, :type, 1) do
|
||||||
{:parameterized, type, constraints || []}
|
parameterized_type(type, constraints || [])
|
||||||
else
|
else
|
||||||
type
|
type
|
||||||
end
|
end
|
||||||
|
@ -151,7 +155,7 @@ defmodule AshSqlite.Types do
|
||||||
else
|
else
|
||||||
type =
|
type =
|
||||||
if is_atom(type) && :erlang.function_exported(type, :type, 1) do
|
if is_atom(type) && :erlang.function_exported(type, :type, 1) do
|
||||||
{:parameterized, type, []} |> array_to_in()
|
parameterized_type(type, []) |> array_to_in()
|
||||||
else
|
else
|
||||||
type |> array_to_in()
|
type |> array_to_in()
|
||||||
end
|
end
|
||||||
|
@ -170,9 +174,6 @@ defmodule AshSqlite.Types do
|
||||||
|
|
||||||
defp array_to_in({:array, v}), do: {:in, array_to_in(v)}
|
defp array_to_in({:array, v}), do: {:in, array_to_in(v)}
|
||||||
|
|
||||||
defp array_to_in({:parameterized, type, constraints}),
|
|
||||||
do: {:parameterized, array_to_in(type), constraints}
|
|
||||||
|
|
||||||
defp array_to_in(v), do: v
|
defp array_to_in(v), do: v
|
||||||
|
|
||||||
defp vagueness({:in, type}), do: vagueness(type)
|
defp vagueness({:in, type}), do: vagueness(type)
|
||||||
|
|
Loading…
Reference in a new issue