<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="364578" data-post-id="364578">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="holgerwiehen" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  holgerwiehen
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think an SQL + Ecto integration that allows control to which of multiple Repos the Query is send, would be valuable as it allows adopting the SQL + Ecto integration in brownfield projects.</p>
<p>Our use case is a data dashboard that pulls data from multiple, already existing, databases. In such a brownfield context, we find DBAs and peer developers that are not experienced in Elixir/Ecto already, and allowing them to contribute to a project with SQL queries, eliminating the need to translate them to Ecto.Query, would be a real boost and lower the barrier for Elixir adoption.</p>
<p>Your work is very interresting and relevant.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="364578" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/sql-brings-an-extensible-sql-parser-and-sigil-to-elixir-confidently-write-sql-with-automatic-parameterized-queries/69807/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-364578" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="364578"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
    <div class="postbit" id="364581" data-post-id="364581">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Schultzer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Schultzer/120/4339_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Schultzer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yeah, the simplest approach for that would be to deprecate Repo.query/2 in favor of Repo.query/1.</p>
<p>This would allow any query executed by ecto rather that is an Ecto.Query or SQL to be prepared and optimized by the database.</p>
<p>What is still not all clear is how to upcast and downcast schemas, Ecto use positional references to know which column belongs to which fields or associations to map on the result set.</p>
<p>Today Ecto’s datamapper is entirely tied to Ecto.Query. Decoupling this would allow for better optimization and increase the maintainability of Ecto IMO.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="364581" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/sql-brings-an-extensible-sql-parser-and-sigil-to-elixir-confidently-write-sql-with-automatic-parameterized-queries/69807/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-364581" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="364581"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="366559" data-post-id="366559">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sezaru" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sezaru/120/36113_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sezaru
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/schultzer" rel="nofollow">@Schultzer</a> I’m not sure if I’m missing something, but I’m trying to use the ~SQL sigil with Ecto repo <code>query</code> function and i’m getting some errors. Basically, I have this code:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">      sql = ~SQL"""
        select distinct on (e.id) e.id as row_id
        from "pacman.public".entities as e
        join "pacman.public".records as r on r.grantee_entity_id = e.id or r.grantor_entity_id = e.id
        join "pacman.public".properties as p on p.rebuilt_id = r.rebuilt_id
        where p.id &gt; {{id}}
        and e.status = 'done'
      """
</code></pre>
<p>I want to use it with <code>Repo.query</code>, so I convert it using <code>to_sql</code>:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">{query, params} = to_sql(sql)

Repo.query(query, params)
</code></pre>
<p>The issue I’m seeing is that the query replaces the <code>{{id}}</code> with a <code>?</code> instead of <code>$1</code>:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex(pacman@node1.backend.core)24&gt; to_sql(sql)
{"select distinct on (e.id) e.id as row_id from \"pacman.public\".entities as e join \"pacman.public\".records as r on r.grantee_entity_id = e.id or r.grantor_entity_id = e.id join \"pacman.public\".properties as p on p.rebuilt_id = r.rebuilt_id where p.id &gt; ? and e.status = 'done'",
 ["019721cc-7271-7364-9bde-b8431d782359"]}
</code></pre>
<p>And, because of that, the query call fails:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex(pacman@node1.backend.core)26&gt; Core.Repo.query(query, params)
15:30:48.657 [debug] QUERY ERROR db=0.0ms
select distinct on (e.id) e.id as row_id from "pacman.public".entities as e join "pacman.public".records as r on r.grantee_entity_id = e.id or r.grantor_entity_id = e.id join "pacman.public".properties as p on p.rebuilt_id = r.rebuilt_id where p.id &gt; ? and e.status = 'done'
{:error,
 %Postgrex.Error{
   message: nil,
   postgres: %{
     code: :syntax_error,
     line: "1193",
     message: "syntax error at or near \"and\"",
     position: "254",
     file: "scan.l",
     unknown: "ERROR",
     severity: "ERROR",
     pg_code: "42601",
     routine: "scanner_yyerror"
   },
   connection_id: 14304,
   query: "select distinct on (e.id) e.id as row_id from \"pacman.public\".entities as e join \"pacman.public\".records as r on r.grantee_entity_id = e.id or r.grantor_entity_id = e.id join \"pacman.public\".properties as p on p.rebuilt_id = r.rebuilt_id where p.id &gt; ? and e.status = 'done'"
 }}
