Skip to content

Commit 455b0a2

Browse files
committed
Combined Hub88 patches
1 parent bc963d3 commit 455b0a2

File tree

9 files changed

+72
-37
lines changed

9 files changed

+72
-37
lines changed

lib/clickhouse_ecto.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ defmodule ClickhouseEcto do
1717
def autogenerate(:binary_id), do: Ecto.UUID.generate()
1818
def autogenerate(type), do: super(type)
1919

20-
def dumpers({:embed, _} = type, _), do: [&Ecto.Adapters.SQL.dump_embed(type, &1)]
20+
def dumpers({:embed, _}, type), do: [&Ecto.Type.embedded_dump(type, &1, :json)]
2121
def dumpers(:binary_id, _type), do: []
2222
def dumpers(:uuid, _type), do: []
2323
def dumpers(ecto_type, type), do: [type, &encode(&1, ecto_type)]
2424

25-
def loaders({:embed, _} = type, _), do: [&Ecto.Adapters.SQL.load_embed(type, &1)]
25+
def loaders({:embed, _}, type), do: [&Ecto.Type.embedded_load(type, &1, :json)]
2626
def loaders(ecto_type, type), do: [&decode(&1, ecto_type), type]
2727

2828
## Migration

lib/clickhouse_ecto/connection.ex

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,16 @@ defmodule ClickhouseEcto.Connection do
1616
DBConnection.child_spec(Clickhousex.Protocol, opts)
1717
end
1818

19+
def query(conn, statment, params, options) do
20+
sql = IO.iodata_to_binary(statment)
21+
Clickhousex.query(conn, sql, params, options) |> query_result()
22+
end
23+
24+
defp query_result({:ok, _query, result}), do: {:ok, result}
25+
defp query_result({:error, _} = error), do: error
26+
27+
def ddl_logs(_), do: []
28+
1929
@doc """
2030
Prepares and executes the given query with `DBConnection`.
2131
"""

lib/clickhouse_ecto/helpers.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,12 @@ defmodule ClickhouseEcto.Helpers do
8888
end
8989

9090
def ecto_to_db({:array, t}), do: "Array(#{ecto_to_db(t)})"
91-
def ecto_to_db(:id), do: "UInt32"
91+
def ecto_to_db(:id), do: "UInt64"
9292
def ecto_to_db(:binary_id), do: "FixedString(36)"
9393
def ecto_to_db(:uuid), do: "FixedString(36)"
9494
def ecto_to_db(:string), do: "String"
9595
def ecto_to_db(:binary), do: "FixedString(4000)"
96-
def ecto_to_db(:integer), do: "Int32"
96+
def ecto_to_db(:integer), do: "Int64"
9797
def ecto_to_db(:bigint), do: "Int64"
9898
def ecto_to_db(:float), do: "Float32"
9999
def ecto_to_db(:decimal), do: "Float64"

lib/clickhouse_ecto/query.ex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ defmodule ClickhouseEcto.Query do
2121
having = QueryString.having(query, sources)
2222
order_by = QueryString.order_by(query, order_by_distinct, sources)
2323
limit = QueryString.limit(query, sources)
24+
combinations = QueryString.combinations(query)
2425
# lock = QueryString.lock(query.lock)
2526

2627
# res = [select, from, join, where, group_by, having, order_by, lock]
2728
# res = [select, from, join, where, group_by, having, order_by, offset | lock]
28-
res = [select, from, join, where, group_by, having, order_by, limit]
29+
res = [select, from, join, where, group_by, having, combinations, order_by, limit]
2930

3031
IO.iodata_to_binary(res)
3132
end

lib/clickhouse_ecto/query_string.ex

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ defmodule ClickhouseEcto.QueryString do
7171
?\s
7272
| Helpers.intersperse_map(joins, ?\s, fn
7373
%JoinExpr{qual: qual, ix: ix, source: source, on: %QueryExpr{expr: on_expr}} ->
74-
{join, _name} = Helpers.get_source(query, sources, ix, source)
75-
["ANY", join_qual(qual), join, " USING ", on_join_expr(on_expr)]
74+
{join, name} = Helpers.get_source(query, sources, ix, source)
75+
[join_qual(qual), join, " AS ", name, " USING ", on_join_expr(on_expr)]
7676
end)
7777
]
7878
end
@@ -96,6 +96,7 @@ defmodule ClickhouseEcto.QueryString do
9696

9797
def join_qual(:inner), do: " INNER JOIN "
9898
def join_qual(:left), do: " LEFT OUTER JOIN "
99+
def join_qual(:right), do: " RIGHT OUTER JOIN "
99100

