Validates SQL syntax by preparing it against the database without executing.
Uses EXPLAIN to parse the query server-side. Before validation, {{var}}
placeholders are replaced with NULL and [[...]] optional brackets are
stripped so the raw template can be checked.
Summary
Functions
Validates SQL syntax against the given data source.
Functions
Validates SQL syntax against the given data source.
Neutralizes Lotus template syntax ({{var}} → NULL, [[...]] → inner
content) and runs EXPLAIN to check whether the database can parse the
statement.
Returns :ok if the SQL is valid, or {:error, reason} with the
database error message if it is not.
Examples
iex> Lotus.SQL.Validator.validate("SELECT 1", "postgres")
:ok
iex> Lotus.SQL.Validator.validate("NOT VALID SQL", "postgres")
{:error, "SQL syntax error: ..."}