defmodule QuackDB.Extension do @moduledoc """ SQL builders for DuckDB extension management. These helpers build `INSTALL` and `LOAD` statements while validating extension names as SQL identifiers. They return iodata so they can be passed directly to `QuackDB.query/4`, `QuackDB.query!/4`, or `Repo.query/3`. alias QuackDB.Extension QuackDB.query!(conn, Extension.install(:httpfs)) QuackDB.query!(conn, Extension.load(:httpfs)) `QuackDB.SQL.install/1` and `QuackDB.SQL.load/1` remain available as the lower-level generic SQL helpers. """ @doc "Builds an `INSTALL extension;` statement." @spec install(atom() | String.t()) :: iodata() def install(extension), do: QuackDB.SQL.install(extension) @doc "Builds a `LOAD extension;` statement." @spec load(atom() | String.t()) :: iodata() def load(extension), do: QuackDB.SQL.load(extension) end