100101
def where(%Query{wheres: wheres} = query, sources) do
101102
boolean(" WHERE ", wheres, sources, query)
@@ -133,7 +134,11 @@ defmodule ClickhouseEcto.QueryString do
133134

134135
case dir do
135136
:asc -> str
137+
:asc_nulls_last -> [str | " NULLS LAST"]
138+
:asc_nulls_first -> [str | " NULLS FIRST"]
136139
:desc -> [str | " DESC"]
140+
:desc_nulls_last -> [str | " DESC NULLS LAST"]
141+
:desc_nulls_first -> [str | " DESC NULLS FIRST"]
137142
end
138143
end
139144

@@ -148,7 +153,14 @@ defmodule ClickhouseEcto.QueryString do
148153
query,
149154
sources
150155
) do
151-
[" LIMIT ", expr(expr_offset, sources, query), ", ", expr(expr_limit, sources, query)]
156+
[" LIMIT ", expr(expr_limit, sources, query), " OFFSET ", expr(expr_offset, sources, query)]
157+
end
158+
159+
def combinations(%{combinations: combinations}) do
160+
Enum.map(combinations, fn
161+
{:union, query} -> [" UNION (", ClickhouseEcto.Query.all(query), ")"]
162+
{:union_all, query} -> [" UNION ALL (", ClickhouseEcto.Query.all(query), ")"]
163+
end)
152164
end
153165

154166
def boolean(_name, [], _sources, _query), do: []
@@ -268,6 +280,9 @@ defmodule ClickhouseEcto.QueryString do
268280
[left, right] = args
269281
[op_to_binary(left, sources, query), op | op_to_binary(right, sources, query)]
270282

283+
{:fun, fun} when fun in ~w(+ - * /) ->
284+
[?(, Helpers.intersperse_map(args, " #{fun} ", &expr(&1, sources, query)), ?)]
285+
271286
{:fun, fun} ->
272287
[fun, ?(, modifier, Helpers.intersperse_map(args, ", ", &expr(&1, sources, query)), ?)]
273288
end

lib/clickhouse_ecto/storage.ex

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,21 @@ defmodule ClickhouseEcto.Storage do
5757
end
5858

5959
defp run_query(sql, opts) do
60+
{:ok, _} = Application.ensure_all_started(:ecto_sql)
61+
{:ok, _} = Application.ensure_all_started(:clickhousex)
62+
6063
opts =
6164
opts
62-
|> Keyword.drop([:name, :log])
63-
|> Keyword.put(:pool, DBConnection.Connection)
65+
|> Keyword.drop([:name, :log, :pool, :pool_size])
6466
|> Keyword.put(:backoff_type, :stop)
67+
|> Keyword.put(:max_restarts, 0)
6568

6669
{:ok, pid} = Task.Supervisor.start_link()
6770

