Ecto_sqlite3 - an Ecto3 SQLite3 adapter

I’m actually going to take a look at what is necessary to get a separate driver for DuckDB built. It’s a data store that also interests me greatly. Originally what started me down the sqlite path was using an ORC file to store timeseries data, but it was a massive pain to have to keep rewriting the file everytime I wanted to append data.

At minimum, I’ll probably build a really simple interface similar to Exqlite where you can build prepared statements and run those statements against the database.

As for getting an ecto adapter in there, that may prove a little difficult. But I believe we could shim in the ability to specify the driver for the adapter as well via a quick config.

use Ecto.Repo,
  otp_app: :my_timeseries_app,
  adapter: Ecto.Adapters.SQLite3,
  driver: DuckDB

Although, I am unsure if DuckDB provides the ability to use the RETURNING clause that SQLite3 just added.

Anyways, at minimum a driver in elixir is really easy to do.

4 Likes