</code></pre>
<p>Why does SQL returns the query fields as <code>?</code> instead of <code>$1</code>, <code>$2</code>, etc which is what ecto would expect?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366559" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/sql-brings-an-extensible-sql-parser-and-sigil-to-elixir-confidently-write-sql-with-automatic-parameterized-queries/69807/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-366559" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366559"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="366573" data-post-id="366573">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Schultzer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Schultzer/120/4339_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Schultzer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>You need to set the proper adapter, in this case postgres: <code>use SQL, adapter: SQL.Adapters.Postgres</code></p>
<p>There are tests for each adapter that you can use as reference <a href="https://github.com/elixir-dbvisor/sql/blob/main/test/adapters/postgres_test.exs" class="inline-onebox" rel="noopener nofollow ugc">sql/test/adapters/postgres_test.exs at main · elixir-dbvisor/sql · GitHub</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366573" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/sql-brings-an-extensible-sql-parser-and-sigil-to-elixir-confidently-write-sql-with-automatic-parameterized-queries/69807/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-366573" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366573"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="366574" data-post-id="366574">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sezaru" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sezaru/120/36113_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sezaru
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Ah, that makes sense, I though that was only needed if I wanted to run the query directly from SQL <img src="https://forum.elixirforum.com/images/emoji/apple/sweat_smile.png?v=15" title=":sweat_smile:" class="emoji" alt=":sweat_smile:" loading="lazy" width="20" height="20"></p>
<p>Thanks!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366574" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/sql-brings-an-extensible-sql-parser-and-sigil-to-elixir-confidently-write-sql-with-automatic-parameterized-queries/69807/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-366574" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366574"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="366575" data-post-id="366575">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Schultzer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Schultzer/120/4339_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Schultzer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yeah, all sql default to ANSI where parameters are positional and uses: <code>?</code></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366575" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/sql-brings-an-extensible-sql-parser-and-sigil-to-elixir-confidently-write-sql-with-automatic-parameterized-queries/69807/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-366575" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366575"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
    <div class="postbit" id="367630" data-post-id="367630">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dkuku" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dkuku/120/15613_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dkuku
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>You can still generate an Ecto queryable by injecting a fragment ast directly into the Ecto.Query struct.<br>
The docs say not to do it but …</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">  def to_queryable(token) do
    from =
      case to_sql(token) do
        {sql, []} -&gt;
          %Ecto.Query.FromExpr{
            source: {:fragment, [], [{:raw, sql}]}
          }

        {sql, params} -&gt;
          raise "this is a bit longer but still possible - check the ast of a fragment with params"
      end

    %Ecto.Query{from: from}
  end

      ~SQL"select 1 as id"
      |&gt; SQL.to_queryable()
      |&gt; select([t], [:id])
      |&gt; SQL.Repo.all()
      |&gt; Enum.each(&amp;IO.inspect/1)
</code></pre>
<p>what is missing currently:</p>
<ul>
<li><code>to_sql</code> or a sibling function should also return a list of fields to be selected as the library has it tokenized. Then the select can be also generated.</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="367630" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/sql-brings-an-extensible-sql-parser-and-sigil-to-elixir-confidently-write-sql-with-automatic-parameterized-queries/69807/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-367630" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="367630"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #27"></div>
  </section>
</div>
    <div class="postbit" id="367671" data-post-id="367671">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Schultzer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Schultzer/120/4339_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Schultzer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This is cool, I did not know this was possible, I initially had a manual conversion but dropped it before I released since Ecto.Query API is limited and does not support the full SQL spec.</p>
<p>When I’m done refactoring the lexer and parser with a new BNF generator I’ll take a stab at this.</p>
<p>Although the future API of SQL will mirror Enum and Stream. In that way you’ll be able to create pipelines that transform the result set.</p>
<p>This will create a clear separation of concern of SQL and application logic.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="367671" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/sql-brings-an-extensible-sql-parser-and-sigil-to-elixir-confidently-write-sql-with-automatic-parameterized-queries/69807/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-367671" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="367671"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #28"></div>
  </section>