6871
task =
6972
Task.Supervisor.async_nolink(pid, fn ->
70-
HTTPoison.start()
71-
{:ok, conn} = DBConnection.start_link(Clickhousex.Protocol, opts)
73+
# {:ok, conn} = DBConnection.start_link(Clickhousex.Protocol, opts)
74+
{:ok, conn} = Clickhousex.start_link(opts)
7275
value = ClickhouseEcto.Connection.execute(conn, sql, [], opts)
7376
GenServer.stop(conn)
7477
value

mix.exs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ defmodule ClickhouseEcto.Mixfile do
2424
# Run "mix help deps" to learn about dependencies.
2525
defp deps do
2626
[
27-
{:ecto_sql, "~> 3.0"},
28-
{:clickhousex, "~> 0.5.0"},
27+
{:ecto_sql, "~> 3.4"},
28+
{:clickhousex, git: "[email protected]:coingaming/clickhousex.git"},
2929
{:ex_doc, "~> 0.19", only: :dev},
3030
{:db_connection, "~> 2.0"},
31-
{:credo, "~> 1.5", only: :dev},
31+
{:credo, "~> 1.5", only: :dev}
3232
# {:nicene, "~> 0.4.0", only: :dev}
3333
]
3434
end
@@ -48,12 +48,14 @@ defmodule ClickhouseEcto.Mixfile do
4848
end
4949

5050
defp maintainers do
51-
["Roman Chudov",
52-
"Konstantin Grabar",
53-
"Evgeniy Shurmin",
54-
"Alexey Lukyanov",
55-
"Yaroslav Rogov",
56-
"Ivan Sokolov",
57-
"Georgy Sychev"]
51+
[
52+
"Roman Chudov",
53+
"Konstantin Grabar",
54+
"Evgeniy Shurmin",
55+
"Alexey Lukyanov",
56+
"Yaroslav Rogov",
57+
"Ivan Sokolov",
58+
"Georgy Sychev"
59+
]
5860
end
5961
end

mix.lock

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,33 @@
11
%{
22
"bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm", "7af5c7e09fe1d40f76c8e4f9dd2be7cebd83909f31fee7cd0e9eadc567da8353"},
3+
"castore": {:hex, :castore, "0.1.10", "b01a007416a0ae4188e70b3b306236021b16c11474038ead7aff79dd75538c23", [:mix], [], "hexpm", "a48314e0cb45682db2ea27b8ebfa11bd6fa0a6e21a65e5772ad83ca136ff2665"},
34
"certifi": {:hex, :certifi, "2.5.1", "867ce347f7c7d78563450a18a6a28a8090331e77fa02380b4a21962a65d36ee5", [:rebar3], [{:parse_trans, "~>3.3", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm", "805abd97539caf89ec6d4732c91e62ba9da0cda51ac462380bbd28ee697a8c42"},
4-
"clickhousex": {:hex, :clickhousex, "0.4.0", "4d6e173e4aaffa82ea6f2d86db95686dff2d9f05b9c195d11cc2810178df1ba8", [:mix], [{:db_connection, "~> 2.0.0", [hex: :db_connection, repo: "hexpm", optional: false]}, {:httpoison, "~> 1.5", [hex: :httpoison, repo: "hexpm", optional: false]}, {:jason, "~> 1.1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "6c926434196d7d4d16f85459b0b0e87e7d00bc5eadb28d8080201c728da1840c"},
5-
"connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [:mix], [], "hexpm", "4a0850c9be22a43af9920a71ab17c051f5f7d45c209e40269a1938832510e4d9"},
6-
"credo": {:hex, :credo, "1.2.3", "fbd11a840e45dc42e650401e16acd2a39dde080240b974e146cc65e81ada1cd3", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "3c07d51ff43748bb959752ede70e40557cdcb7d61615e47ae1e9e108e0b1ceec"},
7-
"db_connection": {:hex, :db_connection, "2.2.1", "caee17725495f5129cb7faebde001dc4406796f12a62b8949f4ac69315080566", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}], "hexpm", "2b02ece62d9f983fcd40954e443b7d9e6589664380e5546b2b9b523cd0fb59e1"},
8-
"decimal": {:hex, :decimal, "1.8.1", "a4ef3f5f3428bdbc0d35374029ffcf4ede8533536fa79896dd450168d9acdf3c", [:mix], [], "hexpm", "3cb154b00225ac687f6cbd4acc4b7960027c757a5152b369923ead9ddbca7aec"},
5+
"clickhousex": {:git, "[email protected]:coingaming/clickhousex.git", "10e1af01634977d0fd018b542619279c354d41f2", []},
6+
"connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"},
7+
"credo": {:hex, :credo, "1.5.1", "4fe303cc828412b9d21eed4eab60914c401e71f117f40243266aafb66f30d036", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "0b219ca4dcc89e4e7bc6ae7e6539c313e738e192e10b85275fa1e82b5203ecd7"},
8+
"db_connection": {:hex, :db_connection, "2.4.0", "d04b1b73795dae60cead94189f1b8a51cc9e1f911c234cc23074017c43c031e5", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ad416c21ad9f61b3103d254a71b63696ecadb6a917b36f563921e0de00d7d7c8"},
9+
"decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"},
910
"earmark": {:hex, :earmark, "1.2.5", "4d21980d5d2862a2e13ec3c49ad9ad783ffc7ca5769cf6ff891a4553fbaae761", [:mix], [], "hexpm", "c57508ddad47dfb8038ca6de1e616e66e9b87313220ac5d9817bc4a4dc2257b9"},
10-
"ecto": {:hex, :ecto, "3.3.3", "0830bf3aebcbf3d8c1a1811cd581773b6866886c012f52c0f027031fa96a0b53", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "12e368e3c2a2938d7776defaabdae40e82900fc4d8d66120ec1e01dfd8b93c3a"},
11-
"ecto_sql": {:hex, :ecto_sql, "3.3.4", "aa18af12eb875fbcda2f75e608b3bd534ebf020fc4f6448e4672fcdcbb081244", [:mix], [{:db_connection, "~> 2.2", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.4 or ~> 3.3.3", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.3.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.15.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "5eccbdbf92e3c6f213007a82d5dbba4cd9bb659d1a21331f89f408e4c0efd7a8"},
12-
"ex_doc": {:hex, :ex_doc, "0.19.1", "519bb9c19526ca51d326c060cb1778d4a9056b190086a8c6c115828eaccea6cf", [:mix], [{:earmark, "~> 1.1", [hex: :earmark, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.7", [hex: :makeup_elixir, repo: "hexpm", optional: false]}], "hexpm", "dc87f778d8260da0189a622f62790f6202af72f2f3dee6e78d91a18dd2fcd137"},
11+
"earmark_parser": {:hex, :earmark_parser, "1.4.12", "b245e875ec0a311a342320da0551da407d9d2b65d98f7a9597ae078615af3449", [:mix], [], "hexpm", "711e2cc4d64abb7d566d43f54b78f7dc129308a63bc103fbd88550d2174b3160"},
12+
"ecto": {:hex, :ecto, "3.5.5", "48219a991bb86daba6e38a1e64f8cea540cded58950ff38fbc8163e062281a07", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "98dd0e5e1de7f45beca6130d13116eae675db59adfa055fb79612406acf6f6f1"},
13+
"ecto_sql": {:hex, :ecto_sql, "3.5.3", "1964df0305538364b97cc4661a2bd2b6c89d803e66e5655e4e55ff1571943efd", [:mix], [{:db_connection, "~> 2.2", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.5.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.3.0 or ~> 0.4.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.15.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d2f53592432ce17d3978feb8f43e8dc0705e288b0890caf06d449785f018061c"},
14+
"ex_doc": {:hex, :ex_doc, "0.23.0", "a069bc9b0bf8efe323ecde8c0d62afc13d308b1fa3d228b65bca5cf8703a529d", [:mix], [{:earmark_parser, "~> 1.4.0", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}], "hexpm", "f5e2c4702468b2fd11b10d39416ddadd2fcdd173ba2a0285ebd92c39827a5a16"},
15+
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
1316
"hackney": {:hex, :hackney, "1.15.2", "07e33c794f8f8964ee86cebec1a8ed88db5070e52e904b8f12209773c1036085", [:rebar3], [{:certifi, "2.5.1", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.5", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm", "e0100f8ef7d1124222c11ad362c857d3df7cb5f4204054f9f0f4a728666591fc"},
1417
"httpoison": {:hex, :httpoison, "1.6.2", "ace7c8d3a361cebccbed19c283c349b3d26991eff73a1eaaa8abae2e3c8089b6", [:mix], [{:hackney, "~> 1.15 and >= 1.15.2", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "aa2c74bd271af34239a3948779612f87df2422c2fdcfdbcec28d9c105f0773fe"},
1518
"idna": {:hex, :idna, "6.0.0", "689c46cbcdf3524c44d5f3dde8001f364cd7608a99556d8fbd8239a5798d4c10", [:rebar3], [{:unicode_util_compat, "0.4.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "4bdd305eb64e18b0273864920695cb18d7a2021f31a11b9c5fbcd9a253f936e2"},
16-
"jason": {:hex, :jason, "1.1.2", "b03dedea67a99223a2eaf9f1264ce37154564de899fd3d8b9a21b1a6fd64afe7", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fdf843bca858203ae1de16da2ee206f53416bbda5dc8c9e78f43243de4bc3afe"},
17-
"makeup": {:hex, :makeup, "0.5.1", "966c5c2296da272d42f1de178c1d135e432662eca795d6dc12e5e8787514edf7", [:mix], [{:nimble_parsec, "~> 0.2.2", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "259748a45dfcf5f49765a7c29c9594791c82de23e22d7a3e6e59533fe8e8935b"},
18-
"makeup_elixir": {:hex, :makeup_elixir, "0.8.0", "1204a2f5b4f181775a0e456154830524cf2207cf4f9112215c05e0b76e4eca8b", [:mix], [{:makeup, "~> 0.5.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 0.2.2", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "393d17c5a648e3b30522b2a4743bd1dc3533e1227c8c2823ebe8c3a8e5be5913"},
19+
"jason": {:hex, :jason, "1.2.2", "ba43e3f2709fd1aa1dce90aaabfd039d000469c05c56f0b8e31978e03fa39052", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "18a228f5f0058ee183f29f9eae0805c6e59d61c3b006760668d8d18ff0d12179"},
20+
"makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"},
21+
"makeup_elixir": {:hex, :makeup_elixir, "0.15.0", "98312c9f0d3730fde4049985a1105da5155bfe5c11e47bdc7406d88e01e4219b", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "75ffa34ab1056b7e24844c90bfc62aaf6f3a37a15faa76b07bc5eba27e4a8b4a"},
1922
"metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"},
2023
"mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"},
24+
"mint": {:hex, :mint, "1.3.0", "396b3301102f7b775e103da5a20494b25753aed818d6d6f0ad222a3a018c3600", [:mix], [{:castore, "~> 0.1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "a9aac960562e43ca69a77e5176576abfa78b8398cec5543dd4fb4ab0131d5c1e"},
2125
"nicene": {:hex, :nicene, "0.4.0", "830301b9af05a1bfe506ae842d808f960e15ad93cdd96b231ddffade33af5d70", [:mix], [{:credo, "~> 1.2.0", [hex: :credo, repo: "hexpm", optional: false]}], "hexpm", "21119cb934affd032bc2b026c9a232e7d472e31d37e8749b5839b9d5b4bcd38d"},
22-
"nimble_parsec": {:hex, :nimble_parsec, "0.2.2", "d526b23bdceb04c7ad15b33c57c4526bf5f50aaa70c7c141b4b4624555c68259", [:mix], [], "hexpm", "4ababf5c44164f161872704e1cfbecab3935fdebec66c72905abaad0e6e5cef6"},
26+
"nimble_parsec": {:hex, :nimble_parsec, "1.1.0", "3a6fca1550363552e54c216debb6a9e95bd8d32348938e13de5eda962c0d7f89", [:mix], [], "hexpm", "08eb32d66b706e913ff748f11694b17981c0b04a33ef470e33e11b3d3ac8f54b"},
2327
"parse_trans": {:hex, :parse_trans, "3.3.0", "09765507a3c7590a784615cfd421d101aec25098d50b89d7aa1d66646bc571c1", [:rebar3], [], "hexpm", "17ef63abde837ad30680ea7f857dd9e7ced9476cdd7b0394432af4bfc241b960"},
2428
"poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [], [], "hexpm"},
2529
"poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm", "dad79704ce5440f3d5a3681c8590b9dc25d1a561e8f5a9c995281012860901e3"},
2630
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.5", "6eaf7ad16cb568bb01753dbbd7a95ff8b91c7979482b95f38443fe2c8852a79b", [:make, :mix, :rebar3], [], "hexpm", "13104d7897e38ed7f044c4de953a6c28597d1c952075eb2e328bc6d6f2bfc496"},
27-
"telemetry": {:hex, :telemetry, "0.4.1", "ae2718484892448a24470e6aa341bc847c3277bfb8d4e9289f7474d752c09c7f", [:rebar3], [], "hexpm", "4738382e36a0a9a2b6e25d67c960e40e1a2c95560b9f936d8e29de8cd858480f"},
31+
"telemetry": {:hex, :telemetry, "0.4.2", "2808c992455e08d6177322f14d3bdb6b625fbcfd233a73505870d8738a2f4599", [:rebar3], [], "hexpm", "2d1419bd9dda6a206d7b5852179511722e2b18812310d304620c7bd92a13fcef"},
2832
"unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm", "1d1848c40487cdb0b30e8ed975e34e025860c02e419cb615d255849f3427439d"},
2933
}

test/clickhouse_ecto_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ defmodule ClickhouseEctoTest do
136136
assert all(query) == ~s{SELECT 'TRUE' FROM "schema" AS s0 LIMIT 3}
137137

138138
query = Schema |> offset([r], 5) |> limit([r], 3) |> select([], true) |> normalize
139-
assert all(query) == ~s{SELECT 'TRUE' FROM "schema" AS s0 LIMIT 5, 3}
139+
assert all(query) == ~s{SELECT 'TRUE' FROM "schema" AS s0 LIMIT 3 OFFSET 5}
140140
end
141141

142142
test "string escape" do
@@ -319,7 +319,7 @@ defmodule ClickhouseEctoTest do
319319
result =
320320
~s{SELECT s0."id", ? FROM "schema" AS s0 } <>
321321
~s{WHERE (?) AND (?) GROUP BY ?, ? HAVING (?) AND (?) } <>
322-
~s{ORDER BY ?, s0."x" LIMIT ?, ?}
322+
~s{ORDER BY ?, s0."x" LIMIT ? OFFSET ?}
323323

324324
assert all(query) == String.trim(result)
325325
end

0 commit comments

Comments
 (0)