Skip to content

Commit a5bd731

Browse files
Fix unit tests for OTP 26 (#567)
1 parent dd95050 commit a5bd731

10 files changed

Lines changed: 218 additions & 116 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
- elixir: 1.15.6
1414
otp: 24.3.4.13
1515
- elixir: 1.15.6
16-
otp: 25.3.2.6
16+
otp: 26.1.2
1717
lint: lint
1818
steps:
1919
- name: Checkout

lib/ecto/adapters/myxql/connection.ex

Lines changed: 26 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ if Code.ensure_loaded?(MyXQL) do
192192
defp on_conflict({fields, _, []}, _header) when is_list(fields) do
193193
[
194194
" ON DUPLICATE KEY UPDATE "
195-
| intersperse_map(fields, ?,, fn field ->
195+
| Enum.map_intersperse(fields, ?,, fn field ->
196196
quoted = quote_name(field)
197197
[quoted, " = VALUES(", quoted, ?)]
198198
end)
@@ -213,8 +213,8 @@ if Code.ensure_loaded?(MyXQL) do
213213
defp insert_all(rows) when is_list(rows) do
214214
[
215215
"VALUES ",
216-
intersperse_map(rows, ?,, fn row ->
217-
[?(, intersperse_map(row, ?,, &insert_all_value/1), ?)]
216+
Enum.map_intersperse(rows, ?,, fn row ->
217+
[?(, Enum.map_intersperse(row, ?,, &insert_all_value/1), ?)]
218218
end)
219219
]
220220
end
@@ -229,10 +229,10 @@ if Code.ensure_loaded?(MyXQL) do
229229

230230
@impl true
231231
def update(prefix, table, fields, filters, _returning) do
232-
fields = intersperse_map(fields, ", ", &[quote_name(&1), " = ?"])
232+
fields = Enum.map_intersperse(fields, ", ", &[quote_name(&1), " = ?"])
233233

234234
filters =
235-
intersperse_map(filters, " AND ", fn
235+
Enum.map_intersperse(filters, " AND ", fn
236236
{field, nil} ->
237237
[quote_name(field), " IS NULL"]
238238

@@ -246,7 +246,7 @@ if Code.ensure_loaded?(MyXQL) do
246246
@impl true
247247
def delete(prefix, table, filters, _returning) do
248248
filters =
249-
intersperse_map(filters, " AND ", fn
249+
Enum.map_intersperse(filters, " AND ", fn
250250
{field, nil} ->
251251
[quote_name(field), " IS NULL"]
252252

@@ -330,7 +330,7 @@ if Code.ensure_loaded?(MyXQL) do
330330
do: "TRUE"
331331

332332
defp select(fields, sources, query) do
333-
intersperse_map(fields, ", ", fn
333+
Enum.map_intersperse(fields, ", ", fn
334334
{:&, _, [idx]} ->
335335
case elem(sources, idx) do
336336
{nil, source, nil} ->
@@ -367,7 +367,7 @@ if Code.ensure_loaded?(MyXQL) do
367367
defp cte(%{with_ctes: %WithExpr{queries: [_ | _]}} = query, sources) do
368368
%{with_ctes: with} = query
369369
recursive_opt = if with.recursive, do: "RECURSIVE ", else: ""
370-
ctes = intersperse_map(with.queries, ", ", &cte_expr(&1, sources, query))
370+
ctes = Enum.map_intersperse(with.queries, ", ", &cte_expr(&1, sources, query))
371371
["WITH ", recursive_opt, ctes, " "]
372372
end
373373

@@ -442,7 +442,7 @@ if Code.ensure_loaded?(MyXQL) do
442442

443443
defp using_join(%{joins: joins} = query, kind, sources) do
444444
froms =
445-
intersperse_map(joins, ", ", fn
445+
Enum.map_intersperse(joins, ", ", fn
446446
%JoinExpr{source: %Ecto.SubQuery{params: [_ | _]}} ->
447447
error!(
448448
query,
@@ -511,8 +511,8 @@ if Code.ensure_loaded?(MyXQL) do
511511
defp group_by(%{group_bys: group_bys} = query, sources) do
512512
[
513513
" GROUP BY "
514-
| intersperse_map(group_bys, ", ", fn %QueryExpr{expr: expr} ->
515-
intersperse_map(expr, ", ", &expr(&1, sources, query))
514+
| Enum.map_intersperse(group_bys, ", ", fn %QueryExpr{expr: expr} ->
515+
Enum.map_intersperse(expr, ", ", &expr(&1, sources, query))
516516
end)
517517
]
518518
end
@@ -522,22 +522,22 @@ if Code.ensure_loaded?(MyXQL) do
522522
defp window(%{windows: windows} = query, sources) do
523523
[
524524
" WINDOW "
525-
| intersperse_map(windows, ", ", fn {name, %{expr: kw}} ->
525+
| Enum.map_intersperse(windows, ", ", fn {name, %{expr: kw}} ->
526526
[quote_name(name), " AS " | window_exprs(kw, sources, query)]
527527
end)
528528
]
529529
end
530530

531531
defp window_exprs(kw, sources, query) do
532-
[?(, intersperse_map(kw, ?\s, &window_expr(&1, sources, query)), ?)]
532+
[?(, Enum.map_intersperse(kw, ?\s, &window_expr(&1, sources, query)), ?)]
533533
end
534534

535535
defp window_expr({:partition_by, fields}, sources, query) do
536-
["PARTITION BY " | intersperse_map(fields, ", ", &expr(&1, sources, query))]
536+
["PARTITION BY " | Enum.map_intersperse(fields, ", ", &expr(&1, sources, query))]
537537
end
538538

539539
defp window_expr({:order_by, fields}, sources, query) do
540-
["ORDER BY " | intersperse_map(fields, ", ", &order_by_expr(&1, sources, query))]
540+
["ORDER BY " | Enum.map_intersperse(fields, ", ", &order_by_expr(&1, sources, query))]
541541
end
542542

543543
defp window_expr({:frame, {:fragment, _, _} = fragment}, sources, query) do
@@ -549,8 +549,8 @@ if Code.ensure_loaded?(MyXQL) do
549549
defp order_by(%{order_bys: order_bys} = query, sources) do
550550
[
551551
" ORDER BY "
552-
| intersperse_map(order_bys, ", ", fn %QueryExpr{expr: expr} ->
553-
intersperse_map(expr, ", ", &order_by_expr(&1, sources, query))
552+
| Enum.map_intersperse(order_bys, ", ", fn %QueryExpr{expr: expr} ->
553+
Enum.map_intersperse(expr, ", ", &order_by_expr(&1, sources, query))
554554
end)
555555
]
556556
end
@@ -654,7 +654,7 @@ if Code.ensure_loaded?(MyXQL) do
654654
end
655655

656656
defp expr({:in, _, [left, right]}, sources, query) when is_list(right) do
657-
args = intersperse_map(right, ?,, &expr(&1, sources, query))
657+
args = Enum.map_intersperse(right, ?,, &expr(&1, sources, query))
658658
[expr(left, sources, query), " IN (", args, ?)]
659659
end
660660

@@ -759,7 +759,7 @@ if Code.ensure_loaded?(MyXQL) do
759759
end
760760

761761
defp expr({:{}, _, elems}, sources, query) do
762-
[?(, intersperse_map(elems, ?,, &expr(&1, sources, query)), ?)]
762+
[?(, Enum.map_intersperse(elems, ?,, &expr(&1, sources, query)), ?)]
763763
end
764764

765765
defp expr({:count, _, []}, _sources, _query), do: "count(*)"
@@ -790,7 +790,7 @@ if Code.ensure_loaded?(MyXQL) do
790790
[op_to_binary(left, sources, query), op | op_to_binary(right, sources, query)]
791791

792792
{:fun, fun} ->
793-
[fun, ?(, modifier, intersperse_map(args, ", ", &expr(&1, sources, query)), ?)]
793+
[fun, ?(, modifier, Enum.map_intersperse(args, ", ", &expr(&1, sources, query)), ?)]
794794
end
795795
end
796796

@@ -847,14 +847,14 @@ if Code.ensure_loaded?(MyXQL) do
847847

848848
[
849849
"VALUES ",
850-
intersperse_map(rows, ?,, fn _ ->
850+
Enum.map_intersperse(rows, ?,, fn _ ->
851851
["ROW(", values_expr(types, query), ?)]
852852
end)
853853
]
854854
end
855855

856856
defp values_expr(types, query) do
857-
intersperse_map(types, ?,, fn {_field, type} ->
857+
Enum.map_intersperse(types, ?,, fn {_field, type} ->
858858
["CAST(", ??, " AS ", ecto_cast_to_db(type, query), ?)]
859859
end)
860860
end
@@ -989,7 +989,7 @@ if Code.ensure_loaded?(MyXQL) do
989989
quote_table(index.prefix, index.table),
990990
?\s,
991991
?(,
992-
intersperse_map(index.columns, ", ", &index_expr/1),
992+
Enum.map_intersperse(index.columns, ", ", &index_expr/1),
993993
?),
994994
if_do(index.using, [" USING ", to_string(index.using)]),
995995
if_do(index.concurrently, " LOCK=NONE")
@@ -1097,7 +1097,7 @@ if Code.ensure_loaded?(MyXQL) do
10971097
end
10981098

10991099
defp column_definitions(table, columns) do
1100-
intersperse_map(columns, ", ", &column_definition(table, &1))
1100+
Enum.map_intersperse(columns, ", ", &column_definition(table, &1))
11011101
end
11021102

11031103
defp column_definition(table, {:add, name, %Reference{} = ref, opts}) do
@@ -1115,7 +1115,7 @@ if Code.ensure_loaded?(MyXQL) do
11151115
end
11161116

11171117
defp column_changes(table, columns) do
1118-
intersperse_map(columns, ", ", &column_change(table, &1))
1118+
Enum.map_intersperse(columns, ", ", &column_change(table, &1))
11191119
end
11201120

11211121
defp column_change(_table, {_command, _name, %Reference{validate: false}, _opts}) do
@@ -1390,7 +1390,7 @@ if Code.ensure_loaded?(MyXQL) do
13901390
[?`, name, ?`]
13911391
end
13921392

1393-
defp quote_names(names), do: intersperse_map(names, ?,, &quote_name/1)
1393+
defp quote_names(names), do: Enum.map_intersperse(names, ?,, &quote_name/1)
13941394

13951395
defp quote_table(nil, name), do: quote_table(name)
13961396
defp quote_table(prefix, name), do: [quote_table(prefix), ?., quote_table(name)]
@@ -1409,17 +1409,6 @@ if Code.ensure_loaded?(MyXQL) do
14091409
defp format_to_sql(:map), do: "FORMAT=JSON"
14101410
defp format_to_sql(:text), do: "FORMAT=TRADITIONAL"
14111411

1412-
defp intersperse_map(list, separator, mapper, acc \\ [])
1413-
1414-
defp intersperse_map([], _separator, _mapper, acc),
1415-
do: acc
1416-
1417-
defp intersperse_map([elem], _separator, mapper, acc),
1418-
do: [acc | mapper.(elem)]
1419-
1420-
defp intersperse_map([elem | rest], separator, mapper, acc),
1421-
do: intersperse_map(rest, separator, mapper, [acc, mapper.(elem), separator])
1422-
14231412
defp if_do(condition, value) do
14241413
if condition, do: value, else: []
14251414
end

0 commit comments

Comments
 (0)