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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>You cannot accuse someone of squatting on a name when they are actively using that name to work on and ship a package. If a good name is actually being squatted on by a dead package then you can request a takeover of that name.</p>
<p>A global namespace is probably a bad idea in general and technologies like ATProto show a better path, but I digress.</p>
<aside class="quote no-group" data-username="aseigo" data-post="39" data-topic="69807">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/aseigo/48/10674_2.png" class="avatar"> aseigo:</div>
<blockquote>
<p>Is this resolvable in the library, or is the expectation that the user of the library always places things in a sensible order?</p>
</blockquote>
</aside>
<p>You may be surprised to learn <a href="https://www.scattered-thoughts.net/writing/unexplanations-sql-is-syntactic-sugar-for-relational-algebra/" rel="noopener nofollow ugc">just how deep this problem actually is</a>. ORMs are able to get away with this by choosing to implement only a subset of SQL. This project will either have to do the same or the parser will have to grow to the 50-100kloc range. SQL is a demonic language.</p>
<p>I think the subset path has merit and I like the idea of an ORM-style tool where the syntax is extremely close to actual SQL.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380532" 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/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-380532" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380532"
                     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 #41"></div>
  </section>
</div>
    <div class="postbit" id="380547" data-post-id="380547">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="garrison" data-post="42" data-topic="69807">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>I think the subset path has merit and I like the idea of an ORM-style tool where the syntax is extremely close to actual SQL.</p>
</blockquote>
</aside>
<p>I mean, that sounds like exactly the design philosophy of ecto, but with a priority on composition. Genuine question, without composition, what’s the advantage of a extremely sql like syntax thats not sql?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380547" 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/43">Post #42</a>
	                </div>
	            </div>
              <div id="likers-container-380547" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380547"
                     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 #42"></div>
  </section>
</div>
    <div class="postbit" id="380573" data-post-id="380573">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think you have it the wrong way around. ORMs, and I’m including Ecto here, mainly exist to make up for two big shortcomings of SQL: that it does not compose well, and that it <a href="https://www.scattered-thoughts.net/writing/sql-needed-structure/" rel="noopener nofollow ugc">does not perform structural transformations well</a>. I’ll focus on the first one.</p>
<p>SQL does not compose well because it’s a bad language. Other languages, like <a href="https://en.wikipedia.org/wiki/QUEL_query_languages" rel="noopener nofollow ugc">QUEL that came before it</a>, were much more elegant. SQL was designed carelessly but was backed by IBM so it won by default. Similar to JS, though I would say SQL is worse.</p>
<p>This is why ORMs exist: to fix a problem (composition) which should have been handled by SQL itself. Unfortunately most ORMs also contribute some nasty warts of their own, specifically the disaster that is “object-oriented programming” and the addition of globally mutable “row” objects that can be modified as side-effects and then inadvertently committed. Ecto is amazing because it’s an “ORM” that does not have this problem. Because <em>Elixir</em> does not have this problem.</p>
<aside class="quote no-group" data-username="tfwright" data-post="43" data-topic="69807">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/tfwright/48/20299_2.png" class="avatar"> tfwright:</div>
<blockquote>
<p>without composition, what’s the advantage of a extremely sql like syntax thats not sql</p>
</blockquote>
</aside>
<p>This project, the SQL library, <em>does</em> have composition. That’s why I personally love the name: I think it’s hilariously ironic because if you add composition to SQL it is clearly no longer SQL. You have invented something else that looks like SQL but <em>isn’t</em> because it actually composes properly (unlike SQL).</p>
<p>The fact that it sounds exactly like the design philosophy of Ecto is the whole point. I like Ecto, so I like this!</p>
<p>I’m sure <a class="mention" href="/u/schultzer" rel="nofollow">@Schultzer</a> could give you a list of his perceived advantages, but personally I don’t really care. I don’t think projects need “advantages” to justify their existence. It’s okay to just make something because you feel like it. In fact, if you look closely, you will find that this is where most good things come from.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380573" 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/44">Post #43</a>
	                </div>
	            </div>
              <div id="likers-container-380573" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380573"
                     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 #43"></div>
  </section>
