Size: a a a

2019 March 01

IA

Ivan Ananev in pro.elixir
ну вы поняли
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Так это же пиздец
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Enum.to_list загрузит все в память
источник

IA

Ivan Ananev in pro.elixir
ну вот я бы лучше через оффсеты пошел с рекурсией
источник

IA

Ivan Ananev in pro.elixir
там как то проще/ хз как этот stream в Repo работает
источник

IA

Ivan Ananev in pro.elixir
хотя вроде можно так http://joeellis.la/streaming-with-ecto/
источник

FM

Fey Martynov in pro.elixir
стрим работает через курсор
источник

NP

Nicolae Paraschiva in pro.elixir
Ivan Ananev
query  = from(n in Foo, select: n, preload: [bar: :baz])
stream = Repo.stream(query, max_rows: 1)

Repo.transaction(fn() ->
 Enum.to_list(stream)
 |> your_method_with_row()
нет разницы (
источник

NP

Nicolae Paraschiva in pro.elixir
Enum.to_list(stream) уже возвращает все
источник

FM

Fey Martynov in pro.elixir
stream |> Stream.map(fn batch -> … end)
источник

FM

Fey Martynov in pro.elixir
ну и там потом его ещё запустить надо. либо stream |> Stream.map(fn batch -> … end) |> Enum.to_list(), если хочешь все результаты получить списком, либо stream |> Stream.map(fn batch -> … end) |> Stream.run(), если только сайд эффект нужен
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Откуда он возьмет batch_size?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Брать по одной записи, даже через курсор - не выглядит эффективно
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А, ну ясно откуда
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Он при первом резолве скачает сразу 500 в память, но вернет только одну
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Только не fn batch а fn record тогда
источник

ŹR

Źmićer Rubinštejn in pro.elixir
И все это внутри транзакции
источник

NP

Nicolae Paraschiva in pro.elixir
Спасибо :)
источник

ŹR

Źmićer Rubinštejn in pro.elixir
И max_rows: 1 убери
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А то смысла нету в таких курсорах)
источник