Skip to content

Commit 35f88a9

Browse files
committed
basic query building
1 parent 53d321a commit 35f88a9

2 files changed

Lines changed: 5 additions & 8 deletions

File tree

lib/ecto/adapters/clickhouse/connection.ex

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -678,14 +678,11 @@ defmodule Ecto.Adapters.ClickHouse.Connection do
678678

679679
defp expr({:in, _, [_, {:^, _, [_ix, 0]}]}, _sources, _params, _query), do: "0"
680680

681-
# Handle IN with pinned array parameter - use single array param instead of expanding
682681
defp expr({:in, _, [left, {:^, _, [ix, len]}]}, sources, params, query) when len > 0 do
683-
# Collect all the individual params into a single array
684-
array_values = Enum.map(ix..(ix + len - 1), &Enum.at(params, &1))
685-
p = build_param(ix, array_values)
686-
binding() |> dbg
682+
array_values = Enum.at(params, ix)
683+
param = build_param(ix, array_values)
687684

688-
[expr(left, sources, params, query), " IN ", p]
685+
[expr(left, sources, params, query), " IN ", param]
689686
end
690687

691688
defp expr({:in, _, [left, right]}, sources, params, query) do

test/ecto/adapters/clickhouse/connection_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,15 +1019,15 @@ defmodule Ecto.Adapters.ClickHouse.ConnectionTest do
10191019
assert all(query) == ~s[SELECT 0 FROM "schema" AS s0]
10201020

10211021
query = Schema |> select([e], 1 in ^[1, 2, 3])
1022-
assert all(query) == ~s[SELECT 1 IN ({$0:Int64},{$1:Int64},{$2:Int64}) FROM "schema" AS s0]
1022+
assert all(query) == ~s[SELECT 1 IN {$0:Array(Int64)} FROM "schema" AS s0]
10231023

10241024
query = Schema |> select([e], 1 in [1, ^2, 3])
10251025
assert all(query) == ~s[SELECT 1 IN (1,{$0:Int64},3) FROM "schema" AS s0]
10261026

10271027
query = Schema |> select([e], e.x == ^0 or e.x in ^[1, 2, 3] or e.x == ^4)
10281028

10291029
assert all(query) ==
1030-
~s[SELECT (s0."x" = {$0:Int64}) OR (s0."x" IN ({$1:Int64},{$2:Int64},{$3:Int64})) OR (s0."x" = {$4:Int64}) FROM "schema" AS s0]
1030+
~s[SELECT (s0."x" = {$0:Int64}) OR (s0."x" IN {$1:Array(Int64)}) OR (s0."x" = {$2:Int64}) FROM "schema" AS s0]
10311031

10321032
query = Schema |> select([e], e in [1, 2, 3])
10331033

0 commit comments

Comments
 (0)