tag:github.com,2008:https://github.com/elixir-dbvisor/sql/releases Release notes from sql 2025-10-18T20:31:19Z tag:github.com,2008:Repository/941199644/v0.4.0 2025-10-18T21:52:08Z v0.4.0 <h2>v0.4.0 (2025-10-18)</h2> <h3>Enhancement</h3> <ul> <li>Improved SQL lexing performance with over 50% <a href="https://github.com/elixir-dbvisor/sql/commit/91dc464242d2e644b8c7210ac79bcf5f94c35ed8">91dc464</a>.</li> <li>Added warnings for unknown operators <a href="https://github.com/elixir-dbvisor/sql/commit/5bd7ec391c028a592dc4c94ead7a8002113790b9">5bd7ec3</a>.</li> <li>Added <code>SQL.map/2</code> and implemented enumerable for SQL <a href="https://github.com/elixir-dbvisor/sql/commit/a646203da05bc1e59b8f0df65b1a285ab1740a6c">a646203</a>.</li> <li>Added SQL Mix.Task.Compiler for sql files <a href="https://github.com/elixir-dbvisor/sql/commit/4ce5b243d2ec36d51bc1a3e5a25802b2d4a18b79">4ce5b24</a>.</li> <li>Added syntax highlighting when inspecting <code>%SQL{}</code> and in compiletime warnings.</li> <li>Improved compilation times.</li> </ul> Schultzer tag:github.com,2008:Repository/941199644/v0.3.0 2025-08-01T14:39:38Z v0.3.0 <h2>v0.3.0 (2025-08-01)</h2> <h3>Enhancement</h3> <ul> <li>Improve SQL generation with over 100x compared to Ecto <a href="https://github.com/elixir-dbvisor/sql/pull/12" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/12/hovercard">#12</a>, <a href="https://github.com/elixir-dbvisor/sql/pull/19" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/19/hovercard">#19</a>.</li> <li>Fix bug for complex CTE <a href="https://github.com/elixir-dbvisor/sql/pull/15" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/15/hovercard">#15</a>. Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kafaichoi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kafaichoi">@kafaichoi</a></li> <li>Support for PostgresSQL GiST operators <a href="https://github.com/elixir-dbvisor/sql/pull/18" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/18/hovercard">#18</a>. Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ibarchenkov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ibarchenkov">@ibarchenkov</a></li> <li><code>float</code> and <code>integer</code> nodes have now become <code>numeric</code> with metadata to distinguish <code>sign</code>, <code>whole</code> and <code>fractional</code> <a href="https://github.com/elixir-dbvisor/sql/pull/19" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/19/hovercard">#19</a>.</li> <li><code>keyword</code> nodes are now <code>ident</code> with metadata distinguish if it's a <code>keyword</code> <a href="https://github.com/elixir-dbvisor/sql/pull/19" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/19/hovercard">#19</a>.</li> <li><code>SQL.Lexer.lex/4</code> now returns <code>{:ok, context, tokens}</code> <a href="https://github.com/elixir-dbvisor/sql/pull/19" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/19/hovercard">#19</a>.</li> <li><code>SQL.Parser.parse/1</code> has become <code>SQL.Parser.parse/2</code> and takes <code>tokens</code> and <code>context</code> from <code>SQL.Lexer.lex/4</code> and returns <code>{:ok, context, tokens}</code> or raises an error <a href="https://github.com/elixir-dbvisor/sql/pull/19" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/19/hovercard">#19</a>.</li> <li>Support for compile time warnings on missing relations in a query. <a href="https://github.com/elixir-dbvisor/sql/pull/22" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/22/hovercard">#22</a></li> <li><code>mix sql.get</code> creates a lock file which are used to generate warnings at compile time. <a href="https://github.com/elixir-dbvisor/sql/pull/22" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/22/hovercard">#22</a></li> <li>Support SQL formatting. <a href="https://github.com/elixir-dbvisor/sql/pull/22" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/22/hovercard">#22</a></li> </ul> <h3>Deprecation</h3> <ul> <li>token_to_string/2 is deprecated in favor of to_iodata/3 <a href="https://github.com/elixir-dbvisor/sql/pull/22" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/22/hovercard">#22</a>.</li> </ul> Schultzer tag:github.com,2008:Repository/941199644/v0.2.0 2025-05-04T22:05:48Z v0.2.0 <h2>v0.2.0 (2025-05-04)</h2> <h3>Enhancement</h3> <ul> <li>SQL 2016 conformance <a href="https://github.com/elixir-dbvisor/sql/pull/6" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/6/hovercard">#6</a>.</li> <li>Lexer and Parser generated from the <a href="https://standards.iso.org/iso-iec/9075/-2/ed-6/en/" rel="nofollow">SQL 2023 BNF</a> <a href="https://github.com/elixir-dbvisor/sql/pull/5" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/5/hovercard">#5</a>.</li> <li>Added SQL.Token behaviour used to implement adapters <a href="https://github.com/elixir-dbvisor/sql/pull/5" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/5/hovercard">#5</a>.</li> <li>ANSI adapter <a href="https://github.com/elixir-dbvisor/sql/pull/5" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/5/hovercard">#5</a>.</li> <li>MySQL adapter <a href="https://github.com/elixir-dbvisor/sql/pull/5" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/5/hovercard">#5</a>.</li> <li>PostgreSQL adapter <a href="https://github.com/elixir-dbvisor/sql/pull/5" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/5/hovercard">#5</a>.</li> <li>TDS adapter <a href="https://github.com/elixir-dbvisor/sql/pull/5" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/5/hovercard">#5</a>.</li> <li>Improve SQL generation with 57-344x compared to Ecto <a href="https://github.com/elixir-dbvisor/sql/pull/7" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/7/hovercard">#7</a> <a href="https://github.com/elixir-dbvisor/sql/pull/4" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/4/hovercard">#4</a>.</li> <li>Ensure inspect follows the standard <a href="https://hexdocs.pm/elixir/Inspect.html#module-inspect-representation" rel="nofollow">representation</a> <a href="https://github.com/elixir-dbvisor/sql/pull/4" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/4/hovercard">#4</a>.</li> <li>Ensure storage is setup when running benchmarks <a href="https://github.com/elixir-dbvisor/sql/pull/5" data-hovercard-type="pull_request" data-hovercard-url="/elixir-dbvisor/sql/pull/5/hovercard">#5</a>.</li> </ul> Schultzer tag:github.com,2008:Repository/941199644/v0.1.0 2025-03-01T18:34:54Z v0.1.0 <p>Initial release.</p> Schultzer