Migration from Python
View SourceDuckdbEx mirrors the Python API, but there are a few differences.
Result Shape
Python returns rows as tuples; DuckdbEx also returns tuples. If you previously used dict-like access in Elixir, update code to use tuple patterns:
{:ok, rows} = DuckdbEx.fetchall()
Enum.each(rows, fn {id, name} -> IO.puts("#{id}: #{name}") end)Default Connection
Python module-level helpers use a default connection. DuckdbEx follows this pattern:
DuckdbEx.execute("SELECT 1")
DuckdbEx.fetchall()Missing APIs
Some Python-only conveniences are not available in the CLI backend (Arrow, DataFrame, UDFs). Use file export or SQL equivalents.