</div>
    <div class="postbit" id="380576" data-post-id="380576">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="garrison" data-post="44" data-topic="69807">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>This project, the SQL library, <em>does</em> have composition.</p>
</blockquote>
</aside>
<p>I think I just misread your point about it being a “deep problem” as an argument against supporting the level of composition that <a class="mention" href="/u/aseigo" rel="nofollow">@aseigo</a> demonstrated in his example. Certainly I concur with their feedback that as a prospective user that I would expect a library that claims to handle composition in any way to cover such basic cases and hopefully set some clear expectations about what should be composable and what is not and why, before I would consider investing much time in it (or pay much attention to benchmarks).</p>
<p>As a side note, I think it is precisely because Ecto does not claim to be an ORM at all that it is able to “guarantee” the level of composition it does. So, although clearly it functions as one, the API sets clear a clear boundary for this guarantee. By contrast, ActiveRecord did not, which led to some embarrassing deficiencies where only slightly unusual queries would return incorrect results depending on the order of operations. I am somewhat curious how this library can/will handle that.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380576" 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/45">Post #44</a>
	                </div>
	            </div>
              <div id="likers-container-380576" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380576"
                     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 #44"></div>
  </section>
</div>
    <div class="postbit" id="380579" data-post-id="380579">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yeah, I figured there might be some misunderstanding so I tried to be very clear. I think I see the confusion now.</p>
<p>The example that <a class="mention" href="/u/aseigo" rel="nofollow">@aseigo</a> gave <em>did</em> exhibit composition. But he fed the library a nonsense input and got nonsense back out (the statements got weirdly reordered). It’s a bug.</p>
<p>The purpose of my reply was to point out that fixing bugs like this will be difficult because parsing SQL is <em>extremely</em> hard (because it is a very bad language). The article I linked gives a really clear example of this. But it can still be done, obviously.</p>
<aside class="quote no-group" data-username="tfwright" data-post="45" data-topic="69807">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/tfwright/48/20299_2.png" class="avatar"> tfwright:</div>
<blockquote>
<p>By contrast, ActiveRecord did not, which led to some embarrassing deficiencies where only slightly unusual queries would return incorrect results depending on the order of operations.</p>
</blockquote>
</aside>
<p>I have never written Ruby, but now I’m curious. Could you spare any examples of this?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380579" 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/46">Post #45</a>
	                </div>
	            </div>
              <div id="likers-container-380579" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380579"
                     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 #45"></div>
  </section>
</div>
    <div class="postbit" id="380580" data-post-id="380580">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="garrison" data-post="46" data-topic="69807">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>Could you spare any examples of this?</p>
</blockquote>
</aside>
<p>Unfortunately no, it’s been too long and the source is lost to time, but IIRC it has to do with referring to aliases of joins in where clauses. Since it lacked explicit bindings and tried to resolve everything automagically, it would get various edge cases wrong. Not sure if/how it was solved, but my memory was that the best it would be able to do would be to raise an error because there was no way to infer what the intended alias actually was with the existing API. Maybe they ended up changing the API, I stopped using AR shortly thereafter.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380580" 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/47">Post #46</a>
	                </div>
	            </div>
              <div id="likers-container-380580" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380580"
                     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 #46"></div>
  </section>
</div>
    <div class="postbit" id="380589" data-post-id="380589">
  <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>I find composition to be the least important problem to solve, especially in an enterprise envoiroment. And SQL will at somepoint reach Ecto level, maybe a slight better but no guarantee.</p>