</div>
    <div class="postbit" id="370481" data-post-id="370481">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Schultzer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Schultzer/120/4339_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Schultzer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>We’ve happy to announce the release of 0.3.0, packed with performance improvements, formatting and compile time warnings on missing relations.</p>
<p>You can now generate a <code>sql.lock</code> file with <code>mix sql.get</code> the file is used to give you compile time warnings on missing relation anywhere you use the <code>use SQL</code>, and it will serve as the foundation for the upcoming compile time type checking and casting.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/0/2/02f057e331066d36c89ff0e44a53d88bc4d42c82.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/02f057e331066d36c89ff0e44a53d88bc4d42c82" title="Screenshot 2025-07-31 at 2.24.13 PM" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/0/2/02f057e331066d36c89ff0e44a53d88bc4d42c82.jpeg" alt="Screenshot 2025-07-31 at 2.24.13 PM" data-base62-sha1="pZT3T9nRr60iwKnsXPCHEQfPtE" width="690" height="179" data-dominant-color="1B1D1D"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">Screenshot 2025-07-31 at 2.24.13 PM</span><span class="informations">1054×274 34.2 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/a/f/af444efd2bbadf971c9f238bfdb7063f9d288c14.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/af444efd2bbadf971c9f238bfdb7063f9d288c14" title="Screenshot 2025-07-31 at 2.21.25 PM" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/a/f/af444efd2bbadf971c9f238bfdb7063f9d288c14_2_690x160.jpeg" alt="Screenshot 2025-07-31 at 2.21.25 PM" data-base62-sha1="p0tUhhRBQeG3iHNwCk5qQf8beDy" width="690" height="160" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/a/f/af444efd2bbadf971c9f238bfdb7063f9d288c14_2_690x160.jpeg, https://forum.elixirforum.com/uploads/default/optimized/3X/a/f/af444efd2bbadf971c9f238bfdb7063f9d288c14_2_1035x240.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/a/f/af444efd2bbadf971c9f238bfdb7063f9d288c14.jpeg 2x" data-dominant-color="0C0C0D"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">Screenshot 2025-07-31 at 2.21.25 PM</span><span class="informations">1200×279 28 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>Please see the <a href="https://github.com/elixir-dbvisor/sql/blob/v0.3.0/CHANGELOG.md" class="inline-onebox" rel="noopener nofollow ugc">sql/CHANGELOG.md at v0.3.0 · elixir-dbvisor/sql · GitHub</a> for all details.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="370481" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/sql-brings-an-extensible-sql-parser-and-sigil-to-elixir-confidently-write-sql-with-automatic-parameterized-queries/69807/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-370481" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="370481"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #29"></div>
  </section>
</div>
    <div class="postbit" id="372086" data-post-id="372086">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Schultzer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Schultzer/120/4339_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Schultzer
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Here is a little teaser of the upcoming version of SQL.</p>
<p>You’ll be able to ergonomically work on the result set to transform it, this is done in one pass, so no immediate list are created, so you get high performance no matter how you organize your code!</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/b/6/b6d57f87301a5850d8f3f6707ab6574e6c170e46.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/b6d57f87301a5850d8f3f6707ab6574e6c170e46" title="WebToolsCenter-iex-code" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/b/6/b6d57f87301a5850d8f3f6707ab6574e6c170e46.jpeg" alt="WebToolsCenter-iex-code" data-base62-sha1="q5qjFKsWFWZ915OgevxgbehtyiW" width="690" height="384" data-dominant-color="372942"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WebToolsCenter-iex-code</span><span class="informations">988×550 23.4 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>cc @<strong><a href="/u/holgerwiehen" rel="nofollow">holgerwiehen</a></strong></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="372086" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/sql-brings-an-extensible-sql-parser-and-sigil-to-elixir-confidently-write-sql-with-automatic-parameterized-queries/69807/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-372086" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="372086"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #30"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/69807/load_more?page=4">Load more posts (42 remaining)</a>
</div></template></turbo-stream>