Current section
Files
Jump to
Current section
Files
lib/sqlite_db_connection/stream.ex
defmodule Sqlite.DbConnection.Stream do
@moduledoc false
defstruct [:conn, :query, :params, :options, max_rows: 500]
@type t :: %Sqlite.DbConnection.Stream{}
end
defimpl Enumerable, for: Sqlite.DbConnection.Stream do
alias Sqlite.DbConnection.Query
def reduce(%Sqlite.DbConnection.Stream{query: statement,
conn: conn,
params: params,
options: opts}, acc, fun)
when is_binary(statement)
do
query = %Query{name: "", statement: statement}
case DBConnection.prepare_execute(conn, query, params, opts) do
{:ok, _, %{rows: _rows} = result} ->
Enumerable.reduce([result], acc, fun)
{:error, err} ->
raise err
end
end
def member?(_, _) do
{:error, __MODULE__}
end
def count(_) do
{:error, __MODULE__}
end
def slice(_) do
{:error, __MODULE__}
end
end