<p>What is far more important is being able to sleep at night knowing that you won’t ever have to deal or think about pool_size, queue times and hard to debug db_connection errors. This is solved with a breakthrough in database integration design, leveraged by the BEAM and Elixir which makes this possible and unheard of in any language or SQL client ever built.</p>
<p>AFAIK, this is also the first time SQL has become a first-class citizen in a language, giving us compile time errors and bare metal performance with unheard of concurrency, simply by standing on the shoulders of giants.</p>
<p>For me personally, this is a passion project, to showcase the next generation what is possible and how to write Elixir with bare metal performance, and make it crystal clear what diagonal scalling is and how to create libraries which ultilizie the BEAM’s most advanded feature and to be honest the one we always undersell for reason I can’t fathrom as we can do things no other platform will ever be able to do in any immediate future, and properly always be behind due to Erlang’s 50 years head start and being the language that defined and continue to showcase what a destributed language and compute is.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380589" 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/48">Post #47</a>
	                </div>
	            </div>
              <div id="likers-container-380589" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380589"
                     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 #47"></div>
  </section>
</div>
    <div class="postbit" id="380592" data-post-id="380592">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Schultzer" data-post="48" data-topic="69807">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/schultzer/48/4339_2.png" class="avatar"> Schultzer:</div>
<blockquote>
<p>What is far more important is being able to sleep at night knowing that you won’t ever have to deal or think about pool_size, queue times and hard to debug db_connection errors.</p>
</blockquote>
</aside>
<p>I already sleep fairly well without worrying about them. They are flagged as non-critical and monitored according to frequency rather than occurrence.</p>
<aside class="quote no-group" data-username="Schultzer" data-post="48" data-topic="69807">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/schultzer/48/4339_2.png" class="avatar"> Schultzer:</div>
<blockquote>
<p>I find composition to be the least important problem to solve</p>
</blockquote>
</aside>
<aside class="quote no-group" data-username="Schultzer" data-post="48" data-topic="69807">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/schultzer/48/4339_2.png" class="avatar"> Schultzer:</div>
<blockquote>
<p>For me personally, this is a passion project,</p>
</blockquote>
</aside>
<p>I agree with <a class="mention" href="/u/garrison" rel="nofollow">@garrison</a> that has a huge value in an of itself, but I do think you will get a lot of critical feedback about the composition issue, so maybe I’d suggest not mentioning composition in the library “highlights” until it’s a feature you think <em>is</em> important.</p>
<p>I do think maybe including those errors you mentioned, making the case for why people should care, and how exactly the SQL library avoids them would be a valuable addition to the README intro.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380592" 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/49">Post #48</a>
	                </div>
	            </div>
              <div id="likers-container-380592" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380592"
                     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 #48"></div>
  </section>
</div>
    <div class="postbit" id="380596" data-post-id="380596">
  <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>I’ll welcome any contribution to improve composition, The once that has been highlighted are straightforward to solve, to be more clear, my intention is not to never solve it, but as I see it right now there is way bigger problems that I’m focusing on. Ecto makes a lot of tradeoffs when it comes to this, which SQL ideally would not have to make, but currently I’m the only one making major contribution and my time is limited, but I’m here to guide anyone willing to contribute and try to solve a problem that has already been solved in the respected database engines, althought with our little twist. There is a bunch of literature out there, and SQLlite even got piping working but decided not to move forward as they keep strict compliance to the spec, which we kinda do not or more specificaly we help the user to compile proper SQL so they don’t have to think about starting with select or from. The problem stated in this thread is all about merging clauses and predicates, fairly simple when you have an AST to work with.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380596" 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/50">Post #49</a>
	                </div>
	            </div>
              <div id="likers-container-380596" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380596"
                     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 #49"></div>
  </section>
</div>
    <div class="postbit" id="380602" data-post-id="380602">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Schultzer" data-post="50" data-topic="69807">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/schultzer/48/4339_2.png" class="avatar"> Schultzer:</div>
<blockquote>
<p>There is a bunch of literature out there, and SQLlite even got piping working but decided not to move forward as they keep strict compliance to the spec</p>
</blockquote>
</aside>
<p>Source for this? Sounds interesting.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380602" 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/51">Post #50</a>
	                </div>
	            </div>
              <div id="likers-container-380602" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380602"
                     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 #50"></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=6">Load more posts (22 remaining)</a>
</div></template></turbo